Цитата |
---|
Pavel1234 написал: Как 8 строка должна работать? |
там надо разбирать весь вот этот кусок:
Код |
---|
FILTER (
VALUES ( 'Таблица1'[Столбец1] );
IF (
ISCROSSFILTERED ( 'Таблица2'[1] );
'Таблица1'[Столбец1] IN FILTERS ( 'Таблица2'[1] );
TRUE ()
) |
FILTER берет текущий набор значений (видимый для текущей ячейки сводной таблицы) столбца 'Таблица1'[Столбец1] и для каждого из этих значений делает две проверки:
Если
срез отфильтрован, то проверяем, входит ли (IN) текущее значение 'Таблица1'[Столбец1] в значения, содержащиеся в примененных к срезу фильтрах (FILTERS). Если входит - получаем TRUE. Если не входит - получаем FALSE.
Если
срез НЕ отфильтрован, то получаем TRUE.
Итого, для каждого видимого ячейке значения столбца 'Таблица1'[Столбец1] мы получим FALSE в том случае, если срез отфильтрован
И значение не входит в набор фильтров среза. Во всех остальных случаях получим TRUE.
Соответственно, в одной строке сводной у нас одно значение 'Таблица1'[Столбец1]. Если проверка дала FALSE - не выводим, дала TRUE - выводим. В итоговой строке у нас видны все значения [Столбец1], формула проверяет, кто из них попал в срез.
В принципе, вместо FILTERS тоже можно использовать функцию VALUES