Power BI 查询编辑器:基于列值返回数据的问题求助
解决方案:按条件设置第三列值
步骤说明(以Power Query为例)
- 先生成第二列的下移版本:添加一个临时列,取值为当前行第二列的下一行内容,最后一行自动设为
null - 基于第二列的内容,用条件判断生成第三列:
- 若第二列值为
"Agree"或"Strongly Agree",第三列返回null - 若第二列值为
"Disagree"或"Strongly Disagree",第三列返回临时下移列的对应值 - 其他情况可根据需求返回
null或保留原内容
- 若第二列值为
M语言代码示例
假设数据源表名为Source,第二列名为Col2:
let Source = 你的原始数据表, // 添加第二列的下移临时列 Add_Shifted_Col = Table.AddColumn(Source, "Shifted_Col2", each try Source[Col2]{[Index]+1} otherwise null, type text), // 生成目标第三列 Add_Target_Col3 = Table.AddColumn(Add_Shifted_Col, "Target_Col3", each if List.Contains({"Agree", "Strongly Agree"}, [Col2]) then null else if List.Contains({"Disagree", "Strongly Disagree"}, [Col2]) then [Shifted_Col2] else null // 非上述四种情况的处理,可自行修改 ), // 移除临时列(可选) Clean_Table = Table.RemoveColumns(Add_Target_Col3, {"Shifted_Col2"}) in Clean_Table
问题排查提示
你之前用双索引列合并失败,通常是索引匹配逻辑出错(比如索引起始值不对应、合并时未正确关联行);添加移位列后出问题,大概率是未处理最后一行的null取值,或者条件判断时的列引用错误。可以检查移位列的生成步骤,确认每一行的下移值是否正确,再验证条件判断的逻辑是否覆盖所有情况。
内容的提问来源于stack exchange,提问作者kkk
相关产品推荐
相关产品推荐

