别和我说函数公式很简单,否则拉黑……

小伙伴们好啊,今天介绍下初学函数公式时几个容易出现的问题。

1,COUNTIF函数

虽然只有两个参数,但这是个陷阱很多的函数,很多人会在不同阶段被这个函数坑过:

1)身份证号计数

首先就是很多人熟悉的这种身份证号计数问题,由于COUNTIF对数字类的统计规则机制很多,因此很多人第一次使用COUNTIF对身份证号这种大于15位的纯数字编码计数都会掉到坑里,COUNTIF统计机制太多光介绍这个函数就能写篇文章,所以这里只介绍解决方案,不过多介绍这个函数的统计机制:
第二参数加上&'*',使COUNTIF强制识别为纯文本,按照常规文本的计数规则,才能正常计数。
2)COUNTIF的数组计算
这种COUNTIF日期按月计数的类似问题,很多人使用COUNTIF的第一思路是如图写法,但写完后发现无法成功键入,但是并不清楚原因。
其实很简单,这是由于还不真正了解函数的参数性质。
COUNTIF的第1参数属性为range,也就是只支持引用,不支持数组。所以只能直接引用日期所在的单元格区域,不能对第一参数进行数组运算。
3)COUNTIF的多种统计机制
统计区域内字符串'>1200'的个数:
如果有一天你要在某部分数据中统计由大于号、小于号开头,并且后面是数字的字符串个数,这个时候使用COUNTIF,结果肯定是异常的,因为第二参数的条件'>1200'被识别为比较条件而不是字符串了。
而且截图公式里被计为满足条件的那个1,就是其中的数值5000,文本型的9999也被忽略,这是因为第2参数存在比较运算符时,只统计第1参数区域内的数值内容,文本型内容是被忽略的。
所以这个题的正确解法是:
另外注意这里的第2参数写法 '='&A31 ,很多新手的另一个错误就是写成'=A31',此时A31在双引号内,是一个文本字符串,无法返回单元格A31的引用结果的。
2)日期和时间
很多新手不了解Excel的日期定义,会奇怪自己的公式为什么不能处理和识别20200808这种日期写法。
原因在于,Excel的日期是从1900-1-0到当日的序列数,1900-1-1是1,最大日期是9999-12-31即2958465,日期为整数,时间为小数。
因此Excel的最大日期序列就是2958465这个不到300万的数字,8位数字根本无法直接识别为日期的,函数里通常使用TEXT将上面的不规范写法转化为可以识别的真日期:
对Excel来说请尽量使用标准格式的日期和时间写法,否则经常因为不能被识别而出现各种问题。
所以涉及这部分的问题请最好规范你的日期和时间格式。
3)关于数组运算
①数组内的0
在条件极值判断中,譬如条件最大值,没有MAXIFS的版本里很多人喜欢写成:
但如果用相同写法统计指定条件的最小值,就会出现问题:
因为数组运算里会产生0值,被MIN识别为整个数组内的最小值了,所以条件最小值通常都是MIN+IF:
这个写法里可以直接缺省IF的3参数,因为MIN可以把数组内的FALSE直接忽略。
②数组里的AND和OR
数组里多个条件不能直接使用AND或者OR,因为这两个函数无法返回内存数组:
解法方法数组内使用 * 来替代 AND, + 替代OR ,才能返回条件判断的数组结果:
4)别人家的孩子
很多时候小伙伴接收别人发来的表格打开发现,公式里有特殊前缀名:
这种情况下记得请不要对表格进行操作,避免公式重算,否则公式报错:
因为这是对方使用了高版本函数,而在你的版本是没有这个函数的,因此会有兼容性前缀提示,这种情况下只能保证在你打开Excel时能正常返回公式结果,但不支持重算,一旦发生重算就会报错,而且这个错误是无法用返回上一步操作撤销的。
如果存在这种情况,请尽量使用高版本的Excel。
学习函数的初级阶段,需要慢慢熟悉各种函数的参数性质(例如ref和range类型为引用,array才是数组属性)
同时,还要了解Excel的很多硬性规定(例如日期最大值9999-12-31),更需要了解一点数组运算机制,才能灵活驾驭函数公式。
图文制作:流浪铁匠
(0)

相关推荐