我有一张excel表,在一栏中标题名称' LOTZ'多行商品名称列在单个单元格中(商品数量变化,例如第1天有7个商品,第2天可能有1个商品)。我需要在全年创建前50名商品,并在单独的表格中分别计算。
示例: -
我想要的新插页:
我可以使用DATA标签' text to column'但不知道如何通过宏代码进行整合。
任何帮助都将受到高度赞赏。
感谢monika
答案 0 :(得分:1)
试试这个:
Sub consolidate()
Dim r As Range, dict As Object, lotz
Set dict = CreateObject("Scripting.Dictionary")
For Each r In Worksheets("Sheet1").UsedRange.Columns("C").Offset(1).Cells
For Each lotz In Split(r.value, vbLf)
dict(lotz) = dict(lotz) + 1
Next
Next
With Worksheets.Add
.Range("A1:B1").value = Array("LOTZ", "Count")
.Range("A2:A" & dict.Count + 1).value = Application.Transpose(dict.Keys)
.Range("B2:B" & dict.Count + 1).value = Application.Transpose(dict.Items)
.Range("A2:B" & dict.Count + 1).Sort .Range("B2"), xlDescending
End With
End Sub
修改
如果lotz
的列未知,并且您想在第1行中找到其标题,则可以改为使用此列:
For Each r In Worksheets("Sheet1").UsedRange.Find("LOTZ").EntireColumn.SpecialCells(xlCellTypeConstants).Offset(1)