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

PowerBI之DAX神功番外篇26. 消除多对多关系

2022-10-31 13:34 作者:孙兴华zz  | 我要投稿

网友提问:

图片放大:

请注意:您结果那里有两个数计算的不对

济南的金额不是25,是31。时间2022/1/7~2022/2/28

青岛的金额不是25,是15。因为你是2022/1/7~2022/2/28

如果不是这样,那你的切片器筛选到天,不就没有实际意义了吗?

一、先分析需求:

1、度量值:金额、目标、完成率。完成率就是一个安全除法,没什么可说的。我也不做了。

2、切片器

切片器一会我们再做,假设日期是从2022/1/7~2022/2/18我们写成固定值,来解决第1个问题

先导入数据

目标表

我们发现目标表中【月度】列都变成了每月1日,这是个坑!一会讲

流水表

导入的数据中:流水表与目标表   无任何连线关系

二、注意日期问题

切片器时间范围:2022/1/7~2022/2/28

有些小伙伴想起使用函数Datesbetween,讲解于《火力全开》笔记27.03.03

你想一想,你的目标表中没有日期只有年月,导入后都显示每月1日,那你从7日开始取数据,必然会丢数据。所以这时不推荐使用Datesbetween,强用也有办法,但是不推荐

很多小伙伴这里出了问题,但是他不知道,说白了还是对自己的表不够了解才会出错。

推荐逻辑:    开始日期 <= 日期 <= 终止日期

在DAX里是这样写法(&&是and关系):   日期<= 开始日期  &&  日期>=终止日期

或者写成:And(条件1,条件2)

tb1筛选出目标表2022年1月和2月的所有行,再对tb1的【目标】列进行求和。

这是我们的第1个度量值,起名:目标1

我们需要一个总金额度量值,这是我们的第2个度量值,起名:总金额

计算网友需要的金额也是同理,

(1) 我们要先筛选日期范围内的流水表tb2的所有行,因为流水表中日期是到天的,所以我们可以从2022年1月7日开始获取

(2) tb2是多端表,我们对其分组聚合,

(3) 对tb2分组聚合适配金额时,要先建立数据沿袭。详见《DAX神功》第2卷第21回

这是第3个度量值,起名:金额1

放到表中:省和城市来源于目标表,两个度量值是独立存在的,不牵扯来自己哪张表,有时间的人可以单建一个存度量值的地方。这些《火力全开》中都讲过。

当我们把城市拿下去

三、搞定日期切片器

我是不是在这里讲过,https://www.bilibili.com/read/cv18734121

在你的实际工作中,对我讲的知识是要灵活运用的,没有哪里是独立存在,你可以记不住怎么写,但是你要知道我讲过,有这回事,你再查都来得及。

1、新建日期表

详见《火力全开》笔记28.04

新建表公式:

2、做切片器

3、取切片器最大值与最小值

下面两个都是度量值

4、修改目标1和金额1这两个度量值

返回结果:

本文章配套课件在评论区置顶中,可以下载参考

本案例只限PowerBI中使用,PowePivot中我没测试过,我从来不去纠结谁用什么载体

只是我本人是学知识的,我没有必要使用多个载体讲同一个知识。

就好比我讲Python用PyCharm,有些人让我用jupyter,如果我用jupyter,一定有人让我用PyCharm。我又不是卖课的,我不是应该把精力放在思路和逻辑上面吗?

我自己选一个我需要的,我用PowerBI的原因:

单位用WPS的人多,只有部分电脑有office,如果我用PowerPivot人家用WPS的看不了。

有可能你们在外企没有这个情况,但并不是所有人都在外企。

就跟我用中文案例、中文变量是一样的,中国人能看懂英文的一定也能看懂中文

我不能只考虑英语好的,忽略英语不好的,我不筛选观众和读者。

至于PowerPivot的图表数量、函数多与少的问题,我本身也不用,也不关心这个。

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神功番外篇26. 消除多对多关系的评论 (共 条)

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