补充:排序的理论依据
1)、数值比较
EXECEL中所有字符都由数字记忆,所有数值大小就和我们平时知道的1小于2一样了。即0<1<2<3<4<5……
2)、文本大小比较
a. 文本的 “1 “、”10” 相比较:
首先比较第一位 1 与 1 比较、 1=1 、结果相同
再比较第二位 1 的第二位是空 ,而10 的第二位是0
0>空,结果是10 大于 1。
如果是文本的 “ 8” 与 “108” 相比较
第一位 8 与 1 相比较 结果 8>1
所以 8>108 .
总结:对于文本字符的大小,按照首字符的code进行排序,首字符code相同的,按第二个字符的code排序,以此类推。
b.汉字或其它非Asc字符>大写英文字符[A]>小写英文字符[a]>文本数值字符[1]>下划线[_]>空格[ ]
[']<[-]<[ ]<[!]<["]<[#]<[$]<[%]<[&]<[(]<[)]< <[,]<[、]<[.]<[。]<[/]<[:]<[;]<[?]<[@]<[[]<[]]<[^]<[_]
<[`]<[{]<[|]<[}]<[~]<[「]<[」]<[+]<[<]<[=]<[>]<[\](这些符号的排序,并非按照CODE值的排序,应该是固定排序。)
<[0]<[1]<[2]<[3]<[4]<[5]<[6]<[7]<[8]<[9]
<[a]<[A]<<[B]<[c]<[C]<[d]<[D]<[e]<[E]<[f]<[F]<[g]<[G]<[h]<[H]<<[I]<[j]<[J]<[k]<[K]<[l]<[L]<[m]<[M]
<[n]<[N]<[o]<[O]<[p]<[P]<[q]<[Q]<[r]<[R]<[S]<[t]<[T]<<[U]<[v]<[V]<[w]<[W]<[x]<[X]<[y]<[Y]<[z]<[Z]
3)、逻辑值与错误值
系统规定顺序为:False]<[True]<[#NULL!]<[#DIV/0!]<[#VALUE!]<[#REF!]<[#NAME?]<[#NUM!]<[#N/A]
含义为:
#NULL! 当用空格表示两个引用单元格之间的相交运算符,但指定并不相交的2个区域的交点
#DIV/0! 除以零错误
#VALUE! 公式计算返回错误值
#REF! 公式引用错误
#NAME? 未加载宏或定义名称,不能识别公式中的文本
#N/A 公式计算产生逻辑错误
#NUM! 公式或函数中使用无效数字
TRUE 逻辑判断结果为“真”→ 逻辑计算值=1
FALSE 逻辑判断结果为“伪”→ 逻辑计算值=0
4)、上述比较