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

PowerBI之DAX神功番外篇64 为何部分网上找的答案你用不了

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

网友提问:

放大图片

回答网友问题:

你现在问GPT都有50%的概率能解决问题,但是国内技术论坛就不好说了

我在学习过程中,我发现一个问题,国内很多DAX文章,有刻意内容缺失

一共就不到10句代码,有些发布者故意把某些函数替换了(不是拼写错了),或者少几句,

对于新人来说,肯定就手足无措了。但是他们蒙不了我。关于这个问题他们已经公开承认了

举个例子,可口可乐为什么不把它的配方申请专利,而是技术保护?他们不怕你卖可乐,怕你们自己会做可乐,就不再依赖他们了!比如你发明一个东西,申请专利,我自己做一个自己用只要不卖钱,谁都没办法。没有申请专利的东西如果我有本事,通过喝可乐把可乐的配方给猜出来了,那是我的能力,因为它没有申请专利。(当然我这个我真喝不出来。。。)

但是,你们做演示,不说代码,或是故意写错的代码,那我有能力看出端倪,毕竟就不到10行的代码,对于学会的人有什么难度?我把错误代码(非拼写错误)变成正确代码,那属于知识创新。我是将原本跑不起来的代码,让它跑起来了。

比如之前有网友问我从阿斗上看到某个视频问我这个怎么做的?

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

人家阿斗原作者没说我自己能做出来是侵犯他的权利。

全网学办公软件的女同学没有不认识的宇哥,两次讲Access,

我通过技术实现了他展示的功能,他也没说我侵犯他的权利,还给我点赞

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

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

有些知识,即便是某些人写进书里,别人再使用也不构成侵权,因为知识产权不是他的

这些简单的语法在微软的帮助文档里都有现成的。

这与做软件不一样,你们手机里哪个APP是10几行代码可以搞定的?

而且,你们谁写一个同比环比的公式,能申请专利吗?代码是你发明的还是案例是你发明的?

有些人口中的著作权,是一种垄断。人家微软发明的计算机语言,我们利用小学生的逻辑思维配合帮助文档简单的使用它。就因为你曾经用过,所以我们就不能用了?

这与文学、影视、音乐等是有本质区别的。

现在,他们的做法,就好比我们都拍西游记,他对孙悟空的化装有著作权,但是对孙悟空三打白骨精这件事没有著作权。

那么多讲Excel工作表函数的人  sum 、average、sumif 。。。。。。大家都讲过,语法都一样,只要案例数据不同就可以了,比如我的表格姓名是孙兴华,别人的是张三,何谈抄袭?要说抄袭都是抄微软的。

当然,这种事情大多发生在M和DAX上面,其它领域很少。


现在解决问题:

我们先导入两张表

表1
表2

建立一对多关系

为了把这个过程讲清楚,我们一点一点说

表2是一端表,表1是多端表,一端可以筛选多端

在表2中新建列,如下图,为什么没有筛选呀?因为是新建列,我们使用聚合函数,它是行上下文,所以没有筛选。

当我们给它套上Calculate时它就能筛选了,因为做了上下文转换

接下来我们需要筛选表1中更新日期等于表2中新建列现在的日期

那表2中新建列的日期不就是表1中更新日期每个物料号对应的最大日期吗?

实现上述内容,因为结果最终是一张表,所以我们可以放在新建表中测试

但是返回结果,并不理想,那我们思考为什么会这样呀?

还记得在讲循环依赖时我说的隔山打牛吗?

我们两张表连线在一起,出现了扩展表原理

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

我们是不是只需要表1中的物料号进行筛选呀?其它字段的筛选都不需要,所以都删除

看见这张表,原理也就到此为止了。

我们回到新建列上面来,刚才我们做到了这一步,如下图

我们又通过新建表展示了原理,现在新建列可以改成

为什么都显示11呀?刚才讲过了,聚合函数和MAXX等迭代函数都是创建行上下文的,我们要通过Calculate转换,于是这就搞定了

刚才介绍了新建列的方法,再说说度量值的方法

很简单吧,Values是对指定表指定列去重后的表,calculate(sum(表[列])) 就是我们最常用的度量值,我们使用MAXX 把calculate(sum(表[列]))适配给每个最大日期,然后放到报表中,通过表2的物料号与物料描述筛选这个值

很多网上讲DAX的一直喜欢用上面的方法,我也喜欢,但是。。。你们总跟我提总计问题,你不想让它为空,又想要一个正确的总计,讲新建列时我已经讲了新建表的方法,用那个表,配合sumx就可了度量值如下

看完今天的文章,大家就不要再说,为什么你孙兴华要先var tb  然后再对这个tb计算,人家都不是这么计算的。那你们跟我说总计,你们没和人家聊总计,我不在意这个总计,但是你们需要总计:)

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神功番外篇64 为何部分网上找的答案你用不了的评论 (共 条)

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