使用Power Pivot的不同方式计算期末余额

数据源(表1)

同时还有一份日历表,建立了关系 我们要通过计算每个月的期末余额 之前我们知道计算期末余额用到的函数为Lastdate函数,但是LastDate是针对数据源表的日期使用,如果对日历表的日期列使用,会对于小计这里产生不同的结果。

代码语言:javascript
复制
LastDate_日历日期:=Calculate(Sum('表1'[余额]),LastDate('日历'[Date]))LastDate_原表日期:=Calculate(Sum('表1'[余额]),LastDate('表1'[时间]))

我们看下这两个对度量值差异在哪里?

使用LastDate函数用日历表日历,除非有每月最后一天的数据,则会在汇总栏进行显示,否则汇总栏显示空白。

使用LastDate函数用原表日历,则会在汇总栏显示最后日期的金额。

但是大部分情况下,我们的计算都是依据日历表日期进行计算或者筛选,如果计算时用了原表日历则会有时导致筛选无效的情况。

那我们看下如果用日历表达到同样的效果如何进行书写?我们使用LastnonBlank来进行书写。

代码语言:javascript
复制
LastnonBlank_余额:=Calculate(Sum('表1'[余额]),                             LastnonBlank('日历'[Date],                                         CountRows(RelatedTable('表1')                                            )                                   )                            )

解释:

  • CountRows(RelatedTable('表1')是计算关联原表。
  • LastnonBlank则计算关联后原表的最后一个日期。
  • Calculate(Sum('表1'[余额])则计算最后一个日期的金额,当然这里也可以使用max进行聚合。

求期初余额实际也一样,我们可以试下。

如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。