У меня есть дублирующиеся строки, представляющие клиентов, которые купили разные товары. Купленные товары находятся в одном столбце. Я хотел бы переместить их в отдельные столбцы, чтобы иметь возможность импортировать в другую программу. Поэтому мои данные выглядят примерно так:
John book
John ball
John bat
Tom book
Tom bat
Kate ball
Я бы хотел, чтобы данные о приобретенных товарах были перенесены в отдельные столбцы, например так:
John book ball bat
Tom book - bat
Kate - ball -
Где каждая книга, мяч и бита имеют свою собственную колонку.
решение1
Эта формула, заполненная сверху вниз A8
, выведет список имен клиентов, удалив дубликаты:
=IFERROR(INDEX($A$1:$A$6,MATCH(0,COUNTIF(A$7:A7,$A$1:$A$6),0)),"")
Это формула массива, поэтому ее необходимо вводить с помощью CTRLShiftEnter, а не просто Enter.
Эта формула, заполненная справа и снизу от B8
, выведет список покупок каждого клиента:
=IF(SUMPRODUCT(($A$1:$A$6=$A8)*($B$1:$B$6=INDEX($B$1:$B$3,COLUMN(A1))))>0, INDEX($B$1:$B$3,COLUMN(A1)),"")
Обратите внимание, что последняя формула основана на том факте, что B1:B3
это упорядоченный список покупок. Это, вероятно, совпадение, и подобный список может быть расположен где угодно. Если бы список был горизонтальным, а не вертикальным, формула была бы проще. Допустим, список находится в E1:G1
, тогда формула будет такой:
=IF(SUMPRODUCT(($A$1:$A$6=$A8)*($B$1:$B$6=E$1))>0,E$1,"")
А формула массива, аналогичная первой, заполненная прямо из E1, могла бы перечислить покупки там:
=IFERROR(INDEX($B$1:$B$6,,MATCH(0,COUNTIF($D1:D1,$B$1:$B$6),0)),"")