2013-07-25 3 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) и перетащите его вниз, чтобы скопировать.

Затем нам нужно для поиска для 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

Примечание: Rememeber для ввода обеих формул с CTRL+SHIFT+ENTER, поскольку они являются формулами массива. Обновлять диапазоны в соответствии с диапазонами данных.

Смежные вопросы