|
楼主 |
发表于 2018-5-5 22:21
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 流浪铁匠 于 2018-5-5 22:41 编辑
7,说到通配性,有2个特殊字符用于vlookup的1参也具有类似通配符的性质,而且这2个字符是默认右对齐的,我把这类字符称为镜像字符
8,除了上述特殊字符,unichar(173)作为vlookup的1参可以精确查找下识别3709个uncode字符(不含通配符)
9,更厉害的是char(1),作为vlookup1参,可以找到全部字符,测试表明这个字符的性质类似 ”* ”,但具有一定局限性,可能要在单元格内先键入该字符激活其所谓的通配性
10,vlookup由于各种因素造成查找结果出错时,错误值的优先级为1参本身为错误值(结果返回该错误值) > 找不到对应时的 #N/A 错误 >超出查找范围的 #REF! 错误
注:本条仅考虑较为常见的查找出错原因,后面有条更极端
11,vlookup在1/3/4 参数为数组时,在数组维度一致时的数组计算的优先级为 4参>1参> 3参
即先识别4参的查找方式再识别1参的常量数组(区域数组方式录入的伪内存数组,否则需t/n+if(1转化),最后才识别3参的列数数组
12,vlookup的3参是支持小数的,临界舍入点和index/round等函数一致为0.99999976146501这个特殊值
13,vlookup的4参也是支持小数的,一般有人会告诉你们0等价false,非0等价true,但其实足够小的数值就会被识别为false,不信你就试试9^-323
14,对于unicode编码大于65535的特殊字符,mid提取一半配合通配符在vlookup进行查找时确实是以编码而不是字符进行查找的
但如果是left/right进行提取,识别的还是字符
15,vlookup的3参为负数时的错误值类型发现
帮助内提示返回value错误
数值足够大时返回num错误,这2个都好理解
但是,大约在-1e9 至 -1e10 范围之间,错误值开始会变成ref错误
这个错误值直到达到excel的最大数值上限才变成num错误
即3参为大约在 -1e10至 -1e308范围,vlookup的结果为ref错误
而这个错误值与引用有关,这让我怀疑vlookup曾经可能被设计为支持反向,(纯粹瞎猜,有朋友说是vba的数据类型的原因,但除非微软进行说明,无法理解这部分返回的错误值为ref类型的原因)
|
评分
-
3
查看全部评分
-
|