Power Query多条件判断求和实现问题(DAX逻辑迁移)
Power Query实现多列非"NA"值计数
需求说明:新增一列,统计column_1至column_5中不等于"NA"的列的数量(例如前3列非NA、后2列为NA时结果为3),对应DAX逻辑已实现,需迁移至Power Query。
原代码错误原因
你编写的代码报错是因为List.Sum的参数格式错误:
List.Sum仅接受单个列表作为参数,你传入了多个独立的each表达式列表- 列表元素前无需重复添加
each关键字
正确实现方式
方式1:模拟DAX逐列判断求和
直接对应DAX的逻辑,逐列判断后累加结果:
= Table.AddColumn(#"Added Custom1", "Addition", each (if [#"column 1"] <> "NA" then 1 else 0) + (if [#"column 2"] <> "NA" then 1 else 0) + (if [#"column 3"] <> "NA" then 1 else 0) + (if [#"column 4"] <> "NA" then 1 else 0) + (if [#"column 5"] <> "NA" then 1 else 0) )
方式2:更简洁的批量处理写法
适合列数较多的场景,通过列名列表批量处理,后续增减列只需修改列表即可:
= Table.AddColumn(#"Added Custom1", "Addition", each List.Sum( List.Transform( {"column 1", "column 2", "column 3", "column 4", "column 5"}, (colName) => if Record.Field(_, colName) <> "NA" then 1 else 0 ) ) )
内容的提问来源于stack exchange,提问作者Natalie
相关产品推荐
相关产品推荐

