
동일한 통합 문서의 한 시트에서 다른 시트로 정보를 가져오려고 합니다.
그러나 양수 셀을 열 이름과 함께 하위 순차 시트로 가져오고 싶습니다.
예를 들어:
| Example1 | Example2 | Example3
-----------+-----------+----------+----------
List One | x | | x
List Two | x | x |
List Three | x | |
그래서 나는 원한다
Sheet2에서 -목록 1
- 실시예 1
- 실시예3
Sheet3에서 -목록 2
- 실시예 1
- 실시예2
Sheet4에서 -목록 3
- 실시예 1
그것이 누군가에게 어떤 의미가 있기를 바랍니다! 끔찍한 코딩으로 인해 죄송합니다. 녹슨 녹슬었습니다!
답변1
귀하의 제목이 행 1에 있고 데이터가 행 2에서 시작한다고 가정합니다.
첫 번째 열에서는(여기서 행은 중요하지 않습니다)다른 시트의 경우 이 수식을 + +를 =OFFSET(Sheet1!$A$1,0,SMALL(IF(2:2="X",COLUMN(2:2)),COLUMN())-1)
사용하여 배열 수식으로 입력하세요.CtrlShiftEnter
이것을 행 전체에 복사하면 열 이름이 나열됩니다. 수식이 오류를 발생시키기 시작하면 끝에 도달합니다 #NUM!
.
sheet3의 경우 2:2를 3:3으로 변경하고 후속 시트에서도 마찬가지입니다.
답변2
이를 통해 더 많은 수의 행과 열을 가질 수 있으며 "x"가 아닌 모든 것을 가정할 수 있습니다. 항상 "x"라고 확신하고 이를 매우 쉽게 변경할 수 있습니다. 또한 나는 그들의 목록 이름에 따라 이 이름 시트를 만들었습니다. 시트 추가가 발생하지 않으면 해당 부분을 제거할 수 있습니다.
Sub columnsToListSheets()
LastCol = Sheets("Sheet1").UsedRange.Columns.Count
For rowNumber = 2 To 4
i = 1
ListName = Sheets("Sheet1").Cells(rowNumber, 1)
Sheets.Add
NewSheet = ActiveSheet.Name
Worksheets(NewSheet).Cells(1, 1) = ListName
'You may want to name the worksheet after the list
Worksheets(NewSheet).Name = ListName
For colNumber = 2 To LastCol
'"x" may be good enough to test for
If Worksheets("Sheet1").Cells(rowNumber, colNumber) <> "" Then
i = i + 1
'Worksheets(NewSheet).Cells(i, 1) = Worksheets("Sheet1").Cells(1, colNumber)
Worksheets(ListName).Cells(i, 1) = Worksheets("Sheet1").Cells(1, colNumber)
End If
Next colNumber
Next rowNumber
End Sub