получить значения из первого столбца, когда другие столбцы верны, используя список поиска - PullRequest
1 голос
/ 22 сентября 2019

У меня есть таблица source с переменным количеством столбцов.Первый столбец - имя , а остальные столбцы - тип со значениями true или false на основе моих данных.

У меня также естьвведите lookup столбец, который будет иметь имена types .

Исходя из типа s, выбранного в столбце lookup , я хочу вернуть names из источника столбец, который имеет true для любого из выбранных типов .

Трудно объяснить, поэтому я сделал образец листа с ожидаемым результатом и объяснением в https://docs.google.com/spreadsheets/d/1U7-Vz8tq-4E1Z6jkVFzsoIvW8VHRJNGw0oqDE1LUKOI/edit?usp=sharing, имеет образецinput и мой ожидаемый вывод.

Можно добавить новые строки в таблицу source , а также добавить новые столбцы ( types ).Одна мысль, что я должен был иметь формулу для каждой строки в таблице source , проверяя столбец на основе того, что находится в таблице lookup , но я хочу избежать этого, потому что новые строки / столбцы могутбыть добавленным в таблицу source .

Я надеюсь на один arrayformula или что-то более эффективное.Я смотрю на это часами без удачи.Я даже не знаю с чего начать ...

1 Ответ

1 голос
/ 22 сентября 2019

для H9 :

=ARRAYFORMULA(UNIQUE(TRIM(QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(B3:F=TRUE, "♠"&B2:F2&"♦"&A3:A, )),,999^99)),,999^99), "♠")), "♦"), 
 "select Col2 where Col1 matches '"&TEXTJOIN("|", 1, G9:G)&"'"))))

0


для H3 :

=ARRAYFORMULA(UNIQUE(TRIM(QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(B3:F=TRUE, "♠"&B2:F2&"♦"&A3:A, )),,999^99)),,999^99), "♠")), "♦"), 
 "select Col2 where Col1 matches '"&TEXTJOIN("|", 1, G3:G6)&"'"))))
...