Страницы: 1
RSS
Функция Фильтр с большим массивом
 
Здравствуйте, есть массив в 38 строк наименования деятельности и 1224 столбца с кодами
Необходимо фильтровать по коду и вывести все наименования где есть этот код
ФИЛЬТР(D1:D38;(E1:E38=A2)+(F1:F38=A2)+(G1:G38=A2)+(H1:H38=A2)+(I1:I38=A2)+(J1:J38=A2)+(K1:K38=A2)+...(AUF1:AUF38=A2))
Можно ли как то сократить формулу (писать каждый столбец это слишком) или другим способом может быть можно это сделать, через другую функцию?
 
maximus_ufa, добрый день. Для версии эксель 2021+
=ФИЛЬТР(E2:E39;МУМНОЖ(--(F2:AUG39=B3);ПОСЛЕД(СЧЁТЗ($F$1:$AUG$1);;1;0)))
 
=ФИЛЬТР($E$2:$E$39;СЧЁТЕСЛИ(СМЕЩ($E$2;СТРОКА($E$1:$E$38);;;1225);$B$3))
Изменено: Sergey Stoyanov - 26.05.2026 11:29:28
 
Sergey Stoyanov, наверное, нужно формулу поправить =ФИЛЬТР($E$2:$E$39;СЧЁТЕСЛИ(СМЕЩ($E$1;СТРОКА($E$1:$E$38);;;1225);$B$3))
 
pq, при изменении нужно вручную обновлять запросы. вкладка данные кнопка обновить все.
Изменено: Vik_tor - 26.05.2026 14:07:26
 
Цитата
написал:
pq
а как это работает.. почему то не обновляется таблица
 
Цитата
написал:
=ФИЛЬТР($E$2:$E$39;СЧЁТЕСЛИ(СМЕЩ($E$2;СТРОКА($E$1:$E$38);;;1225);$B$3))
Цитата
написал:
maximus_ufa , добрый день. Для версии эксель 2021+
работает, но я правильно понимаю что в версиях до 2021, что в яндексе что в гугле нужно через массив это как то делать? :)
Изменено: maximus_ufa - 26.05.2026 13:15:27
 
maximus_ufa, для эксель вводить, как формула массива (Ctrl+Shift+Enter), в гугл-таблицах вроде как =ARRAYFORMULA()
 
можно в виде сводной по запросу PQ
 
Цитата
написал:
в гугл-таблицах вроде как =ARRAYFORMULA()
=ArrayFormula(FILTER($E$2:$E$39;COUNTIFS(OFFSET($E$1;ROW($E$2:$E$38);;;1225);$B$3)))

выдает ошибку

В функции FILTER указан неверный диапазон. Требуемое число строк – 38, столбцов – 1. Фактическое число строк – 1, столбцов – 1.
 
В GS куча функций, аналогичных тем, какие есть в арсенале 365. Вот это
Код
=FILTER(
    E2:E39,
    BYROW(
        F2:AUG39,
        LAMBDA(x, IFERROR(MATCH(B3, x, 0), FALSE))
    )
)
сработает как в 365, так и в GS (без ArrayFormula). А в GS даже IFERROR не понадобится, т.к. там FILTER игонорирует ошибки во 2м аргументе.
Изменено: AlienSx - 26.05.2026 16:49:39
Пришелец-прораб.
 
Цитата
написал:
В GS куча функций, аналогичных тем, какие есть в арсенале 365. Вот это
однако не знал про лямбда, спасибо, логически в голове у меня было что то именно такое ))))))
а вот Яндекс отстает, не умеет еще СМЕЩ и BYROW с лямбдой похоже тоже
Всем спасибо
 
как вариант:
=ФИЛЬТР.XML("<I><i>"&ОБЪЕДИНИТЬ("</i><i>";1;ЕСЛИ(F2:AUG39=B3;E2:E39;""))&"</i></I>";"//i[not(preceding::*=.)]")
или
=ИНДЕКС(E:E;УНИК(АГРЕГАТ(15;6;СТРОКА(F2:AUG39)/(F2:AUG39=B3);ПОСЛЕД(СЧЁТЕСЛИ(F2:AUG39;B3)))))
 
Можно ещё так
Код
=ОБЪЕДИНИТЬ(СИМВОЛ(10);1;ЕСЛИ(B3=F2:AUG39;E2:E39;""))
Страницы: 1
Читают тему
Наверх