如图ABC类为源数据,其中C列为目标数据源,需要将文本大小写及缩写等,逐个转换成G列的文本,F列是C列情况的汇总,与G列一一对应。要求将C列各行的的内容全部分转换为D列数据样式。公式如下:
=REDUCE(C2,$F$2:$F$10,LAMBDA(x,y,SUBSTITUTE(x,y,FILTER($G$2:G$10,F$2:F$10=y))))
公式思路:文本替换以substitute函数为主。
本公式的主体为reduce(substitute(filter……。
reduce函数将C列作为起始值,将被替换对象作为遍历数组,将substitute作为主要的计算体。
substitute函数将C列作为要替换的字符串,以因为是通过reduce累加器引用的所以会实现递归的效果。逐个把C列每个单元格中存在的F列字符进行替换。
filter函数作用在于根据y变量,找出其在G列对应的替换字符。
本例详细的诠释了reduce函数在加速substitute函数替换方面的作用。
评论 (0)