有人能提供excel如何在excel中使用不等式运算符比较字符串的参考吗?我发现了一些意想不到的行为:
在下面的示例中,前两列是字符串,列C是表达式=A2<B2
,第三列是预期行为,最后一列是预期的行为是否与实际行为匹配。
Comparison Benchmark Is A < B? Expected Pass?
Q1 2009 Q4 2012 TRUE TRUE TRUE
Q2 2009 Q4 2012 TRUE TRUE TRUE
Q3 2009 Q4 2012 TRUE TRUE TRUE
Q4 2009 Q4 2012 TRUE TRUE TRUE
Q1 2010 Q4 2012 TRUE TRUE TRUE
Q2 2010 Q4 2012 TRUE TRUE TRUE
Q3 2010 Q4 2012 TRUE TRUE TRUE
Q4 2010 Q4 2012 TRUE TRUE TRUE
Q1 2011 Q4 2012 TRUE TRUE TRUE
Q2 2011 Q4 2012 TRUE TRUE TRUE
Q3 2011 Q4 2012 TRUE TRUE TRUE
Q4 2011 Q4 2012 TRUE TRUE TRUE
Q1 2012 Q4 2012 TRUE TRUE TRUE
Q2 2012 Q4 2012 TRUE TRUE TRUE
Q3 2012 Q4 2012 TRUE TRUE TRUE
Q4 2012 Q4 2012 FALSE FALSE TRUE
Q1 2013 Q4 2012 TRUE FALSE FALSE
Q2 2013 Q4 2012 TRUE FALSE FALSE
Q3 2013 Q4 2012 TRUE FALSE FALSE
Q4 2013 Q4 2012 FALSE FALSE TRUE
Q1 2014 Q4 2012 TRUE FALSE FALSE
Q2 2014 Q4 2012 TRUE FALSE FALSE
Q3 2014 Q4 2012 TRUE FALSE FALSE
对于基准日期之前的日期,Excel似乎会比较整个字符串,而在基准日期之后,Excel只比较字符串,直到发现比比较中的类似字符少一个字符。
Excel在这里所做的是从左到右逐字符比较两个字符串,直到发现不匹配,然后值字符越大的字符串就越大。这是比较字符串的标准方法——几乎所有的编程语言、数据库和其他软件包都使用它。
例如,对于第一行,比较如下:
Comparison Benchmark Outcome
Q Q Equal
1 4 Benchmark is greater - done comparing
[space] [space] Ignored
2 2 Ignored
0 0 Ignored
0 1 Ignored
9 2 Ignored
对于第四行,它将是:
Comparison Benchmark Outcome
Q Q Equal
4 4 Equal
[space] [space] Equal
2 2 Equal
0 0 Equal
0 1 Benchmark is greater - done comparing
9 2 Ignored
最后一行是:
Comparison Benchmark Outcome
Q Q Equal
3 4 Benchmark is greater - done comparing
[space] [space] Ignored
2 2 Ignored
0 0 Ignored
1 1 Ignored
4 2 Ignored