小伙伴们,还记得之前的《销售需求丨借贷记账法》的文章么?当时的最后结果展示如下:

这个动图展示的就是最终的动态结果,但是很明显有点问题,就是当切片器没有选择任何对象的时候,数据模型会呈现错误的提示,这是什么原因造成的呢?
先来看看之前的代码:

借贷记账法 =
VAR HQ =CALCULATETABLE (VALUES ( '示例'[订单编号] ),'示例'[项目名称] = ALLSELECTED ( '维度表'[项目名称] ))
RETURNCALCULATE ( SUM ( '示例'[金额] ), HQ )

这是之前采用的代码。其实不只是这一期,还有很多期的实际例子都存在这种情况:
当需要构建维度作为筛选条件,来为数据模型提供上下文进行计算的时候,都会遇到这个问题,就是无筛选状态下,没有数据来提供上下文,这就导致没有结果。那么该如何处理呢?
IN函数
IN函数本身是一个“逻辑”函数。按照微软的解释,当提供的标量值,在相对应的表格中至少有一行的情况,结果都是TRUE。什么意思?
比如说:**5 IN {5,15,25}**这个结果返回就是正确可以显示的,因为5在后面的表中;**10 IN {5,15,25}**这个结果返回就是错误的,因为表中没有符合10的选项。
这里有两种方法,方法1修改代码如下:

优化借贷记账法1 =
VAR HQ =CALCULATETABLE (VALUES ( '示例'[订单编号] ),'示例'[项目名称] IN ALLSELECTED ( '维度表'[项目名称] ))
RETURNCALCULATE ( SUM ( '示例'[金额] ), HQ )

方法2代码如下:

优化借贷记账法2 =
VAR HQ =CALCULATETABLE ( VALUES ( '示例'[订单编号] ), '示例'[项目名称] IN VALUES ( '维度表'[项目名称] ) )
RETURNCALCULATE ( SUM ( '示例'[金额] ), HQ )

先来看看结果,白茶再解释代码:

上面两个图用的是之前的代码,下面三个图用的是修改之后的代码,小伙伴们看出来区别了么?这里面的关键就在于**“IN”“=”的区别。“=”的情况下,需要提供一个具体的标量值。也就是说在非筛选状态下,等号右边的默认条件是“空”**,这种情况下数据模型肯定会报错。
“IN”的情况下,右边提供的是一个范围表。非筛选状态下,没有任何选项右边默认的条件是“整个表”,IN左边的选项肯定都包含在维度表里面,因为之前我们用VALUES提取的维度,那么结果返回就必然是TRUE的。
这就是提供值,与提供一张表的区别。

基本上当满足条件时,都可以使用IN函数:
1、非筛选情况下,左边的值全部在IN右边的表中有对应项目。
2、特别是根据需求自己构建维度的情况,基本都适用。

本期案例数据在下面的知识星球中,点击可加入白茶的星球。
小伙伴们,GET了么?
(白茶:Biu~❤)

这里是白茶,一个PowerBI的初学者。

下面这个知识星球是针对有实际需求的小伙伴,有需要的请加入下面的知识星球。
(这个星球里面有白茶之前所有的案例文件。)

ID:Storysming

销售需求丨借贷记账法(补充)相关推荐

  1. 销售需求丨借贷记账法

    本期呢,白茶决定分享一下一位星球小伙伴的提问. (示例文件会放到知识星球中,小伙伴们可以搜索"PowerBI丨需求圈",文章结尾处会有二维码.) 这个是本期的示例文件,将其导入到P ...

  2. 30分钟让你学会借贷记账法

    更新记录 2021-08-14 第一版 2021-08-16 补充"坏账准备" 初学者第一次学借贷记账法很容易学懵逼,好在b站上有一个非常良心的up主 ---- 阿鸠阿鸠阿鸠,制作 ...

  3. 外行浅谈“借贷记账法”

    资产负债表 前一秒钟,有一个叫做"未来科技"的企业刚刚成立.搞企业,就必须有钱,对于未来科技来说.成立企业的钱(资金),来源主要有:向银行借贷的钱:企业老总自己出资部分.从财务方面 ...

  4. 借贷记账法下的账户对应关系_事业单位改用的借贷记账法

    1966年以来,我国农业事业单位一.直采用资金收付记账法.在新形势下.这种记账方法已经不应社会主义市场经济发展的需要.为了统一记账方法和与国际会计慨例接轨,实现会计电算化,新会计制度统规定事业单位也爱 ...

  5. 借贷记账法下的账户对应关系_笔记整理,会计复式记账法内容及实例

    欢迎点击关注转发 分享85后全职奶爸生活中的一些感悟干货 上一篇我们学习了会计科目及账户的结构,根据现实实例我们可以很容易的联想到会计记账应该采用的表格样式.这一篇我们将着重介绍一下账户表格中所使用的 ...

  6. 借贷记账法下的账户对应关系_会计实操借贷记账法记账规则——会计干货来了快记啊!...

    这是一篇干货,最近出的文章都是干货,希望对大家的会计实操夯实基础!今天给大家说一下借贷记账法中的记账规则! 记账规则,是指运用记账方法正确记录会计事项时必须遵守的规律.记账规则是记账的依据,也是对账的 ...

  7. 工作手册 会计核算制度 目录 1. 会计核算管理制度 1 2. 会计档案管理办法 4 1.会计核算管理制度 8. 1.采取借贷记账法记账,采用权责发生制,即凡是收益已经实现,用已经发生,不论款

    工作手册 会计核算制度 目录 1. 会计核算管理制度 1 2. 会计档案管理办法 4 会计核算管理制度 8. 1.采取借贷记账法记账,采用权责发生制,即凡是收益已经实现,用已经发生,不论款项是否收付, ...

  8. 会计账户(概念,账户与科目的关系,账号的分类,功能,结构,总分类账户和明细分类账户,借贷记账法)

    (一)账户的概念: 会计账户是根据会计科目设置的,具有一定格式和结构, 用来分类反映会计要素增减变动及其结果的载体. (二)账户与科目的关系 会计科目 会计账户 区别 仅仅是账户的名 称,无结构,无 ...

  9. 会计假设、会计要素、借贷记账法、会计科目和会计账户

    一.会计假设,是指组织正常会计核算工作应当具备的前提条件. 1.会计主体假设 会计主体假设是指假设会计所核算的是一个特定的企业或单位的经济活动,而不是漫无边际的.一般地,经济上独立或相对独立的企业.公 ...

最新文章

  1. python自动化之文件处理_Python自动化办公之Word批量转成自定义格式的Excel
  2. php的json格式
  3. Selenium3自动化测试——8.定位一组元素
  4. 使用Image类提示内存不足问题
  5. python isinstance和issubclass区别
  6. python调用浏览器打开网页_python调用浏览器,实现刷网页浏览小程序!
  7. mysql5.7单表最大容量_mysql 5.7单表300万数据,性能严重下降,如何破?
  8. 李彦宏、王海峰等成为工程院院士候选人选
  9. Python之进程+线程+协程(生产者消费者模型)
  10. java解析字符串方法_java字符串的截取方法substring()代码解析
  11. Baidu 人脸识别FireFly 与PC连接调试
  12. android 布局图片缩放,Android中进行图片缩放显示
  13. tr,dr发音/tu,du发音
  14. IntelliJ IDEA 2017 提示“Unmapped Spring configuration files found.Please configure Spring facet.”
  15. 如何批量压缩pdf文件大小?
  16. 8月第3周基金排行榜 | TokenInsight
  17. Local declaration of '' hides instance variable
  18. 齐次矩阵转化为欧拉角坐标系_做控制要知道的刚体旋转知识(三)欧拉角
  19. 图形世界分裂的两派 理清Direct3D和OpenGL的脉络
  20. 拖动图形验证码(极验验证)

热门文章

  1. 十大常用算法之佛洛依德算法
  2. 工欲善其事必先利其器,网红营销找对工具才是营销王道
  3. 数据结构实验报告3————栈和队列及其应用
  4. 《找你妹2》开发者云中游再声明:热酷涉嫌严重违约发布侵权竞品
  5. 浙大版《Python 程序设计》题目集 4~7章
  6. X窗口系统的协议和架构
  7. contentEditable属性
  8. 【迁移学习】大数据时代下的迁移学习--- 机器学习的下一个前沿
  9. java随机数 范围_java随机数产生的范围该怎么定义?
  10. 苹果发布新款M1芯片,安卓阵营被碾压,只能无奈哀叹