单元格文本内容转换
数据源:AE列第一行为"-"时,表示此行数据为空,
格式为一个基本号码加变量号码
AE1:
85713094 和813092为基本号码
-101,-105,-109为85713094后变量数字(3位文本数字,100-999)
PREV表示所有小于左侧三位数,SUB表示大于,左侧三位数,直接保留提取.
要求:版本 (O365)
用函数将根AE列原始数据根据以下条件在L列生成新文本内容
1.将基本号码根据变量数字重复显示 (基本号码+据变量数字)
2.保留变量数字后的"&PRE" / "&SUB"
?????????? 仅供参k a0千字文,仅限365 的 最新 版 (支持REDUCE ,LAMBDA)
=UPPER(SUBSTITUTE(TEXTJOIN(CHAR(10),,LET(a,SUBSTITUTE(MID(REDUCE(CLEAN(AE2),{"-On Assy:","On Assy:","v.,","v,"},LAMBDA(x,y,SUBSTITUTE(x,y,","))),3^(LEFT(AE2)="-"),99),"&","z"),b,LOOKUP(ROW(INDIRECT("1:"&COUNTA(FILTERXML("<a><b>"&SUBSTITUTE(a,",","</b><b>")&"</b></a>","//b")))),ROW($1:$99)/(LEFT(FILTERXML("<a><b>"&SUBSTITUTE(a,",","</b><b>")&"</b></a>","//b"))<>"-"),FILTERXML("<a><b>"&SUBSTITUTE(a,",","</b><b>")&"</b></a>","//b")),c,LEFT(b,FIND("-",b)),d,FILTERXML("<a><b>"&SUBSTITUTE(a,",","</b><b>")&"</b></a>","//b"),e,MID(d,FIND("-",d)+1,99),f,"/"&c&e&"/",f)),"z","/&")) 多谢协助。住处没有0365无法测试。WPs和16版本不出结果,要等周一到办公室后测试
。之前在办公室用textjoin(也是换了几行才完成),想看一下有没有更简短的方法 FILTERXML函数,适合于处理XML文档中的格式化的文本,而对于EXCEL内的各种杂乱文本,还是用正则表达式这种直接从字符串本身的特征来提取字符的工具更加简单直白、不绕弯子。
页:
[1]