使用布尔值,匹配或sumif,使用转义字符对Excelstring进行比较

当我在数据库中进行文本比较时,我注意到一些奇怪的行为。 在我的数据库中,我想根据包含string的列SUM值。 在这个例子中,我想使用下面的string值来创build一个组str和一个组txt

 str 2 str1 1 str2 0 txt 1 txt1 2 tx2 3 

如果我用simpel boolean比较文本,即=(“str”=“str *”),它将返回False ,因为*是一个额外的字符。 这在某种程度上是有道理的。 但是,当我使用其他两种技术时,比较处理方式不同:

首先,以下简单的SUMIFS函数: =SUMIFS(B:B;A:A;"str*")=SUMIFS(B:B;A:A;"txt*")包括“str”和“ txt“,表明比较是True

第二, =Match("str*";{Cell containing "str"};0)返回1,表示比较结果也返回True

为什么布尔string比较返回False ,而MATCHSUMIFS都假设为True

在我看来,这两个函数使用星号的通配符解释,而用'='的直接比较公式将其作为引号内string中的另一个(额外)字符,因此使两个string不同。

在Match()函数中:如果match_type为0且lookup_value为文本,则lookup_value可以包含通配符星号(*)和问号(?)。 星号匹配任何字符序列; 问号匹配任何单个字符。

我希望这是有道理的。

只有有限数量的Excel工作表函数可以使用通配符来筛选结果。 这里列出的function(如COUNTIFVLOOKUPMATCH等)是一些使用通配符的Excel函数。

除了链接中列出的function之外,通配符*在双引号中使用时将被视为文字。