Как я могу извлечь несколько значений на основе одного критерия? - PullRequest
2 голосов
/ 24 июня 2019

В настоящее время у меня есть база данных, которая выглядит следующим образом:

enter image description here

Но я бы хотел, чтобы вывод базы данных выглядел так:

enter image description here

Я пытался использовать INDEX MATCH, но мне не удалось найти способ исключить пустые значения из вывода.

Формула, которую я использовал, но не совсем вернул ожидаемый результат:

=INDEX('Input sheet'!B2:I7,0,MATCH(A2,'Input sheet'!A2:A7,0))

Существует ли формула, которая может возвращать непустые значения в строке, как показано на выходном листе?

https://docs.google.com/spreadsheets/d/1HdkBPhzB5oZ0RyKZzAOkPIXT81upgHiGBLfgXsrOZDI/edit?usp=sharing

1 Ответ

2 голосов
/ 24 июня 2019
=ARRAYFORMULA({UNIQUE(FILTER('Input sheet'!A2:A, 'Input sheet'!A2:A<>"")), TRIM(SPLIT(
 TRANSPOSE(QUERY(IF(QUERY(QUERY(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRIM(TRANSPOSE(QUERY(
 TRANSPOSE(IF(LEN('Input sheet'!B2:J), "♠"&'Input sheet'!A2:A&"♦"&'Input sheet'!B1:J1, ))
 ,,999^99))),,999^99), "♠")), "♦")),
 "select count(Col2) where Col2 is not null group by Col2 pivot Col1",0), "offset 1",0)<>"",
 QUERY(QUERY(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRIM(TRANSPOSE(QUERY(
 TRANSPOSE(IF(LEN('Input sheet'!B2:J), "♠"&'Input sheet'!A2:A&"♦"&'Input sheet'!B1:J1, ))
 ,,999^99))),,999^99), "♠")), "♦")),
 "select Col2,count(Col2) where Col2 is not null group by Col2 pivot Col1", 0), 
 "select Col1 offset 1", 0)&"♥", ),,999^99)), "♥"))})

0


ОБРАТНЫЙ СВЕРХ:

=ARRAYFORMULA(TRANSPOSE(QUERY(SPLIT(TRANSPOSE(SPLIT(TRIM(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(LEN('Output sheet'!B2:F), "♠"&'Output sheet'!A2:A&"♦"&'Output sheet'!B2:F, ))
 ,,999^99)),,999^99)), "♠")), "♦"), 
 "select Col2,count(Col2) where Col2 is not null group by Col2 pivot Col1", 0)))

0

...