Excel MID函数返回非预期结果,如何获取目标字符串CM1?
Excel公式问题修正方案
问题原因
你当前的公式=IF(ISNUMBER(SEARCH("CM",B2)),MID(B2,SEARCH("""",B2)+1,SEARCH("_",B2)-1-SEARCH("""",B2)),"")出错的核心原因:
SEARCH("_",B2)默认从单元格内容开头查找第一个下划线,导致截取的是双引号"之后到第一个下划线之间的内容,也就是PI-M99S,完全没定位到目标的CM1区域。
修正公式
根据你的需求(提取内容中CM开头到对应下划线前的CM1),可以使用以下公式:
=IF(ISNUMBER(SEARCH("CM",B2)),MID(B2,SEARCH("CM",B2),SEARCH("_",B2,SEARCH("CM",B2))-SEARCH("CM",B2)),"")
公式解释
SEARCH("CM",B2):精准定位到CM在单元格中的起始位置SEARCH("_",B2,SEARCH("CM",B2)):从CM的位置开始向后查找第一个下划线,避免匹配前面的无关下划线- 用后者的位置减去
CM的起始位置,得到需要截取的长度,最终提取出CM1
适配高版本Excel的简洁方案
如果你的Excel版本是365/2021及以上,还可以用更直观的函数组合:
=IF(ISNUMBER(SEARCH("CM",B2)),TEXTBEFORE(TEXTAFTER(B2,"CM"),"L"),"")
(针对原内容中CM1L的结构,提取CM后到L之前的部分,正好得到CM1)
内容的提问来源于stack exchange,提问作者GodKnows
相关产品推荐
相关产品推荐

