繁体   English   中英

使用布尔值,match或sumif将Excel字符串与转义字符进行比较

[英]Excel string comparisons with escape character, using boolean, match or sumif

当我在数据库中进行文本比较时,我注意到一些奇怪的行为。 在我的数据库中,我想基于包含字符串的列求和。 在此示例中,我想使用以下字符串值创建一个str组和一个txt组。

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

如果我将文本与simpel布尔值(即=(“ 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

为什么布尔字符串比较返回False ,而MATCHSUMIFS假定为True

仅有限数量的Excel工作表函数可以使用通配符来过滤结果。 像功能COUNTIFVLOOKUPMATCH等,作为上市这里是使用通配符一些Excel函数。

除链接中列出的功能外,在双引号中使用通配符*其含义与文字相同。

在我看来,这两个函数均采用星号的通配符解释,而带有'='的直接比较公式会将其当作引号内字符串中的另一个字符(额外),从而使两个字符串不同。

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

我希望这是有道理的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM