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