Excel:使用列標題將儲存格資料匯入到另一個工作表

Excel:使用列標題將儲存格資料匯入到另一個工作表

我正在嘗試將資訊從一張工作表轉移到同一工作簿中的另一張工作表。

但是,我希望將陽性細胞及其列名稱匯入到子連續工作表中。

例如:

           |  Example1 | Example2 | Example3
-----------+-----------+----------+----------
List One   |     x     |          |   x
List Two   |     x     |    x     |
List Three |     x     |          |

所以我想

  • 在 Sheet2 中 -清單一

    • 範例1
    • 例3

  • 在 Sheet3 中 -清單二

    • 範例1
    • 例2

  • 在 Sheet4 中 -清單三

    • 範例1

希望這對某人有意義!抱歉,糟糕的編碼,生鏽了,生鏽了!

答案1

我假設您的標題位於第 1 行,資料從第 2 行開始

在第一欄(這裡行並不重要)在其他工作表中,將此公式=OFFSET(Sheet1!$A$1,0,SMALL(IF(2:2="X",COLUMN(2:2)),COLUMN())-1)作為陣列公式輸入Ctrl+ Shift+Enter

將其複製到行中,它將列出列名稱。當公式開始出現錯誤時就結束了#NUM!

對於sheet3,將2:2更改為3:3,對於後續的sheet以此類推

答案2

這允許您擁有更多的行和列,並假設任何東西而不僅僅是“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

相關內容