Excel: 열 제목을 사용하여 셀 데이터를 다른 시트로 가져오기

Excel: 열 제목을 사용하여 셀 데이터를 다른 시트로 가져오기

동일한 통합 문서의 한 시트에서 다른 시트로 정보를 가져오려고 합니다.

그러나 양수 셀을 열 이름과 함께 하위 순차 시트로 가져오고 싶습니다.

예를 들어:

           |  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

관련 정보