Excel数据摘要按文本值 – 类似于数据透视表

不知道是否有人能指引我正确的方向。 下面有一个200,000行的电子表格。 (部件号是字母数字)

Part Number Areacode Description 1 1 Table 2 1 Chair 3 1 Bookcase 7 1 Bookcase 4 2 Table 5 2 Shelf 6 3 Chair 8 3 Chair 

我正试图做到这一点

 Area Code Table Chair Bookcase Shelf 1 1 2 3,7 2 4 5 3 3,8 

我认为数据透视表可能是理想的解决scheme,但我已经尝试了这一点,不幸的是我看不出有可能在实际的文本值添加到总和区域。 我猜测唯一的出路是某种macros?

2个月,如果有人有任何想法,仍然需要帮助这个家伙

我已经完成了这项任务,但我相信可能有更快的方法来实现这一目标。 解决scheme是从https://www.ablebits.com/下载Ablebits合并行程序

这使我可以连接基于地区代码的零件号码,所以在我的主表中我现在有区号3.部件号= 3,8和说明=椅子

然后我插入一个新的列,并给每一个唯一的数字标识符。

之后,我运行了一个数据透视表,将区域代码作为垂直值,将其描述为水平值,并在计算字段中将其设置为新的唯一标识符字段,并将值设为最小值。 最大或产品。

然后,我将数据透视表复制并粘贴到一张新表中,并对每个唯一标识符进行查找,以获取实际的零件号码作为文本值 – 这耗时了70个VLookups。

我仍然有兴趣听到这样做的更快的方法。

谢谢。

 Sub Tester() Dim rngIn, rngOut Set rngIn = Sheets("Data") Set rngOut = Sheets("Pivoted") rngOut.CurrentRegion.ClearContents PivotRange rngIn, 2, 3, 1, rngOut End Sub Function PivotRange(rngIn, rowCol, catCol, valCol, rngOut) Dim dictRows, dictCols, r, nR, nC, arr, kR, kC Set dictRows = CreateObject("scripting.dictionary") Set dictCols = CreateObject("scripting.dictionary") arr = rngIn.Value Application.ScreenUpdating = False rngOut.Value = arr(1, rowCol) 'row header For r = 2 To UBound(arr, 1) 'skip column headers kR = arr(r, rowCol) kC = arr(r, catCol) If Not dictRows.exists(kR) Then nR = nR + 1 dictRows.Add kR, nR rngOut.Offset(nR, 0).Value = kR End If If Not dictCols.exists(kC) Then nC = nC + 1 dictCols.Add kC, nC rngOut.Offset(0, nC).Value = kC End If With rngOut.Offset(dictRows(kR), dictCols(kC)) .Value = .Value & IIf(.Value <> "", ",", "") & arr(r, valCol) End With Next r End Function