Скользящее среднее значение Power BI DAX для правильного построения графика в столбце - PullRequest
0 голосов
/ 26 сентября 2018

У меня проблема с показателем 3-го скользящего среднего, чтобы правильно отобразить его на графике.

Модель данных здесь:

https://docs.google.com/spreadsheets/d/1naChcuZtjSbk0pVEi1xKuTZhSY7Rpabc0OCbmxowQME/edit?usp=sharing

Я использую приведенную ниже формулу для вычисления 3-го среднего значения с помощью меры:

Product3Mth = CALCULATE(SUM('Table'[Product A uncum]);DATESINPERIOD('Table'[Date];LASTDATE('Table'[Date]);-3;MONTH))/3

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

Table visualisation

Но когда я строю его на диаграмме столбцов вместе с накопленным продуктом A, я получаю неправильное значение, которое является значением для продукта unaccum / 3сумма 3 последовательных значений для продукта unaccum /3.

Column Chart visualization

Что я должен изменить в DAX, чтобы он правильно отображался?Пожалуйста, ПОМОГИТЕ

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

Функции DATESINPERIOD и LASTDATE не будут работать правильно, потому что «Таблица» [Дата] не является непрерывным диапазоном дат.Эти функции должны основываться на таблице дат.

Попробуйте что-то вроде этого

Product3MthAVG =
VAR rowDate = 'Table'[Date]
RETURN
    CALCULATE (
        SUM ( 'Table'[Product A unaccum] );
        FILTER (
            'Table';
            'Table'[Date]
                < DATE ( YEAR ( rowDate ); MONTH ( rowDate ) + 1; DAY ( rowDate ) )
                && 'Table'[Date]
                    >= DATE ( YEAR ( rowDate ); MONTH ( rowDate ) - 2; DAY ( rowDate ) )
        )
    )
        / 3
0 голосов
/ 26 сентября 2018

Похоже, вы наткнулись здесь на несколько «ловушек» Power BI, когда речь идет о формате даты в ваших исходных данных и о способе, который вы выбрали для отображения даты.колонка в вашей визуализации.Но я думаю, что я понял это.Это мой результат:

enter image description here

И просто для проверки некоторых чисел:

(4043 + 20 + 158) / 3 = 1469

(189+ 200 + 207) / 3 = 199

А вот подробности:

Я использовал этот набор данных, в котором немного изменил имена, чтобы было проще писать выражения DAX, и импортировал его, используя Get Data

Date                unAcc   ACc
01-10-2017 00:00    4043    4043
01-11-2017 00:00     205    4248
01-12-2017 00:00     158    4406
01-01-2018 00:00     142    4548
01-02-2018 00:00     312    4860
01-03-2018 00:00     258    5118
01-04-2018 00:00     176    5294
01-05-2018 00:00     210    5504
01-06-2018 00:00     189    5693
01-07-2018 00:00     200    5893
01-08-2018 00:00     207    6100

И по причинам, которые мне до сих пор неизвестныУ меня были те же проблемы, что и у вас с колонкой Date.Но, следуя некоторым советам из сообщества Power BI , я создал enter image description here Date2 следующим образом:

Date2 = 
DATE('Table1'[Date].[Year];'Table1'[Date].[MonthNo];1)

Затем я рассчитал среднее значение за три месяцаиспользуя enter image description here

Moving_Average_3_Months = 
CALCULATE (
    AVERAGEX ( 'Table1'; 'Table1'[unAcc] );
    DATESINPERIOD (
        'Table1'[Date2];
        LASTDATE ( 'Table1'[Date2]);
        -3;
        MONTH
    )
)

Теперь, если вы вставите column chart и назначите Date2 для Axis и Moving_Average_3_months вместе с unAcc для Values, вы получите это:

enter image description here

И это не то, что мы хотим.Итак, перейдите в настройки визуализации и измените Date2 с Date Hierarchy на просто Date2 следующим образом:

enter image description here

И это все:

enter image description here

И все это в виде таблицы, поэтому вы можете видеть, что числа верны:

enter image description here

В вашем случае, возможно, единственное, что вам нужно сделать, - это самая последняя часть.

Пожалуйста, не стесняйтесь, дайте мне знать, как это работает для вас!

0 голосов
/ 26 сентября 2018

В последнем комментарии я задаю вопрос о вычисленном значении (в виде столбца или показателя), потому что у меня есть разные результаты, основанные на этом, как вы можете видеть в следующем примере:

enter image description here

Product3Mth основан на вычисленном столбце, а Product3Mth 2 основан на показателе (желаемый результат!).

Надеюсь, этот пример поможет вам.Если не скажи мне, пожалуйста!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...