Excel数据问题求解:适用的查找公式有哪些?附数据求助
Excel常用查找公式及你的数据问题解法
一、实用的Excel查找类公式
VLOOKUP:经典垂直查找,按列匹配目标值XLOOKUP(仅Excel 365/2021及以上):比VLOOKUP灵活,支持正向/反向、精确/通配符匹配INDEX+MATCH:组合用法,适配各种查找场景,不受列顺序限制LOOKUP:单条件下的近似或精确查找FIND/SEARCH:定位文本内特定字符的位置,常配合提取类函数使用
二、针对你数据场景的具体解决办法
从表格数据来看,A列是带序号的文本(比如1. Apple),B列是单独的序号,要在C列提取对应名称,结合查找和文本提取函数就能解决:
方法1:INDEX+MATCH+MID+FIND(全版本Excel通用)
假设B2是要匹配的序号,在C2输入公式:
=MID(INDEX(A:A,MATCH(B2&".*",A:A,0)),FIND(". ",INDEX(A:A,MATCH(B2&".*",A:A,0)))+2,99)
步骤拆解:
MATCH(B2&".*",A:A,0):用通配符*匹配A列里以「序号+点」开头的单元格,找到对应行号INDEX(A:A,行号):提取该行的完整文本(比如1. Apple)FIND(". ",文本):定位文本里.的位置,再用MID从该位置+2处开始,提取后面的所有内容(即名称部分)
如果只需要提取带序号的完整文本,直接用:
=INDEX(A:A,MATCH(B2&".*",A:A,0))
方法2:XLOOKUP(高版本Excel更简洁)
如果你的Excel是365或2021版本,用XLOOKUP更省事:
提取名称:
=MID(XLOOKUP(B2&".*",A:A,A:A,"未找到",2),FIND(". ",XLOOKUP(B2&".*",A:A,A:A,"未找到",2))+2,99)
说明:XLOOKUP的第5参数设为2,支持用*这类通配符匹配
方法3:反向匹配(从带序号文本提取名称)
要是表格是B列存1. Apple这类文本,A列是序号,要直接提取名称,用这个公式:
=MID(B2,FIND(". ",B2)+2,99)
配合VLOOKUP匹配序号的话:
=VLOOKUP(A2,CHOOSE({1,2},LEFT(B2,FIND(". ",B2)-1),MID(B2,FIND(". ",B2)+2,99)),2,0)
三、FIND函数基础用法
FIND(要查找的字符, 目标文本, [起始查找位置]):返回字符在文本中的具体位置,区分大小写;不需要区分大小写的话,换成SEARCH即可。比如FIND(". ","1. Apple")会返回3,因为. 在文本的第3位。
内容的提问来源于stack exchange,提问作者Shahjahan Begum
相关产品推荐
相关产品推荐

