跳至主要内容

Excel 通配符:示例指南

了解 Excel 通配符如何提升搜索、替换与公式逻辑的灵活性。探索在筛选、VLOOKUP() 等中使用 *、? 和 ~ 的实用示例。
· 9分钟 阅读

使用 AI 探索

Excel 通配符是帮助用户在大型数据集中执行部分匹配和灵活数据操作的特殊符号。虽然 Excel 不支持完整的正则表达式功能,但您可以通过巧妙的公式结构(如 SEARCH()、TEXT() 和 ISNUMBER() 等函数)来使用通配符。

当您打好 Excel 基础后,掌握通配符会变得更容易。我们的 Introduction to Excel 课程将带您学习界面导航、单元格引用和基础公式等核心技能——为您高效应用本指南中介绍的通配符技巧打下坚实基础。

什么是 Excel 通配符?

通配符是用于替换文本字符串中字符的特殊符号,使您可以搜索模式而非精确匹配。Excel 识别三种通配符,它们在模式匹配和文本操作中各自承担不同的作用。

星号(*)

星号(*)可匹配任意数量的字符,包括零个字符。例如,App* 可匹配 “Apple”、“Application”、“App” 和 “Approach”。

当您知道文本字符串的开头但希望捕获其后的所有变体时,这个通配符非常有用。

问号(?)

问号(?)精确匹配一个字符。使用 B?t 可匹配 “Bat”、“Bet”、“Bit” 和 “But”,但不匹配 “Boat” 或 “Boot”。

这种精确性适用于您知道目标文本的长度和大部分字符的情况。

波浪号(~)

波浪号(~)用作转义字符,使您可以在数据中搜索实际的星号或问号。当您需要查找文本中确实包含 * 或 ? 的字符时,在它们前面加上波浪号可让 Excel 将其视为普通字符而非通配符。

例如,~*Sale 将匹配字面意义上的“*Sale”,而不是将星号视为通配符。

在 Excel 公式中使用通配符

多种 Excel 函数支持通配符,使其在条件计算和查找操作中非常有用。最常用且接受通配符的函数包括 COUNTIF()、COUNTIFS()、SUMIF()、SUMIFS()、AVERAGEIF()、AVERAGEIFS()、SEARCH()、VLOOKUP()、HLOOKUP()、XLOOKUP()、MATCH() 和 XMATCH()。

这些函数都可以利用通配符执行灵活的模式匹配,使您能够有效处理部分数据匹配并应对数据集中存在的差异。

在 COUNTIF() 中使用通配符

当 COUNTIF() 与通配符结合使用以统计符合特定模式的单元格时,尤其有用。以下是一个基本示例:

=COUNTIF(A2:A12, "*AA*")

该公式统计范围 A2:A12 内任意位置包含 “AA” 的所有单元格。位于 “AA” 前后的星号告诉 Excel 匹配其前后任意字符。

对于动态条件,您可以引用包含通配符模式的单元格:

=COUNTIF(A2:A12, E1)

在此情况下,单元格 E1 可以包含 “*AA*” 或任何其他通配符模式。此方法允许您在不修改公式本身的情况下更改搜索条件,使电子表格更灵活、易用。

在 VLOOKUP() 和 XLOOKUP() 中使用通配符

查找函数可以使用通配符进行部分匹配,这在查找值并非精确匹配时非常有用。以下是两种用法的示例:

=VLOOKUP("John*", A:C, 2, FALSE)

此 VLOOKUP() 公式会在 A 列中搜索以 “John” 开头的任何条目,并返回第 2 列中相应的值。参数 FALSE 确保函数使用精确匹配模式,这是实现通配符功能所必需的。

对于 XLOOKUP(),语法略有不同:

=XLOOKUP("*Adams", A:A, C:C, "Not found", 2)

匹配模式参数(2)告诉 XLOOKUP() 使用通配符匹配。此公式查找以 “Adams” 结尾的任何条目,并返回 C 列中的相应值。如果没有匹配项,将返回 “Not found”。

IF() 的通配符替代方案

虽然 IF() 不直接支持通配符,但可以将 IF() 与 COUNTIF() 组合以实现类似功能:

=IF(COUNTIF(A1, "Amy*"), "Yes", "No")

该公式检查单元格 A1 是否包含以 “Amy” 开头的文本;若包含,返回 “Yes”,否则返回 “No”。COUNTIF() 负责通配符匹配,而 IF() 对结果进行判断。

在 SUMIF() 中使用通配符

SUMIF() 可以基于通配符条件求和,对于聚合具有相似模式的数据非常有用:

=SUMIF(A:A, "*a*", C:C)

该公式对 C 列中对应 A 列任意位置包含字母 “a” 的行的数值求和。通配符模式 “*a*” 可捕获任意位置包含 “a” 的文本。

在 Excel 工具中使用通配符

通配符不仅用于公式,还可在多种 Excel 工具中用于搜索、匹配和筛选数据。即使不编写复杂公式,这些内置功能也能让通配符发挥作用。

在“查找和替换”中使用通配符

Excel 的查找和替换对话框支持通配符来定位数据中的可变模式。要启用通配符功能,需在查找和替换对话框中勾选“Use wildcards”(使用通配符)选项。

您可以使用星号(*)查找长度不一的模式。例如,搜索 “Product*X” 将定位到 “Product-A-X”、“Product-Premium-X” 和 “Product-X”。类似地,问号(?)有助于查找特定字符位置的模式,例如用 “20??” 查找以 “20” 开头的任意四位数字。

当您需要在数据中搜索实际的星号或问号时,请使用波浪号(~)作为转义字符。搜索 “~*Sale” 会找到包含字面文本 “*Sale” 的单元格,而不会将星号视为通配符。

在筛选和搜索功能中使用通配符

Excel 的筛选功能支持通配符,特别适用于“包含”“开头是”“结尾是”等文本筛选。这些筛选在您将通配符包含到条件中时会自动解析它们。

例如,在“开头是”选项中应用 “Jo*” 筛选,将显示所有以 “Jo” 开头的姓名——包括 “John”、“Joseph”、“Joan” 和 “Jonathan”。这种做法适合无需编写公式的快速数据探索。

不过,与高级筛选相比,内置搜索功能仍有一定局限。尽管基础通配符模式效果良好,但更复杂的多条件筛选可能需要将通配符与自定义公式结合,或使用 Excel 的高级筛选以实现更精细的模式匹配。

与数字配合使用通配符

将通配符用于数字需要特别注意,因为 Excel 将通配符操作视为基于文本的函数。当您将通配符模式应用于数值数据时,Excel 会自动将数字转换为文本,这可能导致匹配行为与预期不符。

为有效匹配数字,您有多种替代方案。可以使用 TEXT() 函数、文本分列,或针对该目的设计的特定公式,将数字转换为文本。

一种实用方法是组合使用 SEARCH()、ISNUMBER() 和 SUMPRODUCT() 函数:

=SUMPRODUCT(--(ISNUMBER(SEARCH("4", B2:B12))))

该公式统计范围 B2:B12 中包含数字 “4” 的单元格数量(无论其位置)。若要对包含特定模式的数字对应的数值求和,可以扩展此方法:

=SUMPRODUCT(--(ISNUMBER(SEARCH("4*", TEXT(B2:B12,"0")))), C2:C12)

该公式对 C 列中,与 B 列对应数字包含 “4” 后跟任意数字的行的数值求和。

对于日期匹配,使用 TEXT() 将日期转换为可搜索的文本模式:

=TEXT(C2:C12, "mmddyyyy")

这会将日期转换为一致的文本格式,使通配符可以有效处理。随后,您可以应用通配符来查找特定的日期组件:

=COUNTIF(TEXT(C2:C12,"mmddyyyy"),"*0525*")

该公式统计包含 “0525”(任意年份的 5 月 25 日)的日期数量。

某些情形下会有以文本形式存储的数字,如邮编、产品 ID 或参考编号。在这些情况下,可以直接将它们作为文本字符串用通配符匹配。例如,按 “123*” 筛选会匹配 “12345”、“123-AB” 和 “123XYZ”,而 “??-45” 会匹配 “AB-45”、“12-45” 和 “XY-45”。

通配符的限制与意外情况

并非所有 Excel 函数都支持通配符功能,这可能在您期望某些公式能进行模式匹配时造成困惑。例如,IF() 并不直接接受通配符,需要像前文所示那样与 COUNTIF() 组合使用的替代方案。

通配符仅在公式中对文本有效,意味着必须先将数值转换为文本,通配符操作才能有效处理。这一文本转换要求若被忽视,可能导致出乎意料的结果。

使用宽泛通配符模式进行查找时,要警惕误匹配。例如,当您只想匹配 “Smith” 时,VLOOKUP("*Smith*", ...) 可能返回 “Smithson”“Blacksmith” 或 “Goldsmith” 等非预期结果。为避免捕获不需要的结果,需要谨慎设计匹配模式。

另一种常见意外与数据中的前后空格有关。通配符会将空格视为字符,因此 “John*” 不会匹配 “ John”(带前导空格)。在使用通配符时,进行数据清洗以确保一致性尤为重要。

此外,通配符匹配默认不区分大小写。这意味着 “apple*” 会匹配 “Apple”“APPLE” 和 “ApPlE”。这对一般搜索很方便,但如果您需要区分大小写,可能会带来意外匹配。要实现区分大小写的匹配,可考虑结合使用 FIND() 和 ISNUMBER()。

在 Excel 中使用通配符的建议

通配符非常擅长合并模糊匹配的数据,尤其适用于处理拼写不一致或数据录入存在差异的情况。例如,数据集中可能同时出现 “Homel” 和 “Gomel” 表示同一地点。使用 “*omel” 等通配符模式可帮助识别并整合这些相似条目。

电话号码格式在不同数据集之间常常不一致,前缀或国家代码可能不同。您可以使用通配符来规范这些不一致之处。例如,您可以使用查找和替换将英国的国际格式号码转换为本地格式:

Find: 44??????????
Replace with: 0

此模式匹配以 “44” 开头且后跟十位数字的任意英国号码,可将 “447123456789” 等号码有效转换为 “07123456789”,实现一致的本地格式。

当您需要从通配符匹配中排除特定结果时,可组合多个 SUMIF() 或 COUNTIF() 函数。此技巧适用于减去不需要的匹配:

=SUMIF(..., "00123H*") - SUMIF(..., "00123H*-SP")

该公式对匹配 “00123H*” 的所有值求和,但排除以 “-SP” 结尾的项,从而让您对通配符匹配拥有更精确的控制。

通过 REPLACE()、SUBSTITUTE() 或 TEXT() 等函数进行格式化变更,与通配符配合良好。这些函数可以在应用通配符操作之前或之后清洗并标准化数据,确保分析结果一致。

处理产品代码或参考编号时,通配符有助于识别模式与例外。您可以使用 *-TEMP 查找所有临时代码,或用 ??-??-???? 定位遵循特定格式结构的条目,从而更高效地进行数据验证与清理。

结语

无论您是在合并相似条目、统一电话号码格式,还是在大型数据集中按特定模式进行筛选,通配符都为精确匹配提供了实用替代方案。它们架起了基础文本搜索与更复杂正则功能之间的桥梁,使模式匹配能够在熟悉的 Excel 环境中触手可及。

若要在通配符之外进一步提升您的 Excel 能力,我们的 Excel Fundamentals 技能路径提供涵盖数据准备、分析与可视化技术的完整学习路线。若您已准备好在分析场景中应用这些技能,我们的 Data Analysis in Excel 课程将带来数据透视表和高级逻辑函数的实操体验,与您在此学习的模式匹配技能相辅相成。

Vinod Chugani

作者

Vinod Chugani

Vinod Chugani 的职业生涯始于东京,曾任摩根大通最年轻的对冲基金销售台负责人,随后在雷曼兄弟创下个人销售纪录,之后又打造了覆盖 30 个国家的电子分销业务,营收突破 1 亿新元,随后转向数据领域。他毕业于杜克大学经济学专业,亦为 NYC Data Science Academy 校友,并在 100 多名申请者中成为Hugo Bowne-Anderson 在 Maven 开设的 “Building AI Applications” 课程的三位奖学金获得者之一。目前,他为 DataCamp、KDnuggets、Machine Learning Mastery 和 Statology 撰稿,内容涵盖从统计学到代理式 AI 等主题,并在 NYC Data Science Academy 指导数据从业者,已完成超过 1,000 场一对一辅导。

 

常见问题

Excel 中的三种通配符是什么?

Excel 使用三种通配符:*(星号)匹配任意数量字符,?(问号)精确匹配一个字符,~(波浪号)用于转义通配符并将其视为字面文本。

哪些 Excel 函数支持通配符?

支持通配符的常见函数包括 COUNTIF()、SUMIF()、VLOOKUP()、XLOOKUP()、SEARCH()、MATCH(),以及它们的变体如 COUNTIFS() 和 SUMIFS()。

为什么通配符在我的公式中对数字不起作用?

通配符仅适用于文本,因此在使用通配符模式时,Excel 会自动将数字转换为文本。请在应用通配符操作前使用 TEXT() 函数将数字转换,以获得一致结果。

我可以在 Excel 的“查找和替换”功能中使用通配符吗?

可以。通配符可用于查找和替换,但您必须在对话框中勾选 Use wildcards 选项。若要搜索实际的星号或问号,请在 * 或 ? 前加上 ~。

我可以在 Excel 的 IF() 函数中使用通配符吗?

IF() 函数不直接支持通配符,但您可以将其与 COUNTIF() 组合,例如:=IF(COUNTIF(A1,"Amy*"),"Yes","No"),以实现通配符功能。

为什么我的通配符模式未匹配到所有预期结果?

请检查数据中的前后空格,确保文本格式一致,并确认使用了正确的通配符符号。通配符不区分大小写,但会受到多余空格和格式差异的影响。

主题