【发布时间】:2020-09-30 02:50:40
【问题描述】:
我有 [Billable Minutes] 值的 客户服务 表。
我需要创建 [3 个月的移动平均线] 度量,计算将在其中 仅发生 - 如果在 [计费时间] 中存在所有 3 个月的值! (见下文)
如果 [Billable Minutes] 值在我的 Client Services 表中至少一个月内为空,那么我想要 [Moving Avg]将显示 0 或空白!
我的目标:
Client Services table: Result:
Period [Billable Minutes] Period [Moving Avg]
2018-11 200 2019-01 200
2018-12 300
2019-01 100
为了实现我的目标,我将以下 DAX 表达式用于[Moving Avg 3 months]:
Moving Avg 3 month =
VAR PeriodToUse = DATESINPERIOD('Calendar FY'[Date], LASTDATE('Calendar FY'[Date]), -3, MONTH)
VAR Result = CALCULATE(DIVIDE([Billable Minutes], COUNTROWS ('Calendar FY')), PeriodToUse)
VAR ZeroValue=IF(Minx('Client Services',[Billable Minutes])=0,0,Result)
Return Result
但是,不幸的是,我的最终结果是:
Client Services table: Result:
Period [Billable Minutes] Period [Moving Avg]
2018-11 200 2018-11 67
2018-12 300 2018-12 167
2019-01 100 2019-01 200
因此,它采用 客户服务 表中的现有值并将它们除以期间数。 例如对于 2018-11、2018-10、2018-09 - 它需要 (200+0+0)/3=66.6(67 舍入) 但我需要 Moving Avg 对于 2018-11 为空,因为客户服务表中没有 2018-10、2018-09 的值(相同 - 对于 2018-12,不应该计算)
请帮忙!
更新:
这是解决方案(感谢下面的答案) 为了检查所选期间是否为零,应创建额外的措施:
Billable Minutes
Moving Avg Prev Month = Calculate('Client Services'[Billable Minutes],
PREVIOUSMONTH('Calendar FY'[Date]))
Billable Minutes
Moving Avg 2nd Prev Month = Calculate
('Client Services'[Billable Minutes Prev Month],
PREVIOUSMONTH('Calendar FY'[Date]))
然后,当您检查是否有零值时-您需要检查它-不是 仅适用于 [Billable Minutes],但适用于 3 个月内的 [Billable Minutes] = 之内 [计费分钟数]+[上月计费分钟数]+ [上月第 2 个月的计费时间]
查看下面的更新(完美运行):
enter
Billable Minutes 3 Months Avg =
VAR PeriodToUse = DATESINPERIOD('Calendar FY'[Date],
LASTDATE('Calendar FY'[Date]), -3, MONTH)
VAR Result = CALCULATE(DIVIDE([Billable Minutes],
COUNTROWS ('Calendar FY')), PeriodToUse)
VAR NMonthsPeriodBlank =
if([Billable Minutes] = BLANK(),0,1) +
if([Billable Minutes Prev Month] = BLANK(),0,1) +
if([Billable Minutes 2nd Prev Month] = BLANK(),0,1)
RETURN IF(NMonthsPeriodBlank < 3, BLANK(), Result)
【问题讨论】:
标签: powerbi dax moving-average isnullorempty