Часто попадается задача сгруппировать строки по какому-то признаку. Например, у нас есть список сотрудников и подразделений. Нужно получить для каждого подразделения список пользователей через запятую.
Основное решение
Например, в колонке A:B
данные. A:A
- подразделения, B:B
- сотрудники.
Интересно посмотреть на результат вывода формулы
=ARRAYFORMULA(IF(A3:A=TRANSPOSE(UNIQUE(A3:A));B3:B;))
Она выведет списки пользователей по колонкам.
Далее, нужно все свести в одну ячейку
=ARRAYFORMULA(QUERY(IF(A3:A=TRANSPOSE(UNIQUE(A3:A));B3:B&", ";"");;9^9))
, чтобы получить перечисленных через запятую пользователей
Финальная формула, которая просто "поворачивает" результат и "прикрепляет" слева список групп
=ARRAYFORMULA({UNIQUE(A3:A)\TRIM(
REGEXREPLACE(
TRANSPOSE(QUERY(IF(A3:A=TRANSPOSE(UNIQUE(A3:A));B3:B&", ";"");;9^9));
"(^\s+|\s*,\s*$)";
""
)
)})
Таблица с полными примерами QUERY. Группировка строк
Комментарии
Отправить комментарий
Спасибо за ваше сообщение. Оно может быть не опубликовано сразу из-за того, что попало на предмодерацию. Дождитесь публикации сообщения. Спасибо за понимание.
Thank you for your message. It may not be published immediately due to the fact that it got to pre-moderation. Wait for the message to be published. Thank you for understanding.