我也谈一下我的看法。 首先,我觉得微软的帮助中对“省略”的含义有所混淆。它把包含逗号和不包含逗号的简写,都笼统地称之为“省略”,而实际使用当中到底是否可以不加逗号,实在是需要用户自己去把握。 首先看一下IF函数的帮助: 其中提到了“忽略”第三参数,并且特别提到了不使用逗号(见括号中的文字)。特意去查看了英文版原文,此处的“忽略”一词原文为“omitted”与帮助中其他提到“省略”的地方所用词汇一样,因此可以肯定这里的“忽略”就是“省略”的意思。 因此我们看到了第一种情况:微软提到“省略”参数时,附带强调了不带逗号。 再看一下Match函数的帮助: 熟悉match函数的应该知道,这里所谓的“省略”是指不包含逗号的省略方式,否则“省略”效果不会等同于最后一个参数等于1而是会等于0。 这是第二种情况:微软提到了“省略”参数,但是没有强调是否带逗号,从实际使用情况来看是不带逗号的。 再看一下ACCRINT函数的帮助,包括其他多个财务函数都有类似的特性: Accrint的第5个参数和第7个参数可以省略,但第6个参数不可省略,所以实际使用中,省略这两个参数的有效的函数写法是: =ACCRINT(参数1,参数2,参数3,参数4,,参数6,) 或=ACCRINT(参数1,参数2,参数3,参数4,,参数6) 其中,参数5可以省略,但因为参数6不可省略,所以参数5的位置必须保留,因此参数5之前的逗号要保留;而参数7的省略既可以保留逗号也可以不保留逗号。 因此我们看到了第三种情况:微软提到了“省略”参数,但这种省略是需要保留逗号的(参数5的情况),或者是保留或不保留逗号的效果相同(参数7的情况)。 因此,综合以上几种情况我们可以发现,其实微软帮助对省略的概念是模糊的,没有明确逗号是否需要保留,有些情况下逗号有无的效果相同,而另一些情况下有无逗号的效果却截然不同。 同时也还要声明一点,并非所以省略具体参数而保留逗号的情况都默认为零,例如上面的Accrint第5参数省略的情况下默认为1000。 作为我们的书籍来说,为了比帮助内容更清晰地表明函数参数的使用情况,统一约定以不含逗号的省略参数写法称为“省略”,而将保留逗号的省略参数写法称为“简写”,这是一种可以接受的约定,也是一种更负责的做法。
[此贴子已经被作者于2008-10-24 17:33:40编辑过] |