REGEXMATCH无法识别含X/E的尺码字符串问题求助
解决REGEXMATCH识别含X尺码的问题
问题根源
你的嵌套IF判断顺序出错了:你先判断了L,但XL、XXL这类尺码里都包含L,公式会优先匹配到L并返回结果,根本不会走到后面判断XL、XXL的分支,和字母X本身没有关系。你把X替换成E后没用,也是同样的道理——EL里的L还是会被先匹配到。
修正后的公式
把包含L的长尺码(比如XXXL、XXL、XL)放在单独的L判断前面,让公式先检查更长的尺码,再检查单字母的:
=IF(REGEXMATCH(A2,"XXXL"),"3XL", IF(REGEXMATCH(A2,"XXL"),"2XL", IF(REGEXMATCH(A2,"XL"),"XL", IF(REGEXMATCH(A2,"L"),"L", IF(REGEXMATCH(A2,"M"),"M", IF(REGEXMATCH(A2,"S"),"S", IF(REGEXMATCH(A2,"IVXL"),"4XL", IF(REGEXMATCH(A2,"VXL"),"5XL",""))))))))
注:你原公式里的lVXL应该是输入错误,这里改成了罗马数字4对应的IVXL,如果实际数据里是其他写法,你可以自行调整。
可选优化(避免误识别)
如果你的数据里尺码是独立的(不会和其他文字混在一起),可以给正则表达式加上边界匹配\b,这样只会匹配单独的尺码单词,不会误识别比如XXXLabc这类包含尺码的字符串:
=IF(REGEXMATCH(A2,"\bXXXL\b"),"3XL", IF(REGEXMATCH(A2,"\bXXL\b"),"2XL", IF(REGEXMATCH(A2,"\bXL\b"),"XL", IF(REGEXMATCH(A2,"\bL\b"),"L", IF(REGEXMATCH(A2,"\bM\b"),"M", IF(REGEXMATCH(A2,"\bS\b"),"S", IF(REGEXMATCH(A2,"\bIVXL\b"),"4XL", IF(REGEXMATCH(A2,"\bVXL\b"),"5XL",""))))))))
内容的提问来源于stack exchange,提问作者Ram
相关产品推荐
相关产品推荐

