专栏首页数据技巧使用Power Pivot的不同方式计算期末余额

使用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进行聚合。

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

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

本文分享自微信公众号 - 数据技巧(Data-Skill),作者:逍遥跨境

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何消除双休日影响来计算销售额?

    我们需要求出当月每星期的平均销售额,然后再根据当日的销售额去对比看下完成比例情况。

    逍遥之
  • 2个时间累计函数的内部计算逻辑及差异化

    这么个复杂的逻辑如果我们使用DatesYTD智能时间函数的话,则可以简化成这样的写法,直接通过DatesYTD来进行筛选后的求值。

    逍遥之
  • 如何在PP中通过添加列计算移动平均?

    逍遥之
  • 从零开始学C++之STL(十):迭代器适配器{(插入迭代器back_insert_iterator)、IO流迭代器(istream_iterator、ostream_iterator)}

    一、迭代器适配器 反向迭代器 插入迭代器 IO流迭代器 其中反向迭代器可以参考以前的文章。 二、插入迭代器 插入迭代器实际上是一个输出迭代器(*it=...

    s1mba
  • PowerBI 通用万能日历模板,想干嘛就干嘛

    我们知道在 PowerBI 中,默认的日历是非常丑陋以及有很多限制的,而自定义可视化图表中的控件也并不完美。

    BI佐罗
  • SlimYOLOv3:更窄、更快、更好的无人机目标检测算法

    无人机因为硬件计算能力较弱,要在其上实现实时的目标检测,需要算法参数量小、占用内存少、推断时间短。常见的算法往往难以直接应用。

    CV君
  • SwiftUI之侧边栏菜单实践

    我们采用Stack对应的VStack HStack ZStack来组合完成一个侧边菜单

    大话swift
  • 自定义控件基础 之 3.4 ViewGroup的测量 & 3.5 ViewGroup的绘制

    之前分析中说了,ViewGroup会去管理其子View,其中一个管理项目就是负责子View的显示大小。当ViewGroup的大小为wrap_content时,V...

    凌川江雪
  • Spring AOP的一个简单实现

    首先配置XML:service采用和之前一样的代码,只是没有通过实现接口来实现,而是直接一个实现类。transactionManager依旧为之前的事务管理器。

    Rekent
  • 到底什么是开源协议和ARM授权模式?

    License是软件的授权许可,里面详尽表述了你获得代码后拥有的权利,可以对别人的作品进行何种操作,何种操作又是被禁止的。软件协议可分为开源和商业两类,对于商业...

    刘盼

扫码关注云+社区

领取腾讯云代金券