使用 List.Accumulate 实现批量替换
在工作中,我们可能会遇到希望将某列中的某些字符串批量替换为另外一些,比如SEM在账户调整中需要批量将一些落地页更换为另一些。或者我们希望批量将一些数据进行规整,将蓝色替换为01,黄色替换为02等等。手动替换将造成大量重复的替换操作。本文的目的是通过List.Accumulate模拟手工替换的过程,实现自动替换。
将已经整理好的替换表和数据源加载到PBI中
替换表的格式为:需替换文本,新文本两列,顺序不可更改。
核心语句:List.Accumulate(Table.ToRows(替换表),数据源,(x,y)=>Table.ReplaceValue(x,y{0},y{1},Replacer.ReplaceText,{"需要替换的列"})
核心思路是:将替换表转换为List,利用List.Accumulate的特性,在替换表List到达末尾之前,会不断重复Table.ReplaceValue,对替换表中需要替换列,进行文本替换操作。将替换表中的需替换文本,替换为替换表中的新文本
效果展示
代码
By 湛蓝碧空
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)