Как объединить и обработать диапазон по признаку
У меня в гугл таблице есть группы строк, данные которых надо обрабатывать по группами:
- Группы формируются по "Признак2"
- Результат выводится в строках по "Признак1"="Группа"
Вопрос: как получить диапазоны в колонках, отфильтрованные по признаку из колонки B, для последующей обработки:
В общем тут 2 задачи, так как я подозреваю что их можно решить получив диапазон группы.
Задача 1: Объединить/сцепить ячейки из колонки "C" погруппно в текст. (пример колонка "E").
Пробовал через FILTER, но не робит
=ARRAYFORMULA(ЕСЛИ(A2:A="Группа";FILTER(C:C;B2:B=(ЕСЛИ(A2:A="Группа";B2:B;""));"")))
А для TEXTJOIN нужен диапазон
Задача 2: Получить min-max значения групп из колонки "D", (пример колонка "F").
У меня получилось, но она не работает через ARRAYFORMULA
=ЕСЛИ(A:A="Группа";"min "&(MINIFS(D:D;B:B;B3)&",max "&MAXIFS(D:D;B:B;B3));"")
Ответы (1 шт):
Решение, хоть и очевидно, требует вникнуть в суть происходящего.
Идея в том, чтобы собрать группы заголовков через QUERY, обработать пробелы и завершить вывод через VLOOKUP только для нужных строк.
=INDEX(IF(A3:A="Группа";
VLOOKUP(
B3:B;
{
UNIQUE(B3:B)\
TRIM(REGEXREPLACE(TRANSPOSE(QUERY(IF(B3:B=TRANSPOSE(UNIQUE(B3:B));C3:C&", ";"");;9^9));"(^\s+|\s*,\s*$)";""))
};
2;
);
))
Теже яйца, вид сбоку
=INDEX(IF(A3:A="Группа";
"min: " & VLOOKUP(
B3:B;
QUERY(A3:D;"select B, min(D), max(D) where A='' group by B label B'' ";1);
2;
) & ", max: " & VLOOKUP(
B3:B;
QUERY(A3:D;"select B, min(D), max(D) where A='' group by B label B'' ";1);
3;
);))
Спасибо, что привели ссылки на мой сайт в примере. Теперь я понимаю, что нужно еще добавить информации относительно того, как принимать решения по расчету в таких ситуациях.


