Power BI:月平均值

时间:2017-11-15 13:31:32

标签: powerbi dax

我知道在此之前已经提出并回答了类似的问题,但对于我的生活,无法让任何那些使用我对Power BI的有限知识的人。

我有一张表格,其中包含8周的数据,对于大多数部分而言,跨越3个月。我目前计算的是每日平均值,即“总数”除以“总数”。然而,我需要做的是显示基于日历月的平均值。因此,9月将与10月和11月的平均值存在差异。

以下是数据样本:

Date,Total In,Total Out,Daily Average,Total,Month

27 September 2017,10773,264,97.61,11037,September
28 September 2017,11198,382,96.70,11580,September
29 September 2017,17753,1122,94.06,18875,September
30 September 2017,9568,649,93.65,10217,September
28 October 2017,11434,938,92.42,12372,October
29 October 2017,1541,60,96.25,1601,October
30 October 2017,918,4,99.57,922,October
31 October 2017,8565,24,99.72,8589,October
01 November 2017,11452,635,94.75,12087,November
02 November 2017,7785,531,93.61,8316,November

因此,对于11月,我希望得到的数字为(11452 + 7785)/(12087 + 8316)* 100 = 94.29%。显然,这个数字将在11月的所有日期作为额外的列出现。十月份将是(11434 + 1541 + 918 + 8565)/(12372 + 1601 + 922 + 8589)* 100 = 95.63%。然后我会使用额外的列并将其绘制在线条/条形图上。

所以上面的数据会变成:

Date,Total In,Total Out,Daily Average,Total,Month,Monthly Average

27 September 2017,10773,264,97.61,11037,September,96.00
28 September 2017,11198,382,96.70,11580,September,96.00
29 September 2017,17753,1122,94.06,18875,September,96.00
30 September 2017,9568,649,93.65,10217,September,96.00
28 October 2017,11434,938,92.42,12372,October,95.63
29 October 2017,1541,60,96.25,1601,October,95.63
30 October 2017,918,4,99.57,922,October,95.63
31 October 2017,8565,24,99.72,8589,October,95.63
01 November 2017,11452,635,94.75,12087,November,94.29
02 November 2017,7785,531,93.61,8316,November,94.29

我无法理解SUMMARIZE函数等,以便在没有任何帮助的情况下使用它。所以任何帮助和解释都将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:1)

使用EARLIER函数创建DAX应该可以解决问题:

Month Average = 
VAR sum_total_in = 
CALCULATE(
    SUM('table'[Total In]),
    FILTER(
        'table',
        'table'[Month] = EARLIER('table'[Month])
    )
)

VAR sum_total = 
CALCULATE(
    SUM('table'[Total]),
    FILTER(
        'table',
        'table'[Month] = EARLIER('table'[Month])
    )
)

RETURN sum_total_in / sum_total

所以基本上它会在同一个月内对Total InTotal进行求和并返回除法。

结果:

results

P.S。如果您有同月的多年数据,则您还需要将年份添加到过滤器中。

答案 1 :(得分:1)

我看到你从DAX的角度提问你,但这里有一个基于Power Query的答案很容易。从Power Query(Power BI的查询编辑器)中的表开始:

enter image description here

选择Month列,然后选择Transform - >分组依据,并设置如下对话框...

enter image description here,然后点击“确定”。

你会看到:

enter image description here

然后点击顶部的enter image description here按钮 AllData列用于展开嵌套表,并设置如下对话框...

enter image description here,然后点击“确定”。

你会看到:

enter image description here

现在点击添加列 - >自定义列,并设置像这样的对话框...

enter image description here,然后点击“确定”。

你会看到:

enter image description here

现在选择前三列(月,总和,总和),然后单击主页 - >删除列。

你会看到:

enter image description here

您可以双击Month.1列标题并根据需要重命名。