我需要在行中转置两列,并按第一列分组;这是一个例子。 由此:
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吗?
答案 0 :(得分:4)
您最好使用VBA
,但如果您确实需要公式解决方案:
首先,您需要创建唯一列表:
D2=IFERROR(INDEX($A$1:$A$19, MATCH(0, COUNTIF($D$1:D1, $A$1:$A$19), 0)),0)
然后将其拖下来复制。
然后,我们需要查找第1,第2,第3等匹配:
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
输入两个公式,因为它们都是数组公式。根据您的数据范围更新范围。