Power BI之DAX神功:第3卷第22回 理解数据沿袭
这是一个网友问题的问题,网友没有看懂《权威指南》要在这节课中表达的意思。
声明:这是教学案例,书中只是让你理解数据沿袭。需要我们举一反三应用到自己工作中去,而不是照搬。这些知识在我们之前的课程中都讲过了,而且不只一次的提到,现在我带着大家一起回忆。
一、DAX神功独特讲法
《DAX神功》答网友问05 返回表的迭代函数你应该注意什么?我们证明了一个重要内容:
ADDCOLUMNS相当于整容,例如你长了两只眼睛,整容可以让你变成3只,但你还是你。
SELECTCOLUMNS相当于克隆再整容,克隆你再整容成3只眼,长的一样,但是那不是你。
二、别拿克隆当本体
下面两张表,通过商品编码连线,创建一对多关系

【1】在商品表类型列不重复值生成的表中,筛选"蔬菜"。现在还是商品表,只是筛选了
返回结果:

【2】当我用AddColumns给这张表增加列时,是给这张表做整容,表还是这张表,那我们修改这个公式:现在还是商品表
返回结果:

【3】但是当我使用SelectColumns选择列时,相当于把这张表克隆一份,对克隆表进行整容。表发生了变化。现在还是克隆表
返回结果:

【4】现在我给这个表添加列,还有数据沿袭吗?没了!为什么?
咱们举个例子:你有一份名单,在名单上用特殊的笔,这种笔大家小时候都玩过,写上字看不出来,需要在紫外灯下照射才能看清,标记了谁是在我方的潜伏人员。有一天,我潜入内部,使用相机拍下了这份名单,照片上有标记吗? 没有吧? 咱们《DAX神功》第2卷第21回讲数据沿袭时提到,做标记就是数据沿袭。为了证明这件事,你只需要在上一步的新建表中添加列:
返回结果:

蔬菜的销售应该是21-9=12,它现在返回的是所有商品销量总和,显示没有保留数据沿袭。
三、没有数据沿袭我们就创建它
《火力全开》第24课、《DAX神功》第2卷第21回 我们都讲到了TREATAS函数

SelectColumns是将表克隆后选择列或创建列,让克隆表在商品表的类型列上做标记不就好了吗?
例如:{"张三","李四"} 是一张由表构造函数生成的表,跟其它表没关系,使用TREATAS将他们扯上关系。
SelectColumns也是生成一张表,这张是克隆之后的表,我们需要将这张表与商品表类型列扯上关系。
返回结果:

《孙兴华讲PowerBI火力全开》PowerBI必学课程
https://www.bilibili.com/video/BV1qa4y1H7wp
《DAX神功》文字版合集:
https://www.bilibili.com/read/readlist/rl442274
《DAX神功》视频版合集:
https://www.bilibili.com/video/BV1YE411E7p3
PowerBI(DAX函数)、PowerQuery(M函数)、Python办公自动化、Python爬虫、Python数据分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等