如何用Excel函数提取单元格子字符串(无需VBA)
Excel无VBA提取指定键对应的子字符串方法
针对你给出的示例(单元格内容为“A:Red B:Blue C:Orange”,提取B对应的值“Blue”),以下是两种无需VBA的Excel函数实现方案:
方案1:适用于Excel 365/2021及以上版本(函数更简洁)
利用TEXTAFTER和TEXTBEFORE函数组合,假设目标内容在单元格A1,公式如下:
=TRIM(TEXTBEFORE(TEXTAFTER(A1,"B:")," "))
逻辑说明:
TEXTAFTER(A1,"B:")提取出"B:"之后的所有内容,即"Blue C:Orange"TEXTBEFORE(..., " ")截取上述结果中第一个空格前的部分,即"Blue"TRIM用于去除可能存在的多余空格
方案2:兼容旧版Excel(如2019及更早版本)
使用MID、FIND和LEN函数组合,同样假设内容在A1:
=TRIM(MID(A1,FIND("B:",A1)+2,IFERROR(FIND(" ",A1,FIND("B:",A1))-FIND("B:",A1)-2,LEN(A1)-FIND("B:",A1)-1)))
逻辑说明:
FIND("B:",A1)定位"B:"在字符串中的起始位置,加2跳过"B:"本身IFERROR(...)处理两种情况:- 如果"B:"后存在空格,用该空格的位置减去"B:"的位置再减2,得到要提取的字符长度
- 如果"B:"是最后一个键(如字符串为"A:Red B:Blue"),则取从"B:"后到字符串末尾的长度
MID根据计算出的起始位置和长度截取子字符串,最后用TRIM清理空格
内容的提问来源于stack exchange,提问作者Teresa Sergiel
相关产品推荐
相关产品推荐

