EXCEL,EDATE和EOMONTH到底能不能返回数组( 二 )


这几个函数对日期的识别范围至少到毫秒的精度,23:59:59.499(含)前识别为当日日期,23:59:59.500开始识别为第2天 。
而DAYS、EDATE、EOMONTH、WEEKNUM、ISOWEEKNUM、WORKDAY(.INTL)、NETWORKDAYS(.INTL)、YEARFRAC这10个函数对日期时间的识别仅识别日期部分,严格取整,与时间范畴无关 。
因此如果你们的软件导出数据时间精度达到毫秒级,请注意这个精度差异对结果的影响 。
 
6)参数上限
有些函数具有内置上限,这个上限会限制这些函数的使用,其中大部分函数在超过上限后是会报错的,例如MOD函数:

EXCEL,EDATE和EOMONTH到底能不能返回数组

文章插图
 
但是,少数函数在超过上限后不会报错而是返回特殊结果,这类性质比较隐蔽,会影响函数运算结果,例如DATE函数:
EXCEL,EDATE和EOMONTH到底能不能返回数组

文章插图
 
这个函数的优势是例如第3参数大于本月天数时,会自动把函数结果转化为对应的有效日期 。但这个函数有内置参数,第3参数有效的最大值只有32767,超过32767的数值都会缩减到32767进行日期换算,故需要注意这个性质避免转化的日期结果异常 。
 
7)数组和引用
曾经写过一篇文章介绍AGGREGATE函数,这个函数堪称函数小霸王,因为这个函数是19个函数的集合体,然而有些新手在没看完攻略的前提下想用这个函数对某个内存数组忽略错误值求和 。
EXCEL,EDATE和EOMONTH到底能不能返回数组

文章插图
 
9是对应求和SUM,6是忽略错误值,然而发现结果还是错的,
AGGREGATE是个神奇的函数,有两种形式:向量型和数组型 。
EXCEL,EDATE和EOMONTH到底能不能返回数组

文章插图
 
【EXCEL,EDATE和EOMONTH到底能不能返回数组】Excel里具有2种形式的函数不多,除了AGGREGATE外常见的还有INDEX和LOOKUP,这其中AGGREGATE由于某些性质是最特殊的 。
注意AGGREGATE的参数,数组型里的第4参数为K值,而AGGREGATE的第1参数对应的19个函数里,只有14-19的6个函数是具有K值的 。
EXCEL,EDATE和EOMONTH到底能不能返回数组

文章插图
 
所以关于AGGREGATE的最大局限就是,只有在替代LARGE,SMALL,PERCENTILE,QUARTILE这几个函数时,第3参数才支持数组,否则只支持引用,这是这个函数的最大局限 。
因此上面用AGGREGATE针对数据源存在错误值时的求和,3参数只能使用引用,不支持数组 。
 
8)你不知道的性质
Excel有大量简写模式和特殊识别的字符串规则:
EXCEL,EDATE和EOMONTH到底能不能返回数组

文章插图
 
0-12的整数+空格+A / P 为整点时间的缩写表达式,可以被Excel直接识别为时间的(12 A 为12:00 AM实际为0:00故结果为0) 。
这些特殊规则很多,都可能影响你的计算结果:
EXCEL,EDATE和EOMONTH到底能不能返回数组

文章插图
 
(小编测试过很多最特殊的,大概是下面这个从2013版本开始出现的以空格+冒号开头的特殊表达式)
EXCEL,EDATE和EOMONTH到底能不能返回数组

文章插图
 
很多时候,你自认为公式是正确的,但结果异常,很多时候就是因为你并没有了解Excel的这些特殊规则和机制造成的 。
因此,学习函数不是一朝一夕的事情,只有多练习,多看别人的文章和公式,才能随心所欲,否则就可能出现各式各样的问题 。
好了,今天的内容就是这些吧,我是流浪铁匠,点个赞,咱们一起走天涯 。




推荐阅读