Excel字符串是如何比较的?为何出现不符合字典序的求值结果?
Excel字符串比较规则与ASCII字典序的差异说明
通常默认Excel的字符串比较遵循ASCII字典序逻辑,但实测表现并非如此:
- 表达式
="1"<"-1"求值结果为TRUE,完全违背ASCII字典序的判断逻辑:已知-的ASCII码为45,1的ASCII码为49,字典序中-的排序优先级高于1,仅对比第一个字符就可得出"1"大于"-1"的结论,预期结果应为FALSE,和实测结果矛盾。 - 这一结果同时排除了Excel将两个字符串转为数值比较的可能性:如果按数值规则对比,1 > -1,表达式结果同样应为
FALSE,和实测结果不符。 - 表达式
="1"<"-"求值结果为FALSE,符合ASCII字典序的判断逻辑 - 表达式
="1"<"1"求值结果为FALSE,符合常规相等判断逻辑
该现象说明Excel的字符串比较并非采用逐字符对比ASCII码的标准字典序,而是存在独立的内部排序规则,仅当字符串长度为1时才会和ASCII字典序表现一致。
内容的提问来源于stack exchange,提问作者Spectrum
相关产品推荐
相关产品推荐

