销售需求丨借贷记账法(补充)

2024-02-04 02:58

本文主要是介绍销售需求丨借贷记账法(补充),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

借贷记账法 = 
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

这篇关于销售需求丨借贷记账法(补充)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/676189

相关文章

【多系统萎缩患者必看】✨维生素补充全攻略,守护你的健康每一天!

亲爱的朋友们,今天我们要聊一个既重要又容易被忽视的话题——‌多系统萎缩患者如何科学补充维生素‌!🌟 在这个快节奏的生活中,健康成为了我们最宝贵的财富,而对于多系统萎缩(MSA)的患者来说,合理的营养补充更是维护身体机能、提升生活质量的关键一步。👇 🌈 为什么多系统萎缩患者需要特别关注维生素? 多系统萎缩是一种罕见且复杂的神经系统疾病,它影响身体的多个系统,包括自主神经、锥体外系、小脑及锥

Vue2电商项目(二) Home模块的开发;(还需要补充js节流和防抖的回顾链接)

文章目录 一、Home模块拆分1. 三级联动组件TypeNav2. 其余组件 二、发送请求的准备工作1. axios的二次封装2. 统一管理接口API----跨域3. nprogress进度条 三、 vuex模块开发四、TypeNav三级联动组件开发1. 动态展示三级联动数据2. 三级联动 动态背景(1)、方式一:CSS样式(2)、方式二:JS 3. 控制二三级数据隐藏与显示--绑定styl

十四、我们应当怎样做需求分析:子用例与扩展用例

用例模型作为UML中4+1视图中非常重要的一员,非常集中地体现了面向对象的分析与设计思想。用例模型将现实世界中连续的一个一个业务流程,按照场景划分到了一个一个的用例中。由于场景的出现,使得用例中的业务流程存在着高度的内聚性,从而成为了日后各种对象的雏形。同时,在用例分析中,又将那些存在于各个用例中的,相同或相近的业务操作提取出来,形成一个一个的子用例或扩展用例,又体现了面向对象设计中的复用性。现在

十三、我们应当怎样做需求分析:查询报表分析

在我以往的用例分析中,使用这样格式的用例模式,对于大多数业务操作流程来说是得心应手的,但对于有些功能来说总感觉不对劲。感觉不对劲的,就是那些查询、汇总与报表功能。对于这部分功能,需要我们描述的不是什么操作流程,而更重要的是那些数据项、数据来源、报表格式、数据链接,以及使用者、使用频率的说明。而这些,在以往的用例说明格式中统统都没有,怎么办呢?俗话说“东西是死的人是活的”,把我们的用例格式改改吧。

九、我们应当怎样做需求分析:功能角色分析与用例图

在我们进行一系列需求调研工作的同时,我们的需求分析工作也开始启动了。需求调研与需求分析工作应当是相辅相伴共同进行的。每次参加完需求调研回到公司,我们就应当对需求调研的成果进行一次需求分析。当下一次开始进行需求调研时,我们应当首先将上次需求分析的结果与客户进行确认,同时对需求分析中提出的疑问交给客户予以解答。这就是一个需求捕获->需求整理->需求验证->再需求捕获的过程。  但是,当我们经

八、我们应当怎样做需求调研:需求捕获(下)

前面我们讨论了,需求分析工作是一个迭代的过程:需求捕获->需求整理->需求验证->再需求捕获······需求捕获是这个迭代过程的开始,也是整个需求分析工作中最重要的部分。没有捕获哪来后面的整理与验证工作?但是,非常遗憾,按照我以往的经验,需求捕获是我们最薄弱的环节。前面我提到的许许多多项目开发的问题都可以归结为需求分析的问题,而许许多多需求分析的问题又都可以归结为需求捕获不完整的问题。需求捕获是整

七、我们应当怎样做需求调研:需求捕获(上)

前面我们讨论了,需求分析工作是一个迭代的过程:需求捕获->需求整理->需求验证->再需求捕获······需求捕获是这个迭代过程的开始,也是整个需求分析工作中最重要的部分。没有捕获哪来后面的整理与验证工作?但是,非常遗憾,按照我以往的经验,需求捕获是我们最薄弱的环节。前面我提到的许许多多项目开发的问题都可以归结为需求分析的问题,而许许多多需求分析的问题又都可以归结为需求捕获不完整的问题。需求捕获是整

六、我们应当怎样做需求调研:迭代

前面我一直在反复强调这样一个观点,需求分析不是一蹴而就的,是一个反复迭代的过程。它将从第一次需求分析开始,一直持续到整个项目生命周期。为什么这样说呢?让我们一起来分析分析。  在第一次的需求分析阶段,我们在一段时期内需要与客户进行反复地讨论,这个过程往往是这样一个反复循环的过程:需求捕获->需求整理->需求验证->再需求捕获••••••  需求捕获,就是我们与客户在一起开研讨会

五、我们应当怎样做需求调研:需求研讨

前面我们探讨了业务研讨会应当怎样组织,下面我们再具体讨论一下我们应当怎样与客户讨论业务需求。如果说组织业务研讨会是项目经理的功底,那么讨论业务需求就是需求分析人员的功底。  以往我们常常认为,需求分析是一件最简单的事情。客户说他们需要做一个什么软件,有些什么功能,我们照着做就可以了,所谓的需求分析员就是需求的记录员。我要说,这是一个极大的错误,许多失败的软件项目,或者说软件项目中的需求问

知名AIGC人工智能专家培训讲师唐兴通谈AI大模型数字化转型数字新媒体营销与数字化销售

在过去的二十年里,中国企业在数字营销领域经历了一场惊心动魄的变革。从最初的懵懂无知到如今的游刃有余,这一路走来,既有模仿学习的艰辛,也有创新突破的喜悦。然而,站在人工智能时代的门槛上,我们不禁要问:下一个十年,中国企业将如何在数字营销的浪潮中乘风破浪? 一、从跟风到精通:中国数字营销的进化史 回顾过去,中国企业在数字营销领域的发展可谓是一部"跟风学习"的编年史。从最初的搜索引擎营销(SEM),