相关文章推荐
私奔的青椒  ·  Visual Studio ...·  8 月前    · 
大方的炒饭  ·  java - SFTP Upload ...·  1 年前    · 

Power BI之DAX神功番外篇:第13回 计算两个指标的时间差

专栏 / Power BI之DAX神功番外篇:第13回 计算两个指标的时间差

Power BI之DAX神功番外篇:第13回 计算两个指标的时间差

2022-04-26 10:42 --阅读 · --喜欢 · 孙兴华zz
粉丝: 18.7万 文章: 251

一、网友提问

表名:Sheet1

二、解答问题

我给您解决一个筛选2021和2022年的思路,您自行完成 年月 筛选,因为理解知识需要自己思考。

打个比方,我学DAX,是从结果倒推原理,我的方法不一定最好,但是我自己动脑子了,总比从国外网站上看大神文章后,以记忆的方式,谈什么内层、外层、隐形、显形、筛选覆盖...大神们讲的没错,但是为什么是这样的,原理中的原理是什么?

我讲《PowerBI火力全开》不讲原理就是让大家利用结果倒推原理,真正学以致用,但是我看到很多人说我不讲原理,我为了成全大家讲了《DAX神功》,所谓原理=内层、外层、隐形、显形、筛选覆盖...这些名词的由来。如果只记忆名词我们就失去了自己去脑思考的过程,还谈何学会呢?

【1】先解决住院天数,开始思考

根据网友提问,当网友筛选2021年时,病人1号和2号是出院日期-入院日期,3号是2021/12/31-入院日期。当筛选2022年时,因为病人1号和2号在2021年就出院了,所以只有3号,他的计算方法是出院日期-2022/1/1


我们将思路画出来

当然,这里有个业务问题,以筛选2022年为例,3号病人1月29日出院,那么1月29日算不算一天,因为我没住过院不懂这个,所以说业务问题我不解决,如果需要计算当天,您只需要在我后面讲的公式中+1即可

【2】眼见为实,度量值为虚

现在我们需要一个度量值但是 我不建议 直接写度量值,度量值是虚拟存在,你能看到每一步的结果吗?

我的方法是这样的,用新建表看每一步结果,然后放到度量值中

<1> 对入院日期和出院日期进行筛选

返回结果:

返回结果:

<2> 给筛选结果添加列计算天数

公式tb2解读:

添加列,用出院日期-入院日期,并将数据类型转成整型。

出院日期的计算方法:如果出院日期大于2021年12月31日就返回2021年12月31日,否则返回出院日期。

入院日期的计算方法:如果入院日期大于等于2021年1月1日就返回入院日期,否则返回2021年1月1日。

返回结果:

同理:

返回结果:

<3>把年份写活,利用表构造函数我们新建一张表

返回表格:如果你想对字段重命名,详见《DAX神功》第1卷第3回

新建切片器,将Value字段放到切片器中

<4> 利用selectedvalue表示筛选结果,用sumx计算天数

返回结果:

以上我们计算的是 实际住院天数 ,对于出院患者实际住院天数和年月筛选,只要你理解了上面的思路,一定可以做出来,加油!

友情提示: 别照抄代码,也不建议照搬思路,DAX只是一个工具,思路源于你对业务知识的理解。因为实际分析中,需求是不断变化的,代码也会随之不断变化,所以你做分析,必须要自己学会。

《孙兴华讲PowerBI火力全开》PowerBI必学课程

https://www.bilibili.com/video/BV1qa4y1H7wp

《DAX神功》文字版合集:

https://www.bilibili.com/read/readlist/rl442274

《DAX神功》视频版合集:

https://www.bilibili.com/video/BV1YE411E7p3

PowerBI(DAX函数)、PowerQuery(M函数)、Python办公自动化、Python爬虫、Python数据分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等

https://www.bilibili.com/read/cv10222110

投诉或建议
【物理基础Ep45】新概念物理教程—力学by赵凯华&罗蔚茵内容梳理(二十四):习题(6)
(合计90字,用时15min——)习题6:一物体作匀加速直线运动,走过一段距离Δs所用的时间为Δt1,紧接着走过下一段距离Δs所用的时间为Δt2。试证明,物体的加速度为解:设初速度为v0,加速度为a,可得方程组——
【计算机基础Ep46】唐朔飞计算机组成原理教材梳理(三十五):P144循环冗余校验码概述
(合计215字,用时15min-)第四章 存储器4.4辅助存储器4.4.6循环冗余校验码简介:磁表面存储器由于磁介质编码的缺陷、尘埃等原因,致使出现多个错误码。循环冗余校验(Cyclic Redundancy Check,CRC)码可以发现并纠正信息存储或传达过程中连续出现的多位错误代码。原理:CRC码是基于模2运算而建立编码规律的校验码。特点:模2运算的特点是不考虑进位和借位的运算。规律:模2加和模2减的结果是相等的;模2乘是按模2和求部分积之和;模2除是按模2减求部分余数。