Sumif с использованием фильтров страницы, отчета и визуального уровня - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть две таблицы, которые связаны между собой столбцом идентификатора с именем «Program_Code» (1: много).

'Program_Summary':

  • Программный код = каждая строка имеет уникальный идентификатор, например, HI-18, HI-17

  • Название программы = название программы, например, Улучшение дома

  • Расходы на стимулирование = рассчитать (сумма (Program_Data [Incentives])))

'Program_Data':

  • Программный код = много строк с одинаковым идентификатором

  • Стимулы = сумма стимула для суммирования в таблице Сводная информация о программе

  • Состояние записи = заявлено, конвейер или отклонено

  • Запись финансового года = 2017, 2018 или 2019

Я создал таблицу Power BIу которого есть строки, организованные по «имени программы».Обратите внимание, что с каждым названием программы, например, «Home Improvement», может быть связано несколько кодов, например, HI-18 и HI-17, соответствующие финансовым годам.

Я надеюсь суммировать затраты на стимулирование по названию программыи используйте фильтры уровня страницы / отчета для ограничения результатов.Фильтры уровня отчета:

  • Финансовый год записи = 2017
  • Статус записи = Заявлено

Но, рассчитать (сумма (Program_Data [Incentives]))) фильтр игнорирует эти фильтры уровня страницы.Как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2019

Вы создали «Расходы на стимулирование» в качестве вычисляемого столбца.Вместо этого вам нужно создать его как меру .

Вычисляемые столбцы рассчитываются только один раз - при их создании или при перезагрузке данных.После этого вычисляемые столбцы содержат только статические данные и не могут отвечать ни на какие фильтры.

Меры, с другой стороны, представляют собой динамические формулы, которые пересчитываются каждый раз, когда вы меняете фильтры.

Чтобы устранить проблему, просто создайте новую меру на вкладке «Моделирование»:

enter image description here

и добавьте код DAX:

Incentive Spending = SUM(Program_Data[Incentives])

(здесь не нужно использовать CALCULATE).

Опустите эту меру в таблицу или матрицу, и она должна работать.Вместо фильтров на уровне страницы / отчета я бы порекомендовал использовать срезы - создать срез для финансового года и еще один срез для статуса записи.Они позволят вам легко фильтровать расчеты.

0 голосов
/ 27 апреля 2019

Вы можете использовать:

CALCULATE(sum(Program_Data[Incentives]);Program_Data[Record Fiscal Year] = 2017 && Program_Data[Record Status] = "Claimed")

Однако я не понимаю, зачем вам это нужно, потому что у вас есть 2 таблицы с правильной ссылкой, это должно дать вам все возможности с визуализацией таблицы / матрицы, что вам нужно, чтобы показывать правильные результаты ..

...