函数逸闻之大小写

先发个图片 , 里面的公式坑死了无数个自信了解VLOOKUP的同学 。
函数逸闻之大小写文章插图
这公式结果干掉好些自称精通VLOOKUP的同学 , 原因其实很简单 , VLOOKUP是个忽略大小写差异的函数 , 而对Excel来说 , 这2个字符在忽略大小写区别的比较下被认为是相同的 , 这就是今天介绍的性质 , Excel的大小写 。
函数逸闻之大小写文章插图
Excel字符所谓的忽略大小写性质贯穿查找、筛选、替换等等基础功能 , 在函数里也常被涉及 。
工作表函数里只有极少数函数能识别大小写差异 , 如:
EXACT , SUBSTITUTE , FIND , CODE , UNICODE等 。
而在忽略大小写这个性质的前提下 , Excel里共有1835组字符组里的字符相互间能进行识别 , 这个性质不仅仅出现于英文字母 。
函数逸闻之大小写文章插图
【函数逸闻之大小写】因此对Excel来说 , 所谓的大小写不仅仅限于英文字母的 , 绝大多数人可能不会遭遇到这个性质下特殊字符造成的判断异常 。
但是 , 请注意一个常规性质:这些具备忽略大小写差异的函数都支持通配符 , 而支持通配符的函数都会有255字符数限制 , 因此如果有1天你使用VLOOKUP对一个长字符串匹配报错 , 请不要奇怪 。
大小写转化的相关函数
Excel里有3个函数能对字母类进行大小写转化:
Upper把所有字母转为大写
Lower把所有字母转为小写
Proper最特殊 , 把字符串的各单词的首字母转为大写 , 其他字母全部转为小写 。
函数逸闻之大小写文章插图
这3个函数基本只能转化英文字母与类字母类的字符 , 但是转化关系极其复杂 , 堪称函数界的雷雨……
1 Upper与Lower能相互转大小写 。
2 Lower和Proper能转为小写 , 但Upper不能转对应大写 , Proper也不能转大写的有72个字符 。
3 Lower和Proper能转为小写 , 但Upper不能转对应大写 , Proper可以转大写的有7个字符 。
4 Upper与Lower不能相互转化但能用Proper转为大写 , 该大写字符可用Proper或Lower再转为小写但不是原字符的有4个字符 。
5 Upper与Lower不能相互转化但能用Proper转为大写 , 该大写字符不再可用Lower或Proper转为小写的有38组字符 。
6 Lower不能转为对应小写字符 , 但Upper与Proper能转为对应大写 , 但Proper转小写时不是对应字符的有8组字符 。
7 Lower不能转为对应小写 , Upper能转为对应大写 , Proper能转为对应大写且能再用Proper转回相应小写的有6个字符 。
8 Proper转化异常的26组字符(注意有方向性) , 只能用Proper转化且无论是否在首字母位置都只能单向转化为相应字符 , 疑似Bug 。
大小写转化的3个函数也是不完全的逆运算 , 且相互转化规则极其复杂 。
遍历下Upper 可将 633个字符进行大写转化 , 而 Proper 可将675个字符进行大写转化(首字母)
而Lower的能力与Proper(第2个字母开始)的转化能力相同 , 均可转化665个字符为(所谓)小写 。
(这里列的数量可能与上表有一些误差因为少数存在不可逆的转化与多对一关系)
由于转化顺序和对应性 , 能被转化的字符组合计747组(有一组26个字符由于Proper特殊转化结果我计入了2次)。
大小写转化关系里最特殊的2组为:
1)少数转化为小写的字母最终可转化为相同的大写字符(借助Proper的转化结果) , 这种情况合计16组34个字符(这里介绍的字符集请见附件) 。
2)有一组26个字符Upper与Lower能正常相互转化但Proper只能转为对应小写 , 无论在不在首字母 。


推荐阅读