Excel - 查找名称的每个实例并返回每个实例的列标题

时间:2014-12-04 15:09:24

标签: excel spreadsheet

这是一个头脑风暴......

我有一个巨大的电子表格(最多为GA,397),其中包含顶部的组列表以及从这些组中删除的所有组成员。

(我也有备用方向的数据)

我分别列出了所有独特成员和所有组。

我需要的是数据摘要,显示成员列表及其所属的每个组(理想情况下,列在不同的行或列中的组,以便对其进行过滤和搜索)。

我想到了枢轴 - 但数据太大而不实用,我对基本宏有一点经验。

有人有任何建议吗?

谢谢, 波比

1 个答案:

答案 0 :(得分:0)

以下代码如何:

Sub test() Dim i As Integer Dim inputWS As Worksheet, outputWS As Worksheet Set inputWS = Sheets("input") Set outputWS = Sheets("output") i = 1 For Each cell In inputWS.Range("A2:B374") i = i + 1 outputWS.Cells(i, "A").Value = cell.Value outputWS.Cells(i, "B").Value = inputWS.Cells(1, cell.Column).Value Next End Sub

取决于您需要根据所需范围进行修改的原始范围,将从工作表中提取所有数据"输入",将其填入列" A"表"输出"并且还将原始范围的每个元素的标题(第一行中的值)添加到列" B" "输出"片。这将为您提供更强大的列表来进行转移。 附:当然,只有当我正确理解你的要求时,这很方便,不幸的是,这并不像我希望的那样清楚

修改 在您的评论中,请尝试以下操作:

Sub test()
Dim col As Integer, rw As Integer, counter As Integer
Dim inputWS As Worksheet, outputWS As Worksheet
Set inputWS = Sheets("input")
Set outputWS = Sheets("output")
counter = 0

For rw = 2 To inputWS.Cells(Rows.Count, 1).End(xlUp).Row

  For col = 2 To inputWS.Cells(rw, Columns.Count).End(xlToLeft).Column

    counter = counter + 1
    outputWS.Cells(counter, 1).Value = inputWS.Cells(rw, col).Value
    outputWS.Cells(counter, 2).Value = inputWS.Cells(rw, 1).Value

  Next
Next

End Sub

这将规范化输出表单上的数据,将所有成员放在A列中,将所有成员放入B列,创建多个条目,之后对数据放置成员作为行标签和组作为列标签并对值字段中的任一字段进行计数。这意味着,相反在每个名称旁边显示组名称,它将在每个组标题下方显示非空白单元格,这是否可以接受?