IFERROR函数,从结果中剔除不需要的值
发布时间:2022-08-27 10:26:14
在使用公式时,我们经常遇到将某个值从结果数组中剔除,然后将该数组传递给另一个函数的情形。
例如,要获取单元格区域中除0以外的最小值,可以使用数组公式:
=MIN(IF(A1:A10<>0,A1:A10))
或者对于Excel 2010及以后的版本,使用AGGREGATE函数:
=AGGREGATE(15,6,A1:A10/(A1:A10<>0),1)
(注意,这里必须指定第1个参数的值为15(SMALL),因为如果指定其值为5(MIN)的话,AGGREGATE函数不接受除实际的工作表单元格区域外的任何值。然而,如果指定该参数的值为14-19,那么可以先操作任何单元格区域,也可以使用来源于AGGREGATE函数里的其他函数生成的数组、或者常量数组,这些都不是指定其值为1-13所能够处理的。)
然而,有时包含0的数组不是一个简单的工作表单元格区域而是由函数通过计算生成的数组。在这种情形下,特别是公式相当长时,重复的子句将使公式更长,这使得公式看起来很“笨重”,并且还会使Excel进行一些不必要的计算,例如:
=MIN(IF([a_very_long_formula]<>0,[a_very_long_formula],””)
下面用一个例子来说明,如下图1所示:
图1
在单元格H2中的公式为:
=MIN(SUMIFS(F2:F13,A2:A13,{“Mike”,”John”,”Alison”},B2:B13,”A”,C2:C13,”B”,D2:D13,”C”,E2:E13,”>=”&DATEVALUE(“2019/8/27”),E2:E13,”
简单讲解一下这个公式的运作原理。
根据上文得出的结果,上面的公式可以转换为:
=MIN(IFERROR(1/(1/({5,0,4})),””))
转换为:
=MIN(IFERROR(1/({0.2,#DIV/0!,0.25}),””))
转换为:
=MIN(IFERROR({5,#DIV/0!,4},””))
可以看到,Excel将1/#DIV/0!的结果仍返回为#DIV/0!。转换为:
=MIN({5,””,4})
结果为:
4
因此,可以使用这项技术来避免重复非常长的公式子句的情形。
也可以使用这项技术处理在公式中包含重复的单元格路径引用的情形。例如:
=IF(VLOOKUP(A1,’C:\Documents andSettings\Long_Filepath_Name1\Long_Filepath_Name2\Long_Filepath_Name3\[External_Workbook_with_Ridiculously_Long_Name.xlsx]Sheet1′!$A$1:$B$10,2,0)=0,””,VLOOKUP(A1,’C:\DocumentsandSettings\Long_Filepath_Name1\Long_Filepath_Name2\Long_Filepath_Name3\[External_Workbook_with_Ridiculously_Long_Name.xlsx]Sheet1′!$A$1:$B$10,2,0))
可以使用下面的公式替代:
=IFERROR(1/(1/VLOOKUP(A1,’C:\Documents andSettings\Long_Filepath_Name1\Long_Filepath_Name2\Long_Filepath_Name3\[External_Workbook_with_Ridiculously_Long_Name.xlsx]Sheet1′!$A$1:$B$10,2,0)),””)
除了排除零以外,我们还可以在很多情形下使用此方法。我们需要做的就是操控想要排除值的公式,将其解析为0后再放置在IFERROR(1/(1/…后。例如,要获取单元格A1:A10中除3以外的最小值,可以使用数组公式:
=MIN(IF(A1:A10<>3,A1:A10))
也可以使用公式:
=MIN(IFERROR(1/1/(A1:A10-3))+3,””))
还有一个示例:
=MIN(IFERROR(POWER(SQRT(A1:A10),2),””))
与下面的公式结果相同:
=MIN(IF(A1:A10>=0,A1:A10))
返回单元格A1:A10中除负数以外的值中的最小值。


猜你喜欢
- 每个人都会给自己的电脑设置开机密码,这样别人就不会轻易的看到自己的隐私,但是很多不经常使用电脑的朋友们如果太久没用电脑,再开电脑的时候就会把
- 在我们平时使用word文档时,经常会接触到micorsoft和WPS两种格式的文档,其中WPS在兼容方面做的非常好。那么如果我们想要取消这种
- 工作中经常会遇到在Excel表格中插入多行或者多列的需求有木有?可90%的人总是一行一行插入,当需要插入的行列较多时操作重复又繁琐!怎么破?
- 你觉得冷,想给家人发送以下 iMessage:今天将温度降低几?如何在 Mac 上插入度数符号?小编教给大家快速输入度数符号的方法。在 Ma
- 在win10系统中我们可以在右键添加电源菜单来实现右键关机效果,那么,win10右键关机怎么设置呢?对此,本文就为大家图文介绍Win10右键
- 在Excel中除了数据的录入意外还要进行对数据的统计,其中求平均值的情况有很多,下面是由小编分享的如何用excel求平均值的教程,希望对你有
- Win10专业版安全中心会删除自动一些无用的文件,有时候这些文件正是小伙伴们需要的,那么要怎么装Win10专业版安全中心删除的文件恢复呢?下
- JDK是Java语言的开发工具包,是必备的安装软件,在安装完成后,我们还需要对jdk进行环境变量配置,才能够使用java功能。那么对于使用w
- 在Word中,有两种输入模式:插入模式和改写模式,默认的是插入模式,当输入模式由插入模式变为改变模式后,在原有文字中输入一个新的文字,就会把
- 根据微软官方发布的消息,Win11系统所要求的最低空间是64GB,但是微软又称Win11的安装体积比Win10还要小,因此很多Win11用户
- 微软刚刚为“快速”模式的Windows Insiders推送了Windows 10 Build 10061技术预览版。和其他技术预览版一样,
- 想要变美吗?快来跟Pocket Yoga一起健康变美。高效工作并不意味着无止无,懂得劳逸结合才能更好地保持专注。有了Pocket Yoga,
- 在WPS文字中可以对文档进行加密,以防止文件内容的泄露。这个操作是个安全,又可靠的功能。以下是小编为您带来的关于WPS文字中对文档进行加密及
- 在我们使用Excel的时候,偶尔操作不当的时候可能会弹出警告提示,那么Excel弹出警告提示的内容也是可以修改的,是不是很好奇要如何操作才能
- 近日,有多份报告称M1 MacBook在正常使用过程中出现屏幕裂缝,M1 MacBook AIr和M1 MacBook Pro都受到了影响。
- 深度技术是一款非常受欢迎的系统,很多用户在安装系统的时候都是首选深度的系统,有的用户想要安装深度的Win7系统,但是不知道怎么操作,下面教给
- 安装Win11系统卡在准备就绪怎么处理?最近有用户反映这个问题,很多用户想要安装体验最新的Win11系统,安装的时候一直卡在准备就绪,这是怎
- Excel的优势是完成文字和数字的统计,但是文字输入编辑单元格,难免会出现文字无法全部体现出来,接下来跟大家介绍下,如何使excel表格的行
- jump desktop mac是一款能够支持RDP和VNC控制台的远程控制软件,软件采用了多核硬件加速渲染以及邮件关联的自动配置,您通过j
- 一、增加数据系列1、鼠标移至散点图,右键=〉“选择数据”。2、在打开的“选择数据源”对话框中找到“添加”按钮,点击。3、在出现的“编辑数据系