如果您知道如何使用 VBA,那么编写一个简短的 sub() 来为您完成这项工作非常简单。我正在硬编码地址 - 你可以弄清楚如何移动它。我假设当您调用此宏时您的数据位于活动工作表上,并且您希望副本显示在原始数据的右侧(在 A 和 B 列中,从第 2 行开始 - 为您提供上面的标签空间)。此外,我将假设您的组编号为 1、2、3...,并且您不需要复制它们的值。然后代码看起来像这样(按F-11打开VBA编辑器,插入一个模块,然后复制这个)
Sub bigSwap()
dim R as Range, c as Range
dim grp
dim grpCount(1 To 100) ' assuming no more than 100 groups, or adjust this number
dim i
' just making sure it's properly initialized
for i=1 To 100
grpCount(ii)=0
next i
Set R = Range("B2", [B2].End(xlDown)) ' this finds all the cells with values
' note - I am using [B2] as shorthand for Range("B2")
For each c in R.cells
grp = c.offset(0, -1).value ' find the corresponding group
[D1].offset(grp, grpCount(grp)).value = c.value
grpCount(grp) = grpCount(grp)+1 ' keep track of # in this row
next
End Sub
我无法对此进行测试,但我相信它很好。如果您遇到问题,请发表评论。