我需要将两列换行,并按第一列分组;这是一个例子。
由此:

    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输入两个公式,因为它们都是数组公式。根据您的数据范围更新范围。

09-11 13:19