如果存在多个账户的话,我们该如何显示余额呢?
银行信息表
余额表
我们有2个需求
- 任意点击日期切片器,可以显示3个账户当时的余额(我们可以点击1月13号显示当日的余额,而1月13号是没有发生状态的)
- 只显示具有发生日期时各个账户的余额
按照上一篇的理论,用同样的LastDate和LastnonBlank做计算会产生什么样的结果呢?
1. 使用LastDate日历日期效果
代码语言:javascript复制LastDate_日历日期1:=Calculate(Sum('余额表'[余额]), LastDate('日历'[Date]) )
错误原因:
- 账户总计应该包含3个账户,但是如果没有发生额的话,日期总计不正确。
- 无法计算时间小计,也就是每月底的余额。
2. 使用LastDate原表日历
代码语言:javascript复制LastDate_原表日期1:=Calculate(Sum('余额表'[余额]), LastDate('表1'[时间]) )
错误原因:
- 账户总计应该包含3个账户,但是如果没有发生额的话,日期总计不正确。
- 时间汇总这里我们要的是余额,而不是合计。
3. 使用LastnonBlank日历日期
代码语言:javascript复制LastnonBlank_日历日期余额:=Calculate(Sum('余额表'[余额]), LastnonBlank('日历'[Date], CountRows(RelatedTable('余额表')) ) )
错误原因:
- 账户总计应该包含3个账户,日期总计不正确。
- 但是如果没有发生额的话,我们也需要通过切片查看余额。
从上面几个返回结果看,最后一个用LastnonBlank编写的比较靠近我们的目标,我们只需要把发生日期没有产生变动的账号也要有一个余额,这个余额应该是之前有值的余额。
4. 使用LastDate和LastnonBlank结合的写法。
代码语言:javascript复制Calculate(Sum('余额表'[余额]), LastnonBlank(DatesBetween('日历'[Date], Blank(), LastDate('日历'[Date]) ), Calculate(Count('余额表'[余额])) ) )
解释:返回空值和最后有值之间的空白,使用最后的金额来进行补充,就能返回我们所需要的结果了。
如果觉得有帮助,那麻烦您进行转发,让更多的人能够提高自身的工作效率。