欢迎光临散文网 会员登陆 & 注册

PowerBI之DAX神功番外篇66 关于《DAX神功》第2卷第16回的答疑

2023-09-26 10:08 作者:孙兴华zz  | 我要投稿

网友提问:

回答网友问题:

第一部分:我们先理解Calculate第二参数可以是一张表

我记得讲《火力全开》时,我这样说的

我说Filter是一个表函数,Filter(表,筛选条件)  它返回一张表,大家说明白。

我又说  calculate([度量值], Filter(表,筛选条件) ) ,大家说也明白,简称"高级"筛选

然后当我用到下面度量值时,大家就问我,为什么Calculate第二参数可以是一张表,不应该是筛选条件吗?

calculate([度量值], )

.......................................................这是我当时特无语的地方。

第二部分:化繁为简,先分析筛选条件

如果您是做财务的,我跟您讲销售分析您不一定懂。如果您是做销售的,我跟您讲财务分析,您也不一定懂。在计算机软件上,处理问题,先脱离业务,再化繁为简,先理解一部分,再理解整体

calculate([度量值], )        我们就先研究这个表!

第三部分:大部分时间智能日期函数返回的是一张表

例如原始数据如下

原始数据

我们使用时间智能日期函数

最大日期,是2021年3月1日,向前一年是2020年,一组数据就是2020最大日期至原数据一开始的数据。

如果换成月份,最大日期是2021/3/1  向前一个月是 2021年2月, 取2021年2月至原数表一开始的数据。下面红框内是正确答案

假设我们不用时间智能日期函数,使用日期平移,配合数据沿袭

返回结果

我们用正确结果对比用平移的方法返回的结果,少的日期用蓝色框表示 

左为正确,右为平移后的结果

它为什么会少?

第2参数中的2018/4/1、2019/4/1、2020/4/1   在第一参数里没有

第1参可以理解成,是一个人名单,这些都是有 "金庸武侠" 的人

现在聚贤庄聚集了一批江湖人士,假设第2参代表每个江湖人士

我们需要从这批江湖人士中筛选出金庸武侠的人。

以上是我《DAX神功》第2卷第16回   

如果上面不明白,需要先把上面弄明白再看下面

现在我们知道这种情况使用时间智能函数更适合,再回答您的问题


关于您的问题

再把原始数据摆出来

原始数据

度量值


放到矩阵中,与我们之前 通过

新建表=DATEADD('Sheet1'[日期],-1,MONTH)  

得到的日期对比

你可能会问,行标题上没有

2018/4/1  对应的 2018/5/1

2019/4/1  对应的 2019/5/1

2020/4/1 对应的 2020/5/1

那是因为我们现在是日期级别的,且日期不连续。你没对应的日期,但不能说它的值在环比中不存在。所以总计是105

如果按平移的方法做,你可以把不存在的筛出去,当然这得符合你的业务逻辑,你要确定自己需要这个结果,别出现你做汇报时,门店提出数据上的质疑,因为对门店的考核是最后的值,而不是每天的对比。

假设我是4s店卖车的,可能一个月就一天我卖了100辆,其它都没卖,结果您算完环比,因为没找到那一天的环比日期,说我一辆没卖,那我肯定会暴怒。这牵扯到每个人的工资呀。


度量值

当然也不是无解,我在标题上写的是:有时不易代替

解决方法,热心网友已经在评论区回复了,新建日期表

发正能量,分享知识的网友昵称我就不打码了。

但是,表多了以后,要注意一个问题,就是我在讲表关系时提到的,虽然你都是一对多关系,但是,可能在运算中,因为跨表问题,造成中间出现了多对多

所以新人如果表多了,注意这个问题。

PowerBI学习顺序:

【1】Access基础篇,学习s01开头的集数,理解表格数据规范和表关系

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

【2】PowerBI火力全开,学习函数语法,与应用场景

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

【3】DAX神功,学习DAX函数原理

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

【4】PowerBI可视化图表

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

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

PowerBI之DAX神功番外篇66 关于《DAX神功》第2卷第16回的答疑的评论 (共 条)

分享到微博请遵守国家法律