Страницы: 1
RSS
В серезе скрыть поле(пусто) - значения есть или конкретное поле, таблица из Power Pivot
 
В срезе скрыть поле (пусто) - значения есть или конкретное поле, таблица из Power Pivot.  Значения поля (пусто) в сводной таблице оставить и фильтровать их только при активном выборе в срезе.
Изменено: Pavel1234 - 16.09.2021 23:07:12
 
Так нельзя. Единственный вариант, это чтобы не мешался настроить границы среза так, чтобы спрятать пустое значение. Вот так:
Вот горшок пустой, он предмет простой...
 
ясно, спасибо
 
Цитата
PooHkrd написал:
Так нельзя.
Можно!!! Создаем меру:
Код
Мера:=CALCULATE(SUM('Таблица1'[Столбец2]);'Таблица1'[Столбец1]<>"поле")

В строки и в срез вытаскиваем поле из таблицы справочника.
В настройках среза ставим галочку "Скрыть элементы без данных".
 
Stepan, приветствую. Если делать такую меру то не будет выполняться условие ТС:
Цитата
Pavel1234 написал:
Значения поля (пусто) в сводной таблице оставить и фильтровать их только при активном выборе в срезе.
Т.е. он хочет и рыбку съесть.  :D
Вот горшок пустой, он предмет простой...
 
PooHkrd, привет!))
И все таки сделать можно, просто чуть больше извращения и справочник отвязанный, но тем не менее задача решается))
 
StepanWolkoff, а, про асимметричные меры я забыл. Ну да, так можно, но ИМХО это изврат
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
ИМХО это изврат
смотря с чем сравнивать)))
Пример правда из Power BI, но тем не менее: визуальный элемент матрица, по сути сводная таблица, в строках отображаются "ответы", при этом в первой строке всегда должно быть "Количество показов", в трех последних: "База", "Надоедание", "База надоедания". В первом столбце всегда должна быть "Норма", остальные столбцы - названия роликов. Плюс условное форматирование по статистически значимому отклонению.
Или связанное представление, где критерии качества должны быть отсортированы от большего к меньшему, "База" всегда быть последней строкой, "Норма" - первый столбец, "Среднее" - второй, далее столбцы по месяцам. При этом значения нормы только для первых трех критериев, УФ тоже только для первых трех по статистически значимому отклонению. Так что у ТС еще цветочки :D
 
Спасибо за ответ. Буду разбирать под свою задачу. В Power BI  я такую задачу решил связью многие ко многим со справочником. Думал может как-то можно в Power Pivote сделать по похожему сценарию.
 
Решил в Power Pivote. Какие подводные камни могут быть в данном случае?
 
Сложно вы как-то решаете.
На примере файла из первого сообщения: убить связь между фильтром и таблицей данных, вот такая мера:
Код
=
CALCULATE (
    SUM ( 'Таблица1'[Столбец2] );
    FILTER (
        VALUES ( 'Таблица1'[Столбец1] );
        IF (
            ISCROSSFILTERED ( 'Таблица2'[1] );
            'Таблица1'[Столбец1] IN FILTERS ( 'Таблица2'[1] );
            TRUE ()
        )
    )
)
F1 творит чудеса
 
Максим Зеленский,
8   Таблица1'[Столбец1] IN FILTERS ( 'Таблица2'[1] );

Как 8 строка должна работать?
 
Цитата
Pavel1234 написал:
В серезе скрыть поле
В серезе - это срезе?
 
да я решил связью многие ко многим, пишут проще можно не разобрал код
Код
=
CALCULATE (
    SUM ( 'Таблица1'[Столбец2] );
    FILTER (
        VALUES ( 'Таблица1'[Столбец1] );
        IF (
            ISCROSSFILTERED ( 'Таблица2'[1] );
            'Таблица1'[Столбец1] IN FILTERS ( 'Таблица2'[1] );
            TRUE ()
        )
    )
)

файл удалены - превышение допустиого рзмера вложения [МОДЕРАТОР]
Изменено: Pavel1234 - 14.01.2020 00:09:58
 
Pavel1234, код следует оформлять соответствующим тегом: ищите такую кнопку (см.. скрин) и исправьте своё сообщение.
И нумеровать строки вручную не придётся )
 
Цитата
Pavel1234 написал:
да я решил связью многие ко многим
1. Вот прям интересно посмотреть на это в excel
2. Если же все таки вы это сделали хоть в Excel, хоть в PowerBI, то это скорее вы нажили себе проблем в дальнейшем, но это только мое ИМХО
 
Цитата
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
F1 творит чудеса
 
Может так работает в последней версии excel (пробовал на 2016) или что-то я делаю не так
Изменено: Pavel1234 - 14.01.2020 23:41:48
 
Цитата
Максим Зеленский написал:
там надо разбирать весь вот этот кусок:
Добрый вечер. Еще раз дошло дело до этой темы, благодаря  решению Максим Зеленский. Большое спасибо! Я написал две меры, на мой взгляд, самые оптимальные варианты. Подскажите, какую лучше использовать по скорости работы и есть ли недостатки в таких решениях?
Код
мера1:=CALCULATE(SUM ( 'Таблица1'[Столбец2] );NOT(ISCROSSFILTERED ( 'Таблица2'[1]))||CONTAINSROW(DISTINCT('Таблица2'[1]);'Таблица2'[1]))

мера2:=IF(ISCROSSFILTERED ( 'Таблица2'[1]);CALCULATE(SUM ( 'Таблица1'[Столбец2] );CONTAINSROW(DISTINCT('Таблица2'[1]);'Таблица2'[1]));SUM ( 'Таблица1'[Столбец2] ))
Страницы: 1
Наверх