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

数据源(表1)

原表

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

LastDate_日历日期:=Calculate(Sum('表1'[余额]),LastDate('日历'[Date]))
LastDate_原表日期:=Calculate(Sum('表1'[余额]),LastDate('表1'[时间]))

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

对比表
对比表

使用LastDate函数用日历表日历,除非有每月最后一天的数据,则会在汇总栏进行显示,否则汇总栏显示空白。
使用LastDate函数用原表日历,则会在汇总栏显示最后日期的金额。
但是大部分情况下,我们的计算都是依据日历表日期进行计算或者筛选,如果计算时用了原表日历则会有时导致筛选无效的情况。那我们看下如果用日历表达到同样的效果如何进行书写?
我们使用LastnonBlank来进行书写。

LastnonBlank_余额:=Calculate(Sum('表1'[余额]),
                             LastnonBlank('日历'[Date],
                                         CountRows(RelatedTable('表1')
                                         )
                                 )
                             )

解释:

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

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

喜欢的请点歌赞,转发让更多的人了解并学习。

你可能感兴趣的:(使用Power Pivot的不同方式计算期末余额)