Power Query如何修改代码实现指定多列的条件值批量替换
解决方案
你只需要将固定列引用替换为指代当前单元格的变量即可,修改后的完整代码如下:
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], // 如需指定部分列生效,可直接写为ColumnNames = {"列1", "列2", "列3"} ColumnNames = Table.ColumnNames(Source), Step1 = Table.ReplaceValue( Source, each _, each if Text.Contains(_, "A") then "Upper" else if Text.Contains(_, "B") then "Middle" else if Text.Contains(_, "C") then "Lower" else if Text.Contains(_, "NaN") then "" else if Value.Is(Value.FromText(_), type number) then "Num" else _, // 替换为Replacer.ReplaceValue兼容性更强,支持文本、空值等多种类型的替换 Replacer.ReplaceValue, ColumnNames ) in Step1
修改说明
- 修正了原代码中替换逻辑开头多余的
else语法错误 - 将第二个参数改为
each _,表示匹配所有目标列的单元格值 - 将所有原逻辑中的固定列引用
[L1_Grade]替换为_,_指代当前正在处理的目标列的单个单元格值,可自动适配你指定的所有列 - 将原
Replacer.ReplaceText改为Replacer.ReplaceValue,兼容空值、非文本类型的替换场景
内容的提问来源于stack exchange,提问作者VBNub
相关产品推荐
相关产品推荐

