PowerBI之DAX神功番外篇31 一定要静下心来学
网友提问:




放大图片:


关系:

网友问题的图片:

以上问题只要听课了,就一定会,如果不会,那您回忆一下,我讲没讲过?
首先,在第2课上我是不是讲了一对多关系,一端筛选多端?

然后,我是不是在第7课讲ALL函数时,说他是取消筛选(也可以叫删除筛选),all(表) 取消这个表的所有列筛选,all(表[列]) 取消这个表指定列的筛选

《火力全开》是要将一个完全没有基础的人带进门,对知识进行的科学排版,所以那些道听途说只会讲名词的人千方百计的说我不讲原理,如果观众没听,我讲山海经也没用。
网友的三个度量值如下:
网友的矩阵如下

请问,上图你矩阵上面的行字段:姓名和日期是不是来自‘子表’?
ALL总成绩 = CALCULATE([总成绩],ALL('子表'))
你取消了‘子表’所有列的筛选,是不是应该显示最终值28?
如果你换成父表的姓名列,同样不能筛选,因为度量值【总成绩】来自子表,你都取消筛选了,啥都筛选不了了。就好比,张三是某厂的,马总能管张三,张三已经断气了,马总就管不了了,他又不姓阎。

再说下面这个公式
ALL总成绩2 = CALCULATE([总成绩],ALL('父表'))
你取消了父表所有列的筛选,那你的矩阵上、你的【总成绩】度量值 哪里有父表什么事呢?
这就好比,M国删除了孙兴华,孙兴华根本就不是M国的,也前没去过,以后也不会去,根我没关系。所以肯定不影响筛选呀

如果你把行标题改成父表中的姓名字段

蓝圈空白是因为:实时参照完整性,你的父表(一端)没有唐僧,但是子表(多端)中有,就好比小米专卖店没有华为手机销售,但是POS机里出现了。这种情况在现实中是有的,比如有一个库(一端):张三、李四、王五都有前科,但是这个月被抓的人(多端)里有一个叫小雷的反复被抓了三次,但是他的名字没在一端表中。
详见:https://www.bilibili.com/read/cv12552912
然后再看姓名对应的都是28,不能筛选了,因为你all('父表') 取消了父表所有列的筛选
但是,你的【all总成绩2】这个度量值没有all子表任何列,所以子表的日期可以筛选,每行返回的都是12月1日(1+2+3+4+5=15)和12月2日(6+7=13)的值。
希望可以帮到你,不过建议你还是从第一集开始再看一遍,不要快进。

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