PowerBI中使用DAX公式实现同表多列匹配标记重复行
Power BI DAX 多列完全匹配行标记方案
不需要使用LOOKUPVALUE实现多列重复行匹配,直接通过计算列标记的方案逻辑更简单、运行更稳定,以下是可直接复用的写法:
推荐方案:计算列标记重复行
你只需要把代码里的表名、列名替换成自己实际业务中的字段即可,需要匹配几列就新增几行对应的列判断条件,多列并列匹配用&&连接:
重复行标记 = -- 读取当前行需要匹配的各列取值 VAR Cur_Col1 = '目标表'[匹配列1] VAR Cur_Col2 = '目标表'[匹配列2] VAR Cur_Col3 = '目标表'[匹配列3] -- 统计表中所有列取值和当前行完全一致的总行数 VAR Total_Match_Rows = COUNTROWS( FILTER( ALL('目标表'), '目标表'[匹配列1] = Cur_Col1 && '目标表'[匹配列2] = Cur_Col2 && '目标表'[匹配列3] = Cur_Col3 ) ) -- 匹配行数大于1说明是重复行,标记为1,否则标记为0 RETURN IF(Total_Match_Rows > 1, 1, 0)
写完计算列后,直接筛选重复行标记 = 1的行,就能拿到所有多列取值完全匹配的记录,和你需要的高亮结果一致。
关于LOOKUPVALUE多列匹配的说明
LOOKUPVALUE原生支持多列匹配参数,语法格式为LOOKUPVALUE(要返回的列, 匹配列1, 匹配值1, 匹配列2, 匹配值2 [, 匹配列N, 匹配值N]),但该函数要求匹配结果必须唯一,一旦存在多列匹配的重复行就会直接抛出多值报错,完全不适合当前的重复行标记场景,仅适合单结果的多条件值查询,不建议用在这个需求里。
注意:如果你的表存在后续数据刷新、新增行的场景,上述计算列会自动更新标记值,不需要手动调整逻辑。
内容的提问来源于stack exchange,提问作者Let Soo Gas
相关产品推荐
相关产品推荐

