分享

如何正确区分空文本与空单元格,以防止计算差错?

 人在旅途ricxra 2018-02-08

1 空单元格与空文本的差异

当单元格中未曾输入任何数据或公式,或者单元格内容被清空时,该单元格被认作“空单元格”。

而在Excel公式中,使用一对半角双引号''来表示“空文本”,表示文本里什么也没有,其字符长度为0。

空单元格和空文本在Excel公式的使用中有着共同的特性但又需要进行区分。

例如,假定A1单元格是空单元格,而B1单元格内包含公式:

=''

这两个单元格之间存在以下一些特性。从公式角度来看,空单元格等价于空文本,下面两个公式均返回TRUE:

=A1=''

=A1=B1

空单元格同时等价于数值0,下面这个公式返回TRUE:

=A1=0

但空文本不等于数值0,下面这个公式返回FALSE:

=B1=0

ISBLANK函数可以判断空单元格,例如下面公式返回TRUE:

=ISBLANK(A1)

而下面公式返回FALSE:

=ISBLANK(B1)

综上所述,在公式中出现的空文本在某些环境下会体现出空单元格的一些特性,但它并不是真正的空单元格,通常为了与“真空单元格”进行区分,把这一类称为“假空单元格”。

2 防止空单元格影响统计结果

由于空单元格有些时候也会被Excel公式识别为数值0,因此在进行一些不能忽略 0 的公式统计时,务必需要排除空单元格的干扰。如图所显示的数据表中,记录了某个时期内的气温情况和用电量情况,其中由于一些原因,部分气温记录缺失,例如B7单元格,因此留空。

用电量统计表

现在需要统计0度及0度以下的日子里用电量最少的数据,如果常规情况,可以使用下面的数组公式:

{=MIN(IF(B2:B10<=0,C2:C10))}

但这个公式并不能返回正确结果,它会把第7行的无效记录统计在内,得到9.5的错误结论。因此为了排除空单元格的干扰,需要对公式进行修改,添加限制条件:

{=MIN(IF((B2:B10<=0)*(B2:B10<>''),C2:C10))}

这样可以得到正确结果9.7。

3 让空单元格不显示为0

当公式最终返回的结果是对某个空单元格的引用时,公式的返回值并不是空文本,而是数值0。有时候这个情况会给使用者带来迷惑,因为数值0和空单元格毕竟还是有明显区别的。

例如假定要根据上图中的数据表,在另一份包含日期的数据清单中查询相对应的气温。假定在H1单元格中包含了某个日期值,可以使用VLOOKUP函数构建公式:

=VLOOKUP(H1,A2:B10,2,0)

这个公式通常情况下可以正常返回结果,但当H1的日期值为“2012/1/20”时,由于当天的气温值没有记录,B7 单元格为空单元格,上述公式的结果就会返回为 0。这样的公式结果显然会给人造成迷惑,无法区分到底当天气温确实是0度还是没有查询到相应的记录。

因此为了区分这两种不同的状态,避免空单元格的公式结果显示为0,可以人为地将其构造为“假空”,即采用与空文本合并的办法来实现:

=VLOOKUP(H1,A2:B10,2,0)&''

使用上述公式以后,当VLOOKUP的查询结果为空单元格时,整个公式的返回结果即为空文本,公式所在单元格表现为空单元格的外观(假空单元格),不再与0度的情况发生混淆。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多