数据源(表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进行聚合。
求期初余额实际也一样,我们可以试下。
如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。