#google-sheets #excel-formula #google-sheets-formula
Вопрос:
Был бы глубоко признателен, если бы кто-нибудь мог мне помочь с этим.
Обзор
В таблице Google у меня есть следующая таблица:
Школа A | Школа B | Школа C | |
---|---|---|---|
Тим | x | x | |
Джон | |||
Мартин | x | x | |
Джек | x |
Строки — это имена людей, которые обслуживают определенные школы. Значение ‘x’ в ячейке просто обозначает отношение. Таким образом, Тим обслуживает школу A и школу C, и аналогично Джек обслуживает только школу C.
Примечание: ячейки либо пустые, либо содержат этот ‘x’. Подумал, что это может помочь. На самом деле нам не нужно искать ‘x’ только в непустой ячейке.
Вопрос
У меня есть другая таблица, подобная следующей, где у меня есть столбец School, в котором перечислены все школы в строках.
Я хотел бы создать формулу для использования приведенной выше таблицы и вернуть объединенную строку, в которой перечислены все люди, посещающие эту школу.
Школа | Люди |
---|---|
Школа A | Тим, Мартин |
Школа B | Мартин |
Школа C | Тим, Джек |
Ответ №1:
используйте:
=INDEX(REGEXREPLACE(TRIM(SPLIT(FLATTEN(QUERY(TRANSPOSE(QUERY(QUERY(SPLIT(FLATTEN(
IF(B2:D="",,B1:D1amp;"♠♦"amp;A2:Aamp;",♦"amp;A2:A)), "♦"),
"select Col1,max(Col2) where Col2 is not nUll group by Col1 pivot Col3"),
"offset 1", 0)),,9^9)), "♠")), ",$", ))
Комментарии:
1. Большое вам спасибо! Это выглядит так потрясающе! (пытаюсь сделать это прямо сейчас) далеко за пределами моих навыков работы с таблицами. Однако у меня возник вопрос, я не вижу, чтобы вы ссылались на столбец F. Создаст ли это новую таблицу? У меня есть существующая таблица со школьными строками (и другими столбцами перед ней). В приведенном выше примере я хотел добавить формулу в G2, G3, G4, используя значения в F2, F3, F4
2. Кстати, ты потрясающий!!!
3. Это отлично работает, я определенно могу просто использовать это и выполнить поиск из этой таблицы. Однако я получаю ведущее ‘,’ в строке типа «, Craig, Crowder, Hann, Maciel»
4. @Tahir если вы хотите выполнить поиск, используйте:
=INDEX(IFNA(VLOOKUP(F2:F, REGEXREPLACE(TRIM(SPLIT(FLATTEN(QUERY( {B1:D1amp;"♦"; IF(B2:D="",,A2:Aamp;",")},,9^9)), "♦")), ",$", ), 2, 0)))
Ответ №2:
или:
=INDEX(REGEXREPLACE(TRIM(SPLIT(FLATTEN(QUERY(
{B1:D1amp;"♦"; IF(B2:D="",,A2:Aamp;",")},,9^9)), "♦")), ",$", ))
Комментарии:
1. Это работает отлично! Большое вам спасибо! Я так благодарен!