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

放大图片


回答网友问题:
你现在问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上面,其它领域很少。
现在解决问题:
我们先导入两张表


建立一对多关系

为了把这个过程讲清楚,我们一点一点说
表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