如何在Power BI中创建列获取未被使用的项目编号?
在DAX中识别未被使用的项目编号
针对你需要找出项目表中未在服务执行表出现的项目编号需求,这里提供两种实用的DAX解决方案:
方法一:在项目表中添加计算列
直接在项目表新增一列,标记出未被使用的项目编号:
未被使用 = IF( COUNTROWS(RELATEDTABLE('服务执行表')) = 0, '项目表'[Project Number], BLANK() )
- 原理:
RELATEDTABLE('服务执行表')会筛选出服务执行表中与当前项目行编号匹配的所有记录,COUNTROWS统计匹配行数;若行数为0,说明该项目未被使用,返回项目编号,否则返回空值。
方法二:创建独立的未使用项目表
如果需要单独生成一张仅包含未使用项目编号的表,使用EXCEPT函数:
未使用项目表 = EXCEPT( SELECTCOLUMNS('项目表', "项目编号", '项目表'[Project Number]), SELECTCOLUMNS('服务执行表', "项目编号", '服务执行表'[Project Number]) )
- 原理:
EXCEPT函数返回第一个集合有但第二个集合没有的元素,先通过SELECTCOLUMNS分别提取两个表的项目编号列,再取差集得到所有未被使用的项目编号。
为什么SEARCH/FIND不适用?
SEARCH和FIND是文本子串查找函数,用于在单个字符串中定位特定文本,而你的需求是跨表匹配项目编号的存在性,属于表关联逻辑,因此这类文本查找函数无法满足需求。
内容的提问来源于stack exchange,提问作者Breno Michaelsen
相关产品推荐
相关产品推荐

