Восстановить столбцы в Excel - PullRequest
0 голосов
/ 06 мая 2020

Я новичок в Excel и не могу найти в Интернете решения для этой скорости. Не знаю точно, что искать.

Вот как выглядит мой Excel:

enter image description here

И вот чего я пытаюсь достичь:

enter image description here

Может ли кто-нибудь просто объяснить, как я могу это сделать? Спасибо!

***> !! Пробовал решение на моих реальных данных, и теперь у меня новая проблема: (

!!

У меня нет все значения для каждого человека в столбце Тип. Это выглядит так. ***

enter image description here

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Отредактировано для учета переформулированной проблемы

Если у вас O365 с массивами Dynami c и функциями UNIQUE и FILTER, вы можете сделать следующее:

  • Создать таблицу из ваших данных

Затем для формул для вашей таблицы результатов:

G1: ID
G2:  =UNIQUE(Table1[ID])

H1: Name
H2: =@FILTER(Table1[Name], Table1[[ID]:[ID]]=$G2)

I1:    =TRANSPOSE(UNIQUE(Table1[Type]))
I2 :   =@IFERROR(FILTER(Table1[[Value]:[Value]], (Table1[[ID]:[ID]]=$G2)*(Table1[[Type]:[Type]]=I$1)),"")
  • Выберите I2 и заполните вправо до xxx2 (где xxx как минимум справа от вас или может иметь столбцы
  • Выберите H2:xxx2 и заполните как минимум столько строк, сколько у вас есть уникальный идентификатор

------- enter image description here ---

Другой вариант, если у вас есть Excel 2010+, будет для использования Power Query (он же Get & Transform).

  • Get & Transform из таблицы / диапазона
  • Выберите столбец Type
  • Столбец значений - Value
  • Дополнительные параметры - `Не объединять

enter image description here

  • Закрыть и загрузить

enter image description here

0 голосов
/ 06 мая 2020

Это можно сделать с помощью нескольких формул.

Чтобы найти отдельный идентификатор

=INDEX($A$2:$A$10,AGGREGATE(15,6,(1/(COUNTIF($A$14:A14,$A$2:$A$10)=0))*ROW($A$2:$A$10)-1,1))

Скопируйте формулу вниз.

Чтобы найти имена

=VLOOKUP(A15,$A$2:$B$10,2,0)

Копировать формулу вниз

Чтобы найти значения типа

=INDEX($A$2:$D$10,AGGREGATE(15,6,(1/(($B15=$B$2:$B$10)*(C$14=$C$2:$C$10)))*ROW($D$2:$D$10)-1,1),4)

Копировать формулу вниз и вправо по мере необходимости.

Если вы не хотите видеть ошибки, вы можете включить каждую формулу в функцию IFERROR - IFERROR(...,"")

enter image description here

...