繁体   English   中英

Power BI Rolling Average DAX在柱形图上正确绘制

[英]Power BI Rolling Average DAX to plot correctly on Column Chart

我对第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

当我将其绘制为表格时,它显示每个月的正确值。

表可视化

但是当我在柱形图中与产品A累计一起绘制时,我得到错误的值,即产品unaccum / 3的值为产品unaccum / 3的3个连续值的总和。

柱形图可视化

我应该在DAX中更改什么才能使其正确显示? 请帮忙

当涉及到源数据中日期的格式以及您选择在可视化中显示Date列的方式时,您似乎偶然发现了相当多的Power BI“陷阱”。 但我想我已经明白了。 这是我的结果:

在此输入图像描述

只是为了验证一些数字:

(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社区的一些提示,我创建了一个 在此输入图像描述 Date2是这样的:

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

然后我用a计算了三个月的平均值 在此输入图像描述

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

现在,如果您插入column chart并将Date2分配给AxisMoving_Average_3_months以及unAcc to Values ,您将得到:

在此输入图像描述

这不是我们想要的。 因此,转到可视化设置并将Date2Date Hierarchy更改为Date2如下所示:

在此输入图像描述

就是这样:

在此输入图像描述

以下是整个表格,因此您可以看到数字是正确的:

在此输入图像描述

在你的情况下,也许你唯一需要做的就是最后一部分。

请不要犹豫,告诉我它是如何为您服务的!

我在最后一条评论中询问有关计算值(作为列或度量)的问题,因为基于此我有不同的结果,如下面的示例所示:

在此输入图像描述

Product3Mth基于计算列,Product3Mth 2基于度量(您想要的结果!)。

希望这个例子可以帮到你。 如果没有请告诉我!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM