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

PowerBI之DAX神功番外篇28. 换了个表格一样的问题

2022-11-02 11:18 作者:孙兴华zz  | 我要投稿

网友提问:

PowerBI中有两种语言,一个是M函数,一个是DAX函数,我们分别使用两种语言处理

我个人感觉,他提到PBI应该是让我用DAX函数实现,但是出于礼貌,我就都做出来了。

速度问题我不管,我的工作不是卖软件,我是使用软件的人。对我来说,每次需求都是随机的,且是一次性的。我要快速的得到答案,而不是研究怎么优化代码,这与每个人的工作性质不同而决定。

比我是鹅厂,我们马总30分钟后要开新闻发布会。马总虽然是创始人,但是他不能什么事都自己做,如果都他自己做还要我们这些人干嘛?有一个临时需求,马总秘书找我,我说不行,我是专业的,你这个需要我要做项目,秘书说我就要结果快点时间来不及了,我说不行,我要考虑代码是不是在最短时间内跑完。你们知道我的结果是什么?

高手代码1秒运行完毕,孙兴华代码跑了10分钟,但是高手思考那1秒运行的代码需要1小时,孙兴华写这跑了10分钟的代码只需要3分钟。小学生也能算出来哪个快。

如果你是卖软件的,给人家做项目的,那你一定要考虑优化,听说过A卡战未来吗?

当我的显卡能盖住这款游戏时,我是不会跟着B站UP主学参数设置优化的,什么时候我自己配置盖不住了,我又不想换电脑,这时我才会去研究。因为我的配置能盖住我自己的需求,而且我的需求都是一次性的。

不同的工作性质有不同的路,大家不一定都走相同的路。你去上班,总不能做电脑前面发呆呀。网上说某懿看到某亮在城楼上弹琴,他转身走了,他知道自己的作用。某信就不懂,故事结局大家也知道。

一、M函数

1、使用PowerBI导入数据

2、转置表

返回结果

3、选中Clolumn1这列,逆透视其它列

返回结果:

4、删除属性列

返回结果:

5、关键的一步

对【值】这列分组,对数据列每个Table二次分组,组内计数

并转置数据列的每个Table, 再对其升标题

返回结果:

6、展开

需要动态列自己写,前面多次讲过,这里不再重复。

返回结果:

7、替换

选中要将null替换成0的列

返回结果:

二、DAX方法(不考虑总计)

今天网友的问题与上一期网友提问完全一样,只是他把表改了

1、导入数据

表名:表1

2、我们需要:  北京、上海、广东   这样三个去重后的值

套路开始了,《DAX神功》第3卷第7回讲了Union函数

我们对上面这张tb1先去重,再筛选非空,再取指定列

代码如下:

3、写另外三个度量值

我以【火车1】这个度量值为列,再说一下他的运算顺序

我们有两张无关系的表

第一行:SELECTEDVALUE('新建表'[城市])    是:{"北京","上海","广东"}

当我们把左表城市列放到矩阵行标题上

上面我们筛选出来的:北京、广东、上海   用VAR保存成变量x,传递到第2行替换x

第二行:CALCULATE(count('表1'[火车]), FILTER('表1',SEARCH(x,'表1'[火车],,BLANK())))

因为原表中火车列没有广东,但是矩阵行标题上有,所以返回blank()

这时我们需要判断,当第二句为blank时 返回0 ,所以就有了第三句话

最后一句就是让总计为空,这个不解释了,PowerBI课程中经常会用到。其它两个度量值也是一样的


放到矩阵中返回结果:

如果想让城市排序,我们也讲过《火力全开》倒数第2集,讲过中文排序

三、DAX方法(考虑总计)

上一回我们讲过了

https://www.bilibili.com/read/cv19439186/?from=readlist

我的方法不一定快,不一定好,我相信每个人都比我聪明,他们会有更好的方法,但是有一个道德问题,高中老师永远不会因为小学1+2+3...  而高中用等差数列,就说小学老师误人子弟,从1949到现在也没听说过。

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神功番外篇28. 换了个表格一样的问题的评论 (共 条)

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