Фильтрация строк Google Sheet по группам (разделенные пустыми строками). Фильтрация объединенных записей

Имею данные в Google Sheet: enter image description here

Я получаю данные в формате выше. Таким образом, записи агрегируются из разных источников. Одна запись фактически представлена ​​одной строкой текста в столбцах B-H . Данные разделены по записям от Менеджера 1 до Менеджера 2 и так далее. Но столбцы I-L имеют несколько строк и относятся к одиночным записям в группе.

Установил цвета чтобы было видно каждую индивидуальную запись: enter image description here

SourceSheet (образец данных) доступен: SourceSheet


Мне нужно фильтровать эти данные по столбцам B-H . Когда я фильтрую, как обычно, фильтруется только одна строка. Как выполнить фильтрацию по сгруппированным записям, разделенным пустыми строками?

Например, если я фильтрую на основе Менеджера 1, я получаю результат: enter image description here

Можно ли реализовать это с помощью стандартного фильтра Google Sheet или Googe Apps Script?


Ответы (3 шт):

Автор решения: vikttur_Stop_RU_war_in_UA

В доп. столбец:

=СЧЕТЕСЛИ(B$4:B4;">0")

Или для текстовых записей:

=СЧЕТЕСЛИ(C$4:C4;"?*")

Можно применить СЧЕТ(), СЧЕТЗ()

Фильтрация по этому столбцу

→ Ссылка
Автор решения: Alexander Kouleshov

Организация Вашей таблицы исключает возможность использовать встроенный фильтр по озвученным критериям. Моё предложение - "велосипед": преобразовывать массив, чтобы в строках был хоть один уникальный ключ для возможности фильтровать нужные диапазоны. Попробуйте на новом листе в ячейку A1 такую формулу (авось поможет). Это даст возможность устанавливать нужный фильтр по манагеру:

=IFNA(HSTACK('Filtering 2'!B3:C;{"Manager";ARRAY_CONSTRAIN( ARRAYFORMULA(VLOOKUP(ROW('Filtering 2'!D4:D);IF(LEN('Filtering 2'!D4:D);HSTACK(ROW('Filtering 2'!D4:D);'Filtering 2'!D4:D););2));COUNTA('Filtering 2'!I4:I);1)};'Filtering 2'!E3:L);)
→ Ссылка
Автор решения: Geo Alex

Как правильно заметил @Alexander Kouleshov, для фильтрации нужен ключ. Столбец с ключом должен быть полностью заполнен. Вот Вам варинант, где можно выбрать сразу несколько столбцов, которые будут заполнены, и соответственно которые можно будет использовать в качестве ключа для фильтрации.Вот так это будет выглядеть

Формула:=let(key;"Manager|Clinic"; BYCOL(Filtering!B3:L;LAMBDA(_col; if(REGEXMATCH( CHOOSEROWS(_col;1);key);SCAN(;_col;LAMBDA(acc;x;IF(x<>"";x;acc)));_col))))

→ Ссылка