![](/img/trans.png)
[英]Trying to sum values in excel table using column data comparisons and sumif
[英]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
,而MATCH
和SUMIFS
假定为True
?
仅有限数量的Excel工作表函数可以使用通配符来过滤结果。 像功能COUNTIF
, VLOOKUP
, MATCH
等,作为上市这里是使用通配符一些Excel函数。
除链接中列出的功能外,在双引号中使用通配符*
其含义与文字相同。
在我看来,这两个函数均采用星号的通配符解释,而带有'='的直接比较公式会将其当作引号内字符串中的另一个字符(额外),从而使两个字符串不同。
在函数Match()中时:如果match_type为0并且lookup_value为text,则lookup_value可以包含通配符星号(*)和问号(?)。 星号匹配任何字符序列; 问号与任何单个字符匹配。
我希望这是有道理的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.