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

Power BI之DAX神功番外篇:第2回 为什么这个度量值一端和多端均可筛选

2021-11-11 09:14 作者:孙兴华zz  | 我要投稿

一、网友提问:

网友使用的是《孙兴华讲PowerBI火力全开》

07.ALL函数、Allexcept函数、ALLSELECTED函数   中的案例

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

二、解答问题

我们将案例的数据量缩小,来举例:


【度量值】

销售表中的商品总数 = CALCULATE(COUNTROWS('商品表'),'销售表')

将公式拆分:

COUNTROWS('商品表')    // 因为商品表里有4行,返回4

当Calculate使用筛选器是 '销售表'  时,销售表中有几种商品? 3种?

我们将销售表中有的商品从  COUNTROWS('商品表')  中筛选出来,结果就是3


【1】将度量值放到矩阵中,行标题使用商品表中的商品名称

【度量值】

销售表中的商品总数 = CALCULATE(COUNTROWS('商品表'),'销售表')

返回结果是3个品种

这3个品种分别是白菜、茄子、土豆,每个品种都是1

一对多关系,不管你的COUNTROWS来自哪张表,1端可以筛选自己,也可以筛选多端。


【2】将度量值放到矩阵中,行标题使用销售表中的商品名称

可能很多人会有疑问,为什么也可以筛选呢?

多端不是只能筛选自己,不能筛选一端表吗?

【度量值】

销售表中的商品总数 = CALCULATE(COUNTROWS('商品表'),'销售表')

分析:

COUNTROWS('商品表')    // 返回的的确是一端表的行数

如果你将公式写成

销售表中的商品总数 = CALCULATE(COUNTROWS('商品表'))

放到矩阵中就不能筛选了:

那为什么我这样写就可以筛选呢?

首先,我们看一下另一个公式:

销售表中的商品总数固定值 = CALCULATE(COUNTROWS('商品表'),all(销售表'))

分析公式:

COUNTROWS('商品表')   //返回商品表中的所有行,结果是4

all(销售表')    //取消销售表的筛选,需要销售表中所有商品在COUNTROWS('商品表')中的固定值,结果是3,而这个3,因为使用了all(表) 所有字段内部筛选器和外部筛选都无效了。

那结果就出来了,当度量值没有使用all(表),而是直接使用 ‘表’ 就是允许这张表筛选。

所以下面这个度量值,即可以被商品表筛选也可以被销售表筛选。

【度量值】

销售表中的商品总数 = CALCULATE(COUNTROWS('商品表'),'销售表')

友情提示:这些原理知识需要有一定的基础和兴趣再来学习,学完《孙兴华讲PowerBI火力全开》以后,再来学习《孙兴华讲PowerBI之DAX神功》效果更加。

《孙兴华讲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等等

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

Power BI之DAX神功番外篇:第2回 为什么这个度量值一端和多端均可筛选的评论 (共 条)

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