Power Query 中对列表指定批量替换函数详解

List.ReplaceMatchingItems(list as list, replacements as list, optional equationCriteria as any) as list
第1参数是数据列表;第2参数是批量替换的列表,每一个新旧替换作为一个list并组合成一个总的list(相当于大list套小list,要有双层嵌套{{}}格式);第3参数可以指定一个可选相等条件值来控制相等测试(也就是用来替代被替换的值)。
例:
List.ReplaceMatchingItems({1..10}, {{1,"a"}})={"a",2..10}
解释:用"a"替换1生成新列表

List.ReplaceMatchingItems({1..10}, {{1,"a"},{2,"b"})={"a","b",3..10}
解释:用"a"替换1,用"b"替换2生成列表

List.ReplaceMatchingItems({{1..3},{1..10}}, {{{1..3},{"a".."c"}}})={{"a".."c"},{1..10}}
解释:用{"a".."c"}列表替换{1..3}列表并生成新的组合列表。单个列表用可以用多个值替换,多个列表则需用列表进行替换。

List.ReplaceMatchingItems({1..5},{{1,0}},each _<3)={0,0,3,4,5}
解释:使用第2参数的旧值和第3参数做比较,如果符合则替换条件为第3参数,如果不符合,替换条件则是第3参数的相反值。因为第2参数的旧值符合第3参数的条件,则替换条件就是第3参数<3,所以1,2被0替换。

List.ReplaceMatchingItems({1..5},{{1,0}},each _>3)={0,0,0,4,5}
解释:因为第2参数旧值不符合第3参数条件,所以条件为第3参数的相反,也就是<=3,用0替换<=3的条件的值。

List.ReplaceMatchingItems({1..5,1,2},{{1,0}},each _>3)={0,0,0,4,5,0,0}
解释:因为第2参数旧值不符合第3参数条件,所以替换条件是第3参数的相反值,用0替换<3的条件值