PowerBI中匹配列值时对比字段的实现方案咨询
解决PowerBI中两表Number&Code匹配对比的需求
嘿,这个需求用PowerBI的DAX计算列就能轻松实现,咱们直接上实操方案:
实现步骤
- 打开PowerBI模型视图,选中表2(因为你的期望结果是基于表2的输出)
- 在「建模」选项卡中点击「新建列」,输入下面的DAX公式:
Result = VAR CurrentNumber = '表2'[Number] VAR CurrentCode = '表2'[Code] -- 判断当前Number+Code组合是否在表1中存在 VAR IsCodeMatch = COUNTROWS( FILTER('表1', '表1'[Number] = CurrentNumber && '表1'[Code] = CurrentCode) ) > 0 -- 判断当前Number是否在表1中存在 VAR IsNumberPresent = COUNTROWS( FILTER('表1', '表1'[Number] = CurrentNumber) ) > 0 -- 根据条件返回对应结果 RETURN SWITCH( TRUE(), IsCodeMatch, "Matches", NOT(IsNumberPresent), "Unknown", "Not Matches" )
公式逻辑解释
- 先用
VAR定义当前行的Number和Code变量,让后续代码更简洁易读 IsCodeMatch:统计表1中与当前行Number和Code完全匹配的行数,只要大于0就说明存在匹配IsNumberPresent:统计表1中存在当前Number的行数,用来区分「Number不存在」的Unknown情况- 最后用
SWITCH按优先级判断:先看是否完全匹配→再看Number是否不存在→剩下的就是Number存在但Code不匹配的情况
这样生成的Result列就完全符合你想要的输出效果啦!
内容的提问来源于stack exchange,提问作者Istiak Mahmood
相关产品推荐
相关产品推荐

