场景1:提取【括号】内的内容
核心公式:
=MID(A2,FIND("(",A2)+1,FIND(")",A2)-FIND("(",A2)-1)
注意:括号需要区分中英文状态,否则会报错。
优化公式:
=IFERROR(MID(A3,FIND("(",A3)+1,FIND(")",A3)-FIND("(",A3)-1),"无匹配项")
场景2:提取【逗号】前/后的内容
①提取逗号前
核心公式:
=LEFT(A2,FIND(",",A2)-1)
注意:逗号需要区分中英文状态,否则会报错。
优化公式:
=IFERROR(LEFT(A7,FIND(",",A7)-1),"无匹配项")
②提取逗号后
核心公式:
=RIGHT(A2,LEN(A2)-FIND(",",A2))
优化公式:
=IFERROR(RIGHT(A7,FIND(",",A7)-1),"无匹配项")
③提取第N个逗号后
核心公式1(全版本通用):
=MID(A2,FIND("@",SUBSTITUTE(A2,",","@",N))+1,LEN(A2))
优化公式1(全版本通用):
=IFERROR(MID(A5,FIND("@",SUBSTITUTE(A5,",","@",N))+1, LEN(A5)), "无匹配项")
备注:
N表示提取的第N个逗号,后同;
@标记作用,可以替换成其他不常用的符号,后同。
注意:符号区分中英文,后同。
核心公式2(Microsoft 365/ Excel 2024):
=TEXTAFTER(A2,",",N)
优化公式2(Microsoft 365/ Excel 2024):
=IFERROR(TEXTAFTER(A5,",",N),"无匹配项")
④提取第N个逗号前
核心公式1(全版本通用):
=LEFT(A2,FIND("@",SUBSTITUTE(A2,",","@",N))-1)
优化公式1(全版本通用):
=IFERROR(LEFT(A5,FIND("@",SUBSTITUTE(A5,",","@",N))-1),"无匹配项")
核心公式2(Microsoft 365/ Excel 2024):
=TEXTBEFORE(A2,",",N)
优化公式2(Microsoft 365/ Excel 2024):
=IFERROR(TEXTBEFORE(A5,",",N),"无匹配项")
⑤提取第M个逗号和第N个逗号之间的内容
优化公式1(全版本通用):
=IFERROR(MID(A2,FIND("@",SUBSTITUTE(A2,",","@",M))+1,FIND("@",SUBSTITUTE(A2,",","@",N))-FIND("@",SUBSTITUTE(A2,",","@",M))-1),"无匹配项")
优化公式2(Microsoft 365/ Excel 2024):
=IFERROR(INDEX(TEXTSPLIT(A2,","),N),"无匹配项")
注意:公式2与公式1有差异
公式1的M和N均需保证单元格存在对应位置的符号,否则报错;
公式2表示先按照特定符号切割,然后再取对应位置上的数据。
