如何在Google Spreadsheet中用公式复制字符串并添加数字后缀
解决方案
不需要学习QUERY函数,使用LAMBDA系列函数搭配你已经了解的SPLIT、JOIN、ARRAYFORMULA即可实现需求。
单个单元格处理公式(以处理A2单元格内容为例)
=JOIN(",", FLATTEN(BYROW(SPLIT(A2, ","), LAMBDA(i, ARRAYFORMULA(IFERROR(SPLIT(REPT(REGEXEXTRACT(i, "(.+)#")&"|", REGEXEXTRACT(i, "#(\d+)")), "|"), i))))))
公式逻辑说明
SPLIT(A2, ",")将单元格内容按逗号拆分为多个物品#数量的独立片段BYROW + LAMBDA遍历所有拆分后的片段,对每个片段单独处理:REGEXEXTRACT(i, "(.+)#")提取#符号前的物品名称REGEXEXTRACT(i, "#(\d+)")提取#符号后的数字作为重复数量REPT(物品名&"|", 数量)将物品名加临时分隔符|重复对应次数- 再次按
|拆分重复后的内容,得到对应数量的物品名数组
FLATTEN将多维数组拍平为一维数组,最后用JOIN(",")拼接为最终字符串- 公式内置IFERROR容错,若某条片段没有
#数量结构,会直接保留原片段内容
整列自动处理公式
将公式粘贴到B列首个输出单元格(如B1),即可自动识别A列所有非空单元格,对应生成B列结果:
=BYROW(FILTER(A:A, A:A<>""), LAMBDA(row, JOIN(",", FLATTEN(BYROW(SPLIT(row, ","), LAMBDA(i, ARRAYFORMULA(IFERROR(SPLIT(REPT(REGEXEXTRACT(i, "(.+)#")&"|", REGEXEXTRACT(i, "#(\d+)")), "|"), i))))))))
内容的提问来源于stack exchange,提问作者J. SungHoon
相关产品推荐
相关产品推荐

