3

我需要在行中转置两列,并按第一列分组;这是一个例子。由此:

    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 吗?

4

1 回答 1

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

于 2013-07-25T10:08:09.977 回答