我知道在此之前也有过类似的问题被问和回答过,但是对于我的生活来说,我无法得到任何一个与我有限的能力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
我在没有任何帮助的情况下,在总结、功能等方面遇到了困难。因此,任何帮助和解释都将不胜感激。
谢谢。
发布于 2017-11-15 07:13:06
使用前面的函数创建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 In
和Total
相加,并返回除法。
结果:
如果你有相同月份跨年的数据的话,你也需要将年份添加到过滤器中。
发布于 2017-11-15 07:34:39
我看到您是从DAX的角度来问您的问题,但是这里有一个基于Power查询的答案,非常简单。从Power Query中的表开始(Power的查询编辑器):
选择月份列,然后按以下方式转换->组,然后设置对话框.
然后单击OK。
你会看到这个:
然后单击
按钮在AllData列的顶部展开嵌套表,并设置如下对话框.
然后单击OK。
你会看到这个:
现在单击Add列->自定义列,并设置如下对话框.
然后单击OK。
你会看到这个:
现在选择前三列(月份、总和、和总数),然后单击Home -> Remove列。
你会看到这个:
您可以双击Month.1列标题,如果愿意,可以重命名它。
https://stackoverflow.com/questions/47308727
复制相似问题