#powerbi #measure
Вопрос:
У меня есть таблица под названием DW_XYZ:
Год | Месяц | Тип | Ценность |
---|---|---|---|
2021 | 1 | A | 10 |
2021 | 1 | B | 12 |
2021 | 2 | A | 20 |
*нет данных по типу B за месяц=2
Я хотел бы создать меру, в которой хранятся данные, которые я уже отфильтровал по данным за последний месяц, хранящимся в DW_XYZ, с формулой dax:
CALCULATE( SUM(DW_XYZ[Value]), FILTER(DW_XYZ,DW_XYZ[Month]= CALCULATE(MAX(DW_XYZ[Month]), FILTER(DW_XYZ,DW_XYZ[Year]= MAX(DW_XYZ[Year]))) amp;amp; DW_XYZ[Year]=MAX(DW_XYZ[Year]))
На основе измерения я создаю 2 визуальных элемента карты для отображения данных типа A и типа B каждый. 1-й визуальный элемент для отображения типа A, поэтому я перетаскиваю меру, а также перетаскиваю тип столбца в «визуальный фильтр» и вручную выбираю «A», и делаю то же самое для 2-го визуального элемента (тип B).
Для типа A на карточке отображается ожидаемое значение (типа A и месяца=2). Но для типа B на карте отображается неожиданное значение (типа B и Месяц=1), оно должно быть типом B и месяцем=2, которое является пустым/нулевым. **кстати, было бы весьма признателен, если бы формула, включающая обработку пустых значений, была равна нулю (0) вместо пустого.
Ответ №1:
Попробуй
MyMeasure = VAR MaxYear = CALCULATE ( MAX ( DW_XYZ[Year] ), ALL ( DW_XYZ[Type] ) ) VAR MaxMonth = CALCULATE ( MAX ( DW_XYZ[Month] ), ALL ( DW_XYZ[Type] ) ) RETURN 0 CALCULATE ( SUM ( DW_XYZ[Value] ), FILTER ( DW_XYZ, DW_XYZ[Year] = MaxYear amp;amp; DW_XYZ[Month] = MaxMonth ) )
Решающим отличием между вышеизложенным и вашей попыткой является включение ALL
параметра «Применено к столбцу типа» в качестве фильтра CALCULATE
при определении последнего года и месяца. Без этого внешний фильтр, который вы применяете к визуальному элементу, заставит оценку учитывать этот тип только при определении этих значений.
Комментарии:
1. Боже, это потрясающе и дает идеальный результат. Большое вам спасибо за вашу доброту.