Power Pivot中多账户如何显示余额?(修正)

2020-03-24 15:55:29 浏览数 (1)

之前图片信息有误,特此更改。

如果存在多个账户的话,我们该如何显示余额呢?

银行信息表

余额表

我们有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('余额表'[余额]))
                       )
         )

解释:返回空值和最后有值之间的空白,使用最后的金额来进行补充,就能返回我们所需要的结果了。

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

0 人点赞