Excel:使用列标题将单元格数据导入另一个工作表


0

我试图在同一工作簿中将信息从一个工作表传递到另一个工作表。

但是,我希望将正单元格导入到具有列名称的子顺序表单中。

例如:

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

所以我想

  • 在Sheet2中 - 列表一

    • 例1
    • 示例3

  • 在Sheet3中 - 清单二

    • 例1
    • 例题

  • 在Sheet4中 - 清单三

    • 例1

希望对某人有某种意义!抱歉可怕的编码,生锈生锈生锈!


我仍然无法理解你在寻找什么。示例1 ..示例3的值列在第一个工作表中,您是否正在寻找宏或vba代码来分派其他工作表中的值?
Seki

也许我误解了,你的标签说excel-formula,但你也说编码生锈了,所以我假设你想要一个vba解决方案
datatoo

Answers:


0

我假设您的标题在第1行,数据从第2行开始

在第1栏 (排在这里没关系) 在您的其他工作表中,输入此公式 =OFFSET(Sheet1!$A$1,0,SMALL(IF(2:2="X",COLUMN(2:2)),COLUMN())-1) 作为数组公式 按Ctrl + 转移 + 输入

将其复制到整行中,它将列出列名称。公式开始给出时达到了结束 #NUM! 错误。

对于sheet3,将2:2更改为3:3,依此类推后续工作表


0

这允许您拥有更多的行和列,并假定任何东西,而不仅仅是“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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.