Power Pivot智能日期运用——累计至今

2020-03-24 15:27:58 浏览数 (1)

3. 累计至今

A) 设定初始时间
代码语言:javascript复制
初始时间:=Firstdate(All('日历'[Date]))

解释:因为All函数是排除了所有筛选,得出的是时间列表中最早的时间。

B) 设定结束时间
代码语言:javascript复制
结束时间:=Lastdate('日历'[Date])
C) 计算时间段内的金额
代码语言:javascript复制
时间段内金额:=Calculate([销售金额],
                        Filter('表','表'[日期]>=[初始时间]),
                        Filter('表','表'[日期]<=[结束日期])
                      )

这个时候我们求出的结果实际上和销售金额度量值是一样的计算结果。但是我们需要以这个为基础来做演化。如果我们需要得到累计效果,不同的方式需要使用不同的方法。

  • 把结束时间用替换
代码语言:javascript复制
'日历'[date]<=Earlier('日历'[Date])

因为这里涉及到行上下文,期末的实际时间根据筛选情况来进行结束。

  • 直接在日历表计算列中使用公式

添加列"累计":

代码语言:javascript复制
=Calculate('表'[销售金额],
          Filter('日历','日历'[date]>=[初始时间]&&
                 '日历'[date]<=Earlier('日历'[Date])
                )
          )
  • 度量值公式使用Max
代码语言:javascript复制
累计求值:=Max('日历'[累计])

如果我们使用var变量的方式,则简单的多,只需要直接写度量。

代码语言:javascript复制
累计至今:=
var 初始时间=Firstdate(All('日历'[date]))
var 结束时间=Lastdate('日历'[date])
var 区间时间=Filter(All('日历'),'日历'[date]>=初始时间&&
                               '日历'[date]<=结束时间)
return
Calculate( [销售金额],区间时间)

请点个赞。

0 人点赞