Выводим в ячейке выбранные в фильтре значения
Или не в фильтре, а просто видимые (не скрытые).
Или не в фильтре, а просто видимые (не скрытые).
Логика такая:
1. Пользуемся функцией ПРОМЕЖУТОЧНЫЕ. ИТОГИ (SUBTOTAL) — или функцией АГРЕГАТ (AGGREGATE), чтобы найти видимые строки. Функция с аргументом 103 будет подсчитывать значения в видимых строках диапазона. Но в качестве диапазона мы будем давать ей каждую очередную ячейку в нашей таблице. Таким образом, для видимых ячеек результатом подсчета будет единица.
Почему мы делаем это не напрямую, как-то так:
ПРОМЕЖУТОЧНЫЕ.ИТОГИ (столбец;103)
А через MAP, обращаясь к каждому значению по очереди?
Потому что одна функция по всему столбцу выдаст количество видимых ячеек. А нам нужно получить единицу в каждой видимой строке. Словно мы протянули формулу и получили вспомогательный столбец. Который потом используется в функции ФИЛЬТР (FILTER). Только вот столбец этот виртуальный, на листе его нет — мы получаем его с помощью MAP для каждого значения из таблицы.
2. Далее мы отфильтруем столбец, который проверяем (в примере — канал продаж) по этим единицам, то есть по видимым строкам. Используем функцию FILTER (ФИЛЬТР).
3. И удалим дубликаты, так как даже если в таблице много сделок с каналом продаж «Выставка», нам нужно этот канал показать один раз. Так что используем УНИК (UNIQUE).
4. В конце объединяем все в одну текстовую строку, чтобы результат не вываливался вовне, а был в одной ячейке. Функция ОБЪЕДИНИТЬ (TEXTJOIN).
=ОБЪЕДИНИТЬ ("разделитель";УНИК (ФИЛЬТР (столбец;MAP (столбец;LAMBDA (a;ПРОМЕЖУТОЧНЫЕ.ИТОГИ (103;a)))=1)))
1. Пользуемся функцией ПРОМЕЖУТОЧНЫЕ. ИТОГИ (SUBTOTAL) — или функцией АГРЕГАТ (AGGREGATE), чтобы найти видимые строки. Функция с аргументом 103 будет подсчитывать значения в видимых строках диапазона. Но в качестве диапазона мы будем давать ей каждую очередную ячейку в нашей таблице. Таким образом, для видимых ячеек результатом подсчета будет единица.
Почему мы делаем это не напрямую, как-то так:
ПРОМЕЖУТОЧНЫЕ.ИТОГИ (столбец;103)
А через MAP, обращаясь к каждому значению по очереди?
Потому что одна функция по всему столбцу выдаст количество видимых ячеек. А нам нужно получить единицу в каждой видимой строке. Словно мы протянули формулу и получили вспомогательный столбец. Который потом используется в функции ФИЛЬТР (FILTER). Только вот столбец этот виртуальный, на листе его нет — мы получаем его с помощью MAP для каждого значения из таблицы.
2. Далее мы отфильтруем столбец, который проверяем (в примере — канал продаж) по этим единицам, то есть по видимым строкам. Используем функцию FILTER (ФИЛЬТР).
3. И удалим дубликаты, так как даже если в таблице много сделок с каналом продаж «Выставка», нам нужно этот канал показать один раз. Так что используем УНИК (UNIQUE).
4. В конце объединяем все в одну текстовую строку, чтобы результат не вываливался вовне, а был в одной ячейке. Функция ОБЪЕДИНИТЬ (TEXTJOIN).
=ОБЪЕДИНИТЬ ("разделитель";УНИК (ФИЛЬТР (столбец;MAP (столбец;LAMBDA (a;ПРОМЕЖУТОЧНЫЕ.ИТОГИ (103;a)))=1)))