Как перенести строки в столбцы [дополнительно] - PullRequest
0 голосов
/ 18 октября 2019

У меня есть файл Excel с множеством строк, таких как:

category1 | keyword1 | type keyword1
category1 | keyword2 | type keyword1
category2 | keyword3 | type keyword2
category2 | keyword4 | type keyword1
category2 | keyword5 | type keyword2
category3 | keyword6 | type keyword3
category4 | keyword7 | type keyword2
category4 | keyword8 | type keyword3
category4 | keyword9 | type keyword1
category4 | keyword1 | type keyword1

Я хотел бы преобразовать это в:

category1 | keyword1 | type keyword1 | keyword2 | type keyword1
category2 | keyword3 | type keyword2 | keyword4 | type keyword1 | keyword5 | type keyword2
category3 | keyword6 | type keyword3
category4 | keyword7 | type keyword2 | keyword8 | type keyword3 | keyword9 | type keyword1 | keyword1 | type keyword1

Проблема:

  • У меня непоследовательное количество строк в категории

Ответы [ 2 ]

2 голосов
/ 18 октября 2019

Через функции листа:

enter image description here

Формула в E2 (и перетаскивание вниз):

=INDEX($A$2:$A$11,MATCH(0,COUNTIF($E$1:E1,$A$2:$A$11),0))

Примечание: Это формула массива, которую необходимо ввести через Ctrl Shift Введите

Формула в F2 (и перетащите вправо и вниз):

=IFERROR(IF(MOD(COLUMN(),2)=0,INDEX($B$1:$B$11,SMALL(IF($A$2:$A$11=$E2,ROW($A$2:$A$11),""),ROUND(COLUMN(A1)/2,0))),INDEX($C$1:$C$11,SMALL(IF($A$2:$A$11=$E2,ROW($A$2:$A$11),""),ROUND(COLUMN(A1)/2,0)))),"")

Примечание: Это формула массива, которую нужно вводить с помощью Ctrl Shift Enter

1 голос
/ 18 октября 2019

Другой вариант и в формуле, не являющейся массивом

Предположим, что «Таблица входов» размещена в A1:C11 с заголовком, а «Таблица выходов» размещена в E1:N5 с заголовком (что-то вроде макета таблицы JvdV)

Затем в E2 скопировано:

=IFERROR(INDEX($A$2:$A$11,MATCH(0,INDEX(COUNTIF(E$1:E1,$A$2:$A$11),0),0)),"")

В F2, скопировано в N2 и скопировано все:

=IFERROR(INDIRECT(TEXT(AGGREGATE(15,6,ROW($2:$11)/1%+{2,3}/($A$2:$A$11=$E2),COLUMN(A1)),"R0C00"),0),"")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...