power bi-all 相关函数
- 1. all 函数
- 2. allselected 函数
- 3. allexcept()函数
- 4. allnoblankrow() 函数
1. all 函数
- 作用: 清除筛选
- 返回:清除筛选后的表格或列
- 总结
- 当all参数为表时,忽略所有的筛选条件,无论是该表内还是外部切片器
- 当all参数为列时,忽略该列筛选(固定该列的值),其他图表字段或外部筛选对其产生影响
- 注意:all函数在引用列的时候,必须与矩阵的行和列再同一张表
- all(表)
商品表中商品总数 = COUNTROWS('商品表') -- 在销售表中出现的商品数量(有些商品没有销售出去 销售表中的商品数量 = calculate(COUNTROWS('商品表'),'销售表') -- 不具备筛选功能,只能总计,不根据商品行筛选,26为商品表的行数 不能筛选的总数 = COUNTROWS(all('商品表')) 占比 = [销售表中的商品数量]/[不能筛选的总数]
- all()函数的应用:计算销售表中每个商品的占比(应用于表)
总销量 = sum('销售表'[销售数量]) 禁止筛选的总销量 = calculate([总销量],all('销售表'[销售数量])) 每个商品的占比 = [总销量]/[禁止筛选的总销量]
- all()函数应用于列案例
-- 新建列 大类 = LOOKUPVALUE('商品表'[大类],'商品表'[商品编码],'销售表'[商品编码]) 规格 = LOOKUPVALUE('商品表'[规格],'商品表'[商品编码],'销售表'[商品编码])
-- 新建度量值 取消列筛选 = CALCULATE([总销量],all('销售表'[规格]))
- 设置切片器
- 鼠标不要选中表
- 鼠标不要选中表
2. allselected 函数
- allselected 函数替换all函数解决占比100%的问题
- allselected 不收内部影响,受外部切片器影响,因为要符合百分比占比问题
总销量 = sum('销售表'[销售数量]) 禁止筛选的总销量all = calculate([总销量],all('销售表')) 禁止筛选的总销量allselected = calculate([总销量],allselected('销售表')) 每个商品的占比all = [总销量]/[禁止筛选的总销量all] 每个商品的占比allselected = [总销量]/[禁止筛选的总销量allselected]
3. allexcept()函数
- 语法:Allexcept(表名[列名]),除 表名[列名] 之外
- 等同于all(表名[列名],表名[列名],表名[列名]…)
4. allnoblankrow() 函数
-
格式
- 表=allnoblankrow(‘子表’)
- 表=allnoblankrow(‘子表’[姓名])
-
返回值:去重(即便只有一列,他也是表)
-
all与allnoblankrow的区别
- all函数会直接为父表增加一行"空行",这一行函数计算在内
- allnoblankrow会忽略这一空行,只计算父表中存在的数据
-
例一
表1=allnoblankrow('子表') 表2=allnoblankrow('子表'[姓名])
-
例二
- all()和allnoblankrow()看不出区别
行数1 = COUNTROWS('子表') 行数2 = COUNTROWS(all('子表')) 行数3 = COUNTROWS(ALLNOBLANKROW ('子表'))
-
例三
- all与allnoblankrow的区别
- all函数会直接为父表增加一行"空行",这一行函数计算在内
- allnoblankrow会忽略这一空行,只计算父表中存在的数据
行数 = COUNTROWS('子表') 行数2 = COUNTROWS(all('父表')) 行数3 = COUNTROWS ( ALLNOBLANKROW ( '父表 ' ) )
- all与allnoblankrow的区别