在Excel中查询部分文本匹配(5种方法)

  • Share This
Hugh West

在Microsoft Excel中,有几种有用的方法来查询部分文本匹配,然后根据该特定匹配提取数据。 在这篇文章中,你将学习所有合适的方法来查询Excel中的部分文本匹配,其中包含不同的查询函数和公式。

下载实践工作手册

你可以下载我们用来准备这篇文章的Excel工作簿。

查询部分文本匹配.xlsx

5种合适的方法来查询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函数有关的其他文章。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.