楼主 chrisfang |
当使用小数作为参数的函数时,对小数参数处理比较特殊的情况有两个:Large函数和Small函数。 Large函数当其第二参数为小数时,这个参数会自动向上取整参与运算,比如第二参数为1.2,在函数运算中则会以2代入运算。例如:
公式返回结果为4。但需要注意的是,当其第二参数小于1或大于数组个数时,会返回错误值。例如:
此时第二参数并不能取整为1参与计算,而是直接返回错误值。又如:
由于第二参数超过了数组个数5,公式返回错误值。 与Large函数有类似特性的是函数Small,通常情况下,Small函数的第二参数为小数时,会自动对其进行向下截断取整,仅取其整数部分参与运算。例如:
除了这两个比较特殊的函数以外,其他还有没有类似的现象? 大多数函数在表示“个数”、“位置”、“位数”等等通常都以整数形式出现的参数中,都可以使用小数作为参数而不会出现错误值或异常数据,Excel会对小数参数进行向下取整,取其取整以后的结果参与计算。这些函数包括:Char、Date、Month、Year、Edate、Eomonth、Roundup、Rounddown、Trunc、Round、Fixed、Vlookup、Hlookup、Offset、Choose、Index、Isodd、Iseven、Lcm、Left、Right、Mid、Replace、Substitute、Find、Search等等。例如:
这些函数中,与前面的Large函数和Small函数的情况有所不同,他们即使小数部分超过了参数的限制范围,但只要整数部分有效,整个函数就能返回正确结果。例如:
其中特别需要提到的是Offset函数,当它的第2~5参数为负数的小数时,同样会将参数进行向下取值后参与运算。例如:
得到的结果是A1单元格的引用,与公式=Offset(A3,-2,0)结果相同。 了解以上这些内容有什么用?当你使用函数嵌套,以公式运算结果作为以上这些函数的数值参数时,是否需要预先对运算结果进行取整或舍入处理,就可以根据上面这些函数特性来判断了。 |
2楼 apolloh |
“取整”应该包括向上和向下取整,所以进位取整和舍尾取整应该都可以称为“取整”。 |
3楼 gvntw |
补充一下: 还有很多函数会自动取整,如LEFT RIGHT MID LEFTB RIGHTB MIDB SUBSTITUTE OFFSET等。 应该注意的是:取整是用TRUNC函数,而不是INT函数,如:=OFFSET(A3,-1.9,0),结果返回A1单元格,而不是A2单元格。 |
4楼 chrisfang |
感谢gvntw版主关于Offset函数使用负小数的测试,之前没有想到负数的情况,如此看来,Offset函数中的小数参数确实有向下取整的特性。 感谢黄版主和建发版主的讨论意见,在写这个主题之前,我基本上把所有可以使用数值参数的函数都测试了一遍,原以为会发现一些与Large函数有类似特性的函数,没想到一圈看下来,竟然Large是如此特殊。 我在原帖中也列出了Left、Right、Index、Offset函数等可以使用小数参数的函数,但我一开始觉得他们的参数还算不上是“取整”,只不过是Excel没把小数放在眼里,完全忽略了小数的影响。而Large和Small函数的情况有些不同,他们的小数尾数会直接对函数结果产生比较大的影响。 经过黄版主的意见和建发版主对Offset使用负参数的测试,我觉得还是同意两位意见,把其他这些函数也归为参数自动取整的类型比较好。由此修改了顶楼的文字,希望大家有不同意见的继续讨论。 |
5楼 wangqilong1980 |
收藏慢慢学习。越学习,越发现自已的无知! |
6楼 wjc2090742 |
补充一个ADDRESS,上面的公式可以正常返回C1。 |
7楼 laowuwyx |
收藏学习! |
8楼 qinhuan66 |
谢谢分享 |
9楼 382224811 |
学习了 |
10楼 rongjun |
学习了! |