2014-12-04 42 views
0

这里有一个headscratcher ...Excel中 - 找一个名称的每个实例,并返回每个实例的列标题

我有一个巨大的电子表格(最多GA,397)与群体在顶部的列表和所有这些组织的成员都从这些组织中走了出来。

(I也有在交替方向中的数据)

我有所有单独的独特成员和所有的组的列表。

我需要的是数据摘要,显示成员和他们所属的每个组的列表(理想情况下,组列在单独的行或列中以便它们可以被过滤和搜索)。

我曾考虑过支点 - 但数据太大而难以实用,而且我对基本宏有少量的经验。

有没有人有任何建议?

感谢, 鲍比

+0

你可以把它放在[PowerPivot](http://www.microsoft.com/en-us/download/details.aspx?id=29074) - 处理像冠军一样的大型数据集。 – JasonAizkalns 2014-12-04 15:19:35

回答

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”中。这会给你一个更强大的列表来做一个关键。 P.S.这是很方便的当然只是如果我理解您的要求正确,这是不幸的是不明确的,因为我倒是希望

编辑 以下从您的评论请尝试以下操作:

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列,创建多个条目,之后对数据进行一次数据透视,将成员放置为行标签和组作为列标签,然后进行计数值域中的字段。这意味着在每个名称旁边显示组名称后,它会在每个组头名下面显示非空白单元格,这是否可以接受?

+0

对不起 - 我不是很清楚。我有列A中的组列表和行中的所有成员列表。我需要的是列A中所有成员的列表以及它们在相应行中所属的所有组。这更清楚/更容易吗? – 2014-12-09 08:16:41

相关问题