Table of contents
在Microsoft Excel中,有几种有用的方法来查询部分文本匹配,然后根据该特定匹配提取数据。 在这篇文章中,你将学习所有合适的方法来查询Excel中的部分文本匹配,其中包含不同的查询函数和公式。
下载实践工作手册
你可以下载我们用来准备这篇文章的Excel工作簿。
查询部分文本匹配.xlsx5种合适的方法来查询Excel中的部分文本匹配
1.在Excel中用VLOOKUP进行部分文本匹配
在下图中,有一个表格包含了一些学生在考试中的不同科目的分数。 现在根据部分匹配的文本,从 B栏 ,我们将提取一个学生在某一科目中的分数。
例如,我们可以寻找文本 "嘀" 栏中的 命名 根据部分匹配,我们将找出该学生的实际姓名,然后从表中提取相应学生的数学分数。
在这个例子中,我们将使用 VLOOKUP 这个VLOOKUP函数的通用公式是。
=VLOOKUP(lookup_value, table_array, col_index_number, [range_lookup])
因为我们要调出一个学生的数学分数,他的名字中包含了以下文字 "嘀" ,所以输出中需要的公式是 细胞D17 将是。
=vlookup(d16,b5:g14,5,false)
或者。
=VLOOKUP("*Tick*",B5:G14,5,FALSE)
在按下 进入 ,你会马上看到Tickner的数学分数。
阅读更多。 如何在Excel中使用VLOOKUP进行部分匹配(4种方法)
2.用INDEX-MATCH函数查找部分文本匹配
现在我们将使用组合的 索引 和 匹配 INDEX函数返回给定范围内特定行和列交汇处的单元格的值或引用,MATCH函数返回数组中按指定顺序匹配指定值的项目的相对位置。
我们要找到一个与前一个方法类似的输出。 因此,在这一节中,输出中所要求的公式是 细胞D18 将是。
=index(b5:g14,match(d17,b5:b14,0), match(d17,b4:g4,0))
或者。
=INDEX(B5:G14,MATCH("*Tick*",B5:B14,0),MATCH(D17,B4:G4,0))
现在按 进入 而该公式将返回91--Tickner在数学上获得的分数。
在这个公式中,两个 匹配 函数分别定义了学生姓名和科目的行号和列号。 索引 函数然后返回那些定义的数组的行号和列号的交叉点的值。
阅读更多。 如何使用INDEX和匹配进行部分匹配(2种方法)
3.带通配符的XLOOKUP查询部分文本匹配
ǞǞǞ XLOOKUP 函数在一个范围或数组中搜索匹配项,并从第二个范围或数组中返回相应的项。 该函数的通用公式为:。
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode] )
现在我们将使用这个 XLOOKUP 函数直接提取姓名中含有该文本的学生的数学分数 "嘀" 里面。
在输出中 细胞D18 ,所需的公式将是。
=XLOOKUP("*"&D16&"*",B5:B14,F5:F14,,2)
在按下 进入 ,你会看到与前两个例子中类似的输出。
在这个函数中,我们用2作为[match_mode]参数,表示通配符匹配。 如果你不使用这个参数,该函数将返回 #N/A 错误,因为在默认情况下,该函数将寻找完全匹配而不是通配符匹配。
4.结合XLOOKUP、ISNUMBER和SEARCH函数来查找部分文本匹配
如果你选择在查找功能中避免使用通配符,那么你必须应用以下组合公式 XLOOKUP, ISNUMBER, 和 Search 职能。
ǞǞǞ 身份证号码(ISNUMBER 函数检查一个单元格的值是否为数字值。 搜索 这两个函数的通用公式如下。
=ISNUMBER(value)
而且
=SEARCH(find_text, within_text, [search_num])
因此,输出中所要求的公式是 细胞D18 将是。
=xlookup(true,isnumber(search(d16,b5:b14)) ,f5:f14)
在按下 进入 ,结果的数值将立即显示出来。
🔎 这个公式是如何工作的?
- ǞǞǞ 搜索 函数查找文本 '嘀'。 在单元格的范围内 B5:B14 并返回一个数组。
{#value!;#value!;1;#value!;#value!;#value!;#value!;#value!;#value!;#value!}
- ǞǞǞ 身份证号码(ISNUMBER 函数然后在该数组中搜索数字值,并返回另一个布尔值数组。
{false;false;true;false;false;false;false;false;false}。
- ǞǞǞ XLOOKUP 函数然后寻找指定的布尔值-- 是的 的数组中,并提取该值在数组中的行号。 B5:B14 .
- 最后,根据返回数组的 F5:F14 ,在 XLOOKUP 函数引出名字中包含文本--的学生的数学分数。 '嘀'。 里面。
5.使用FILTER、ISNUMBER和SEARCH函数查询部分文本匹配情况
在最后一种方法中,我们将使用以下组合 FILTER, ISNUMBER, and SEARCH 职能。 筛选器 此处的函数根据给定的条件过滤一个单元格范围或一个数组。 该函数的通用公式为:。
=FILTER(array, include, [if_empty])
由于我们处理的是一个类似的数据集,所以需要的公式与 筛选器 在输出中的函数 细胞D18 将是。
=filter(f5:f14,isnumber(search(d16,b5:b14)))
现在按 进入 你就会立即得到结果值。
在这个公式中, 筛选器 函数过滤单元格的范围- F5:F14 基于布尔值- 为真 仅限。 身份证号码(ISNUMBER 和 搜索 函数返回布尔值的数组------。 为真 和 失败 并定义了第二个参数 (包括) 的。 筛选器 功能。
结论性的话语
我希望上面提到的所有方法现在可以帮助你根据Excel电子表格中的部分文本匹配来提取数据。 如果你有任何问题或反馈,请在评论区告诉我。 或者你可以查看我们网站上与Excel函数有关的其他文章。