偶然发现微软office自带的帮助信息中有一些是错误的,不知道是不是翻译问题还是校对的原因。比如excel的IF函数,很简单的一个函数,也经常用到,语法格式是:IF(logical_test, [value_if_true], [value_if_false]),logical_test是判断条件,[value_if_true]和[value_if_false]分别是条件为真和为假时的值,这两个参数是可以省略的。我发现的错误帮助信息就在这里,看office帮助中关于IF函数的原文:
如果 logical_test 的计算结果为 FALSE,并且省略 value_if_false 参数(即 value_if_true 参数后没有逗号),则 IF 函数返回逻辑值 FALSE。如果 logical_test 的计算结果为 FALSE,并且省略 value_if_false 参数的值(即,在 IF 函数中,value_if_true 参数后没有逗号),则 IF 函数返回值 0(零)。
一会返回false,一会返回0,都在相同的情况下(即value_if_true 参数后没有逗号,且value_if_false 参数省略)。
正确的情况是怎样的?经过测试,当value_if_false 参数被省略,且value_if_true 参数后有逗号时,IF函数才返回0,如if(1>2,"我是打酱油的",);而当省略value_if_false 参数,且value_if_true 参数后没有逗号时,IF函数返回“FALSE”,如if(1>2,"我还是在打酱油") 。
同样的情况也发生在vlookup函数的帮助上,也是excel的函数:VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]),最后这个range_lookup可以省略,按office中的帮助,省略时缺省值是TRUE,即vlookup找不到精确匹配值时返回小于查找值的最大值(这个要求查找区域按升序排列,否则找不到的话只会返回最后一个值,可以试试),网上很多关于vlookup的教程都是直接抄这个帮助内容的。但实际上当range_lookup省略但保留它之前的逗号时,相当于是FALSE,而不是TRUE,即精确查找,当vlookup找不到精确匹配值时就返回错误,只有当range_lookup和它之前的逗号一起省略时,即VLOOKUP(lookup_value, table_array, col_index_num),才相当于是TRUE。
以上office中关于excel函数的帮助内容来自于office 2003版本,都是通过microsoft office online上搜索出来的。
>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/1080.html