我需要一个dax度量值,该度量值首先以选定客户的百分比计算每月净差额,然后按月汇总年初至今的总和。
DAX中的标准YTD函数不适用于此计算。
我不明白为什么它不起作用,但是我想这是因为我希望对净变化的MONTHLY月度计算使用YTD,因为它在我的视觉效果中显示(而不是每日变化的累计YTD)。 / p>
这是我当前无法使用的YTD公式:
YTD of % Change =
TOTALYTD ( [% Change], 'DateTable'[Date].[Date] )
我在相同的视觉效果中使用相同的表数据进行其他YTD计算,它们计算出正确的答案,所以我认为问题出在我的日期表或连接上。
这是我的%变化指标的达克斯(此指标很好。它提供了我期望的月度结果,这是逐月的差异),以防万一...
% Change =
VAR __PREV_MONTH =
CALCULATE ( [% Of Base Group], DATEADD ( 'DateTable'[Date].[Date], -1, MONTH ) )
RETURN
[% Of Base Group] - __PREV_MONTH
我的月度数据是SNAPSHOT样式数据,每个月都有完整的数据集,因此我通常不计算跨月的总数或计数(因为每个月已经具有客户和总数的完整计数)-我只保留在一张桌子,这样我就可以计算出月份之间的差异。
我当前收到的结果(即错误的结果)以及预期的结果如下所示
基础 字段预期结果我得到的
年初至今的月份变化%年初至今 变化百分比
2018年1月-0.10%-0.10%-0.10%
2018年2月-0.44%-0.55%-0.55%-0.28%
2018年3月-0.09%-0.64%-0.21%
2018年4月0.06%-0.58%-0.58%-0.14%
2018年5月0.87%<0.29%0.06%
2018年6月-0.26%0.03%0.01%
2018年7月0.10%0.13%0.13%0.02%
2018年8月0.08%0.21%0.03%
2018年9月0.00%0.001%0.21%0.02%
2018年10月-0.08%0.13%0.01%
2018年11月-0.18%-0.06%-0.06%-0.01%
2018年12月-0.77%-0.83%-0.07%
2019年1月-0.26%-1.09%-0.26%
2019年2月-0.44%--1.53%-0.35%
答案 0 :(得分:1)
我找到了一个解决方案(尽管它不是很漂亮),可以为我提供所需的结果。
为此,我基本上从当前[基础组的百分比]值中减去了当年1月[基础组的百分比]的值,然后在1月发生的净变化中添加了该值。我的日期表中有一列显示YYYYMM作为值,因此我可以使用value(YYYYMM)-89过滤到上一年的12月(以计算第一个净变化)。
YTD Total of % Change in Select Group =
VAR FirstMonthofCurrentYear = VALUE(Min(DateTable[Date].[Year])&"01")
VAR LastMonthofPrevYear = FirstMonthofCurrentYear - 89
VAR JanPercentofBaseGroup =
CALCULATE(
[% Of Base Group],DateTable[YearMonthOrder]= FirstMonthofCurrentYear,ALLEXCEPT(DateTable,DateTable[Date])
)
VAR JanChangeinPercent =
JanPercentofBaseGroup - CALCULATE(
[% Of Base Group],DateTable[YearMonthOrder] = LastMonthofPrevYear,ALLEXCEPT(DateTable,DateTable[Date])
)
Return
If (
[% Of Base Group]=blank(),
BLANK(),
[% Of Base Group]- JanPercentofBaseGroup + JanChangeinPercent
)
我仍然不知道为什么常规YTD函数不起作用并且无法弄清楚常规YTD函数如何计算它的数字,但是现在有了这种解决方法,我的问题就解决了。
答案 1 :(得分:0)
假设您的日期表是一组连续的日期,那么类似以下的内容应该可以正常工作:
YTD of % Change =
CALCULATE ( [% Change], DATESYTD ( 'DateTable'[Date].[Date] ) )