Table of contents
关于通配符,你需要知道的一切都在一页上:通配符是什么,如何在Excel中最好地使用它们,以及为什么通配符对数字不起作用。
当你在寻找某样东西但又不确定到底是什么时,通配符是一个完美的解决方案。 你可以把通配符想象成一个可以具有任何价值的小丑。 在Excel中只有3个通配符(星号、问号和梯形符号),但它们可以做很多有用的事情。
Excel通配符
在Microsoft Excel中,通配符是一种特殊的字符,可以替代任何其他字符。 换句话说,当你不知道一个确切的字符时,你可以在那个地方使用通配符。
Excel识别的两个常见的通配符是星号(*)和问号(?)。 连字符(~)迫使Excel将这些字符视为常规字符,而非通配符。
通配符在你需要部分匹配的任何情况下都很方便。 你可以用它们作为过滤数据的比较标准,找到有某些共同部分的条目,或者在公式中进行模糊匹配。
星号作为通配符
星号(*)是最通用的通配符,可以代表 任何数量的字符 比如说。
- ch* - 匹配任何以 "ch "开头的单词,如 查尔斯 , 检查 , 国际象棋 ,等等。
- *ch - 替换任何以 "ch "结尾的文本字符串,如 三月 , 寸 , 取 ,等等。
- *ch* - 代表在任何位置包含 "ch "的任何单词,如 乍得 , 头疼的问题 , 拱门 ,等等。
作为通配符的问号
问号(?)代表 任何单一字符 .它可以帮助你在搜索部分匹配时更加具体。 例如。
- ? - 匹配任何包含一个字符的条目,例如 "a"、"1"、"-"等。
- ?-替换任何两个字符,例如 "ab"、"11"、"a*",等等。
- 代表任何包含2组3个字符的字符串,用连字符分隔,如 ABC-DEF , ABC-123 , 111-222 ,等等。
- 尊敬的先生 - 匹配 价格 , 骄傲 , 奖品 ,以及类似的情况。
作为通配符的提尔德
放在通配符前的连字符(~)。 取消通配符的效果 并把它变成字面的星号(~*),字面的问号(~?),或字面的蒂尔德(~~)。 例如:。
- *~? - 找到任何以问号结尾的条目,例如 什么? , 有人在吗? ,等等。
- *~** - 找到任何含有星号的数据,例如:***。 *1 , *11* , 2020年3月1日*。 在这种情况下,第1个和第3个星号是通配符,而第2个星号表示一个字面的星号字符。
在Excel中查找和替换通配符
在Excel的查找和替换功能中,通配符的用途相当广泛。 下面的例子将讨论一些常见的情况,并提醒你注意一些注意事项。
如何用通配符搜索
在默认情况下, 查找和替换 对话框被配置为在单元格的任何地方寻找指定的标准,而不是匹配整个单元格内容。 例如,如果您使用 "AA "作为搜索标准,Excel将返回所有包含它的条目,如 AA-01 , 01-AA , 01-AA-02 这在大多数情况下是很好的,但在某些情况下可能是一个复杂的问题。
在下面的数据集中,假设你想找到由4个字符组成的、用连字符分隔的ID。 因此,你打开 查找和替换 对话框(Ctrl + F),输入 ??-?? 在 发现什么 框,并按 查找所有 结果看起来有点令人费解,不是吗?
从技术上讲,像这样的字符串 AAB-01 或 BB-002 要从结果中排除这些,请点击 选择 按钮,并检查 匹配整个单元格内容 现在,Excel将把结果限制在只有?-?的字符串上。
如何用通配符替换
如果你的数据包含一些模糊的匹配,通配符可以帮助你快速定位并统一它们。
在下面的截图中,你可以看到同一个城市的两种拼写变化 ホール 和 戈梅利 我们希望用另一个版本取代这两个版本 侯麦尔 .(是的,我的家乡城市的三种拼法都是正确的,并被普遍接受 :)
要替换部分匹配,这是你需要做的。
- 按Ctrl + H打开 替换 选项卡的 查找和替换 对话。
- 在 发现什么 框,输入通配符表达式。 およびことがあります。
- 在 替换为 框,键入替换文本。 侯麦尔
- 点击 全部替换 按钮。
并观察其结果。
如何查找和替换通配符
要找到一个被Excel识别为通配符的字符,即字面的星号或问号,在你的搜索条件中包括一个tilde(~)。 例如,要找到所有包含星号的条目,在 "查找什么 "框中输入~*。
如果你想用其他东西来代替星号,请切换到 替换 选项卡,并在 "我 "中输入感兴趣的字符。 替换为 要删除所有发现的星号字符,请将 替换为 框为空,然后点击 替换所有 .
在Excel中用通配符过滤数据
当你有一大列数据并希望根据条件过滤这些数据时,Excel通配符也会非常有用。
在我们的样本数据集中,假设你想过滤以 "B "开头的ID。 为此,请执行以下操作。
- 为页眉单元格添加过滤器,最快的方法是按Ctrl + Shift + L快捷键。
- 在目标栏中,点击过滤下拉箭头。
- 在 搜索 框,输入你的标准。 B* 在我们的案例中。
- 点击 认可 .
这将根据你的通配符标准立即过滤数据,如下所示。
通配符也可以与高级过滤器一起使用,这可以使它成为正则表达式(也称为 铰链 欲了解更多信息,请参见Excel高级过滤通配符。
带通配符的Excel公式
首先,应该注意的是,支持通配符的Excel函数数量相当有限。 下面是一个最常用的函数列表,其中有公式示例。
带有通配符的AVERAGEIF - 找到满足指定条件的单元格的平均值(算术平均值)。
AVERAGEIFS - 返回满足多个条件的单元格的平均值。 与上面例子中的AVERAGEIF一样,允许通配符。
带有通配符的COUNTIF--根据一个标准来计算单元格的数量。
带通配符的 COUNTIFS - 根据多个标准计算单元格的数量。
带通配符的SUMIF--对有条件的单元格求和。
SUMIFS - 添加具有多个条件的单元格。 像上面例子中的SUMIF一样,接受通配符。
带有通配符的VLOOKUP - 执行部分匹配的垂直查找。
带有通配符的HLOOKUP - 做一个部分匹配的水平查询。
带有通配符的XLOOKUP - 在一列和一行中执行部分匹配查询。
带有通配符的MATCH公式 - 找到一个部分匹配,并返回其相对位置。
带通配符的XMATCH - MATCH函数的现代继承者,也支持通配符匹配。
带通配符的搜索 - 与区分大小写的FIND功能不同,不区分大小写的搜索功能可以理解通配符。
如果你需要用其他不支持通配符的函数做部分匹配,你将不得不想出一个像Excel IF通配符公式那样的变通办法。
下面的例子展示了在Excel公式中使用通配符的一些一般方法。
Excel COUNTIF通配符公式
假设你想计算A2:A12区域中包含文本 "AA "的单元格的数量。 有三种方法可以完成这个任务。
最简单的方法是直接将通配符包含在 标准 争论。
=countif(a2:a12, "*aa*")
在实践中,这样的 "硬编码 "并不是最好的解决方案。 如果标准在以后发生变化,你将不得不每次都编辑你的公式。
你可以在某个单元格中输入标准,例如E1,然后用通配符连接单元格引用,而不是在公式中输入标准。 你的完整公式将是:
=COUNTIF(A2:A12,"*"&E1&"*")
或者,你可以在标准单元格(E1)中输入一个通配符字符串(在我们的例子中为*AA*),并在公式中只包括单元格参考。
=countif(a2:a12, e1)
这三种配方都会产生相同的结果,所以使用哪一种是你个人的偏好问题。
注意:通配符搜索 不区分大小写 ,因此该公式同时计算大写和小写字符,如 AA-01 和 aa-01 .
Excel通配符VLOOKUP公式
当你需要寻找一个在源数据中没有完全匹配的值时,你可以使用通配符来寻找一个部分匹配。
在这个例子中,我们要查找以特定字符开头的ID,并从B列返回其价格。 独特的零件 的目标ID在单元格D2、D3和D4中,并使用这个公式来获得结果。
=VLOOKUP(D2& "*", $A$2:$B$12, 2, FALSE)
上面的公式指向E1,由于巧妙地使用了相对和绝对单元格引用,它正确地复制到下面的单元格。
注意:由于Excel VLOOKUP函数返回第一个找到的匹配值,你在使用通配符搜索时应该非常小心。 如果你的查找值在查找范围内匹配多个值,你可能得到误导性的结果。
Excel的数字通配符
有时人们会说,Excel中的通配符只适用于文本值,而不是数字。 然而,这并不完全正确。 使用 查找和替换 功能,以及 过滤器 ,通配符对文本和数字都能正常工作。
用通配符号码查找和替换
在下面的截图中,我们使用*4*作为搜索条件来搜索包含数字4的单元格,Excel既能找到文本字符串也能找到数字。
用通配符号码过滤
同样,Excel的自动过滤功能在过滤含有 "4 "的数字时也没有问题。
为什么Excel通配符对公式中的数字不起作用?
在公式中使用数字通配符是另一回事。 将通配符与数字一起使用(无论你是用通配符包围数字还是连接单元格引用),都会将数字值转换为文本字符串。 结果,Excel无法识别数字范围中的字符串。
例如,下面两个公式都能很好地计算出含有 "4 "的字符串的数量。
=counttif(a2:a12, "*4*" )
=COUNTIF(A2:A12, "*"&E1& "*" )
但两者都不能识别数字中的数字4。
如何使通配符适用于数字
最简单的解决方案是将数字转换成文本(例如,通过使用文本到列的功能),然后做一个常规的VLOOKUP、COUNTIF、MATCH等。
例如,要获得以下细胞的数量 开始 E1中的数字,公式为。
=COUNTIF(B2:B12, E1& "*" )
如果这种方法实际上不能被接受,你将不得不为每个特定的情况制定自己的公式。 唉,一个通用的解决方案并不存在 :( 下面,你会发现几个例子。
例1.Excel的数字通配符公式
这个例子显示了如何计算含有特定数字的数字。 在下面的示例表中,假设你想计算B2:B12范围内有多少数字含有 "4"。 下面是要使用的公式。
=sumproduct(--(isnumber(search("4", b2:b12)))))
这个公式如何运作
由内而外的工作,以下是该公式的作用。
SEARCH函数在范围的每个单元格中寻找指定的数字,并返回其位置,如果没有找到,则出现#VALUE错误。 其输出是以下数组。
{#value!;1;#value!;#value!;3;#value!;#value!;1;#value!;#value!}
ISNUMBER函数从这里开始,将任何数字改为TRUE,错误改为FALSE。
{false;true;false;false;true;false;false;true;false;false;false}。
双重单数运算符(--)将TRUE和FALSE分别胁迫为1和0。
{0;1;0;0;1;0;0;1;0;0;0}
最后,SUMPRODUCT函数将1相加并返回计数。
注意:当在你的工作表中使用类似的公式时,在任何情况下,你都不应该在搜索功能中包括"$"或任何其他货币符号。 请记住,这只是应用于单元格的一种 "视觉 "货币格式,基础值仅仅是数字。
例2.日期的通配符公式
上面讨论的SUMPRODUCT公式对数字很有效,但对日期就会失败。 为什么呢? 因为在Excel内部,日期是作为序列号来存储的,公式会处理这些数字,而不是单元格中显示的日期。
为了克服这个障碍,利用TEXT函数将日期转换为文本字符串,然后将字符串送入搜索函数。
根据你所要统计的具体内容,文本格式可能有所不同。
要计算C2:C12中所有在日、月或年中有 "4 "的日期,使用" mmddyyyy" :
=SUMPRODUCT(--(ISNUMBER(SEARCH("4",TEXT(C2:C12, "mmddyyyy"))))))
如果只计算 天 含有 "4 "的月份和年份不计,使用" dd" 文本格式。
=SUMPRODUCT(--(ISNUMBER(SEARCH("4",TEXT(C2:C12, "dd"))))))
这就是在Excel中使用通配符的方法。 我希望这些信息能在你的工作中证明是有用的。 无论如何,我感谢你的阅读,并希望下周在我们的博客上见到你
供下载的实践工作手册
Excel公式中的通配符(.xlsx文件)