我需要将两列换行,并按第一列分组;这是一个例子。
由此:
A B
IP1 21
IP1 22
IP1 23
IP2 80
IP2 443
IP3 21
IP3 22
IP3 23
IP3 80
IP3 443
对此:
A B C D E F
IP1 21 22 23
IP2 80 443
IP3 21 22 23 80 443
我怎样才能做到这一点?我可以避免使用宏和VBA吗?
最佳答案
您最好使用VBA
,但是如果您确实需要公式解决方案,请执行以下操作:
首先,您需要创建唯一列表:D2=IFERROR(INDEX($A$1:$A$19, MATCH(0, COUNTIF($D$1:D1, $A$1:$A$19), 0)),0)
并将其向下拖动以进行复制。
然后,我们需要查找1st,2nd,3rd等匹配项:E2=IFERROR(INDEX($B$1:$B$19, SMALL(IF($D2=$A$1:$A$19, ROW($A$1:$A$19)-MIN(ROW($A$1:$A$19))+1, ""), E$1)),0)
再次向下拖动,将其向右拖动以填写E2:N12
上的所有单元格
注意:
请记住用CTRL+SHIFT+ENTER
输入两个公式,因为它们都是数组公式。根据您的数据范围更新范围。