在与大于或小于逻辑运算符一起评估字符串时,有人可以解释excel的行为吗?一些例子:
=("ABC">"ABCD") #false
=("ABC">1) #true
=("ABC">"1") #true
=("ABC">TODAY()) #true
=("ABC">TRUE) #false
=("ABC">BAHTTEXT(1)) #false
答案 0 :(得分:2)
@thanhlvt提到的是对的。但是,要理解奇怪的行为,重要的是要理解行为并不是很奇怪 - 这是Excel使用的逻辑。
当比较中存在非数字数据时,Excel基本上应用其排序规则来确定哪一个较小(首先出现)哪一个较大(接下来出现),或双方是否匹配(它们是相等)。
执行排序时, Excel首先按数据类型排序,然后按数据类型排序。它适用以下升序规则:
=UNICODE("xyz")
获取Unicode值
现在让我们使用上述规则解决问题中给出的例子:
Argument | Result| Explanation
-------------------|-------|-----------------------------------------------
="ABC">"ABCD" | FALSE | 1st 3 places are identical. In the 4th place, the 2nd part is > 1st part
="ABC"> 1 | TRUE | numbers have precedence over text
="ABC"> "1" | TRUE | ASCII/Unicode for numbers are from 48 to 57, and for alphabets it starts from 65
="ABC">TODAY() | TRUE | Date is basically a number with 1/1/1900 being 1. Value of Jul 23, 2017 is 42,939
="ABC">TRUE | FALSE | text characters have precedence over logical values
="ABC">BAHTTEXT(1) | FALSE | Unicode value of BAHTTEXT(1) (Thai) comes much later, i.e. at 3627
请注意,Excel不会为此目的应用EXACT
方法,因此"abc" = "ABC"
会生成TRUE
。
答案 1 :(得分:0)
关于字符串比较,Excel从第一个字符开始比较。 例如:
"A" = "A"
"AB" > "AA"
"ABC" < "ABD"
使用不同的数据类型比较,结果是:
String > Number/Date
String < Boolean