2013-07-25 59 views
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吗?

+1

尝试使用数据透视表... –

回答

3

您更好的使用VBA,但如果你真的需要公式解:

enter image description here

首先,你需要创建独特的名单: D2=IFERROR(INDEX($A$1:$A$19, MATCH(0, COUNTIF($D$1:D1, $A$1:$A$19), 0)),0) 并将其向下拖动复制。

然后,我们需要查找的第一,第二,第三,等比赛: 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

注意正确的: Rememeber同时输入两个公式为CTRL+SHIFT+ENTER,因为它们都是数组公式。根据您的数据范围更新范围。