Power BI度量值开发需求:筛选含指定供应商的所有销售记录
Power BI度量值:筛选包含选中供应商的所有销售记录
针对你的场景——销售记录里的供应商是用分隔符拼接的字符串,需要通过供应商表筛选出包含选中供应商的所有销售记录,下面是具体解决方案:
核心思路
由于供应商表和销售表没有直接的一对多关联(销售表存储的是多供应商拼接值),无法依赖默认关系筛选,需要通过DAX度量值逐行检查销售记录的供应商字符串是否包含选中的供应商名称。
DAX度量值代码
包含选中供应商的销售 = VAR SelectedVendors = VALUES(vendors[VendorName]) RETURN CALCULATE( COUNTROWS('销售表'), FILTER( '销售表', SUMX( SelectedVendors, IF(SEARCH([VendorName], '销售表'[供应商列], 1, 0) > 0, 1, 0) ) > 0 ) )
代码说明
- SelectedVendors:获取当前切片器/筛选器中选中的所有供应商名称,支持多选场景
- FILTER遍历销售表:逐个检查每一条销售记录
- SEARCH函数匹配:在销售记录的供应商字符串中查找选中的供应商,找到则返回匹配位置(>0),找不到返回0;用SUMX累加匹配结果,只要有一个供应商匹配,结果就>0,这条记录就会被保留
- CALCULATE统计:最终统计符合条件的销售记录行数
使用注意事项
- 把代码里的
'销售表'[供应商列]替换成你销售表中实际存储拼接供应商的列名(比如叫"参与供应商") - 如果担心大小写不匹配导致漏筛,可以给SEARCH函数加上大小写统一处理:
IF(SEARCH(LOWER([VendorName]), LOWER('销售表'[供应商列]), 1, 0) > 0, 1, 0) - 将这个度量值添加到表格、卡片图等可视化组件中,搭配供应商表的
VendorName切片器使用,选中Esteban后就能看到所有包含他的销售记录
内容的提问来源于stack exchange,提问作者Marcos
相关产品推荐
相关产品推荐

