Excel ISNA 函数2025年03月17日 | 阅读 9 分钟 Microsoft Excel 是一款强大的电子表格软件,允许用户记录大量数据并使用许多内置函数执行各种操作。在使用 Excel 工作表中的函数和公式时,各种情况可能导致我们遇到一些错误代码而不是期望的结果。但是,在处理大型数据集时,直接用眼睛识别或检测这些错误可能会很困难。这时,现有的 ISNA 函数就很有用,可以帮助我们识别或检测工作表中的特定类型错误。 本文简要介绍了 Excel ISNA 函数,包括其语法、目的和在 Excel 工作表中的使用方法。我们讨论了一些相关示例,以帮助我们更好地理解如何在 Excel 中为各种常见场景使用 ISNA 函数。 Excel 中的 ISNA 函数是什么?ISNA 函数是一个内置的错误处理 Excel 函数,属于信息函数类别。该函数在查找或处理工作表中的 #N/A 错误方面特别有用。简单来说,Excel 中的 ISNA 函数帮助我们识别给定的数据集、函数或公式是否存在 #N/A 错误。该函数可以更轻松地进行平滑的比较和数据分析,并有助于相应地修复错误。 ![]() 此外,ISNA 函数可以与其他相关函数(如 IF 或 VLOOKUP 函数)结合使用,以在工作表中的记录数据集上执行其他操作。 Excel ISNA 函数的语法Excel 中 ISNA 函数的语法定义如下: =ISNA(value) 'value' 是 ISNA 函数唯一需要的参数或变量。 Excel ISNA 函数的参数/变量如前所述的语法所示,Excel 中的 ISNA 函数只需要一个参数,例如:
Excel ISNA 函数返回什么?Excel 中的 ISNA 函数返回一个逻辑值,即 TRUE 或 FALSE。
例如,请看下表,其中确定了 ISNA Excel 函数对不同数据集(参数)的行为方式:
如何在 Excel 中使用 ISNA 函数?最好通过使用示例数据集在 Excel 工作表中使用 ISNA 函数来完全理解此函数。让我们来看以下示例,并在不同情况下使用 ISNA Excel 函数: 示例 1:通用的 ISNA 函数如上表所示,我们以纯粹的形式使用了 ISNA 函数。然而,ISNA 函数更常通过与其他基本函数结合使用,来帮助评估我们工作表中相应公式的结果。在这种情况下,我们通常按以下方式应用 ISNA 函数: =ISNA(another_formula() ) 假设我们有一个示例数据集,其中包含两列学生姓名(A 列和 D 列)。A 列中的列表包含所有学生姓名,而 D 列仅包含考试不及格的学生。 ![]() 我们需要比较这两个列表,并识别特定姓名仅存在于第一个列表还是同时存在于两个列表中。之后,我们需要使用 ISNA 函数来确定 A 列中的学生是否及格。 为了将第一个学生(A2 单元格)的姓名与 D 列中的每个相应姓名进行比较,我们可以按以下方式应用 MATCH 公式: =MATCH(A2, $D$3:$D$8, 0) 此公式会将 A2 单元格的值与 D 列(从 D3 到 D8 单元格)进行匹配,如果值存在,则返回其相对位置。如果值不匹配,公式将返回 #N/A 错误。因此,我们可以将上述公式与 ISNA 函数结合或嵌套,当 MATCH 函数针对学生姓名显示 #N/A 错误时,它将返回 TRUE,这意味着相应的姓名不存在于不及格学生列表中。 我们可以按以下方式将 MATCH 公式嵌套到 ISNA 函数中: =ISNA(MATCH(A2, $D$3:$D$8, 0)) 我们将此公式应用于 B2 单元格,并将其复制到 B16 之前的其他单元格。 ![]() 图像显示 ISNA 函数已返回布尔值 TRUE 和 FALSE。我们可以看到这里函数为未列在 B 列中的学生返回 TRUE。让我们来理解一下 ISNA 函数返回 TRUE 和 FALSE 时的工作原理:
示例 2:ISNA 函数与 IF 函数结合使用如前所述,Excel ISNA 函数仅返回布尔值 TRUE 和 FALSE。但是,我们可以将 ISNA 函数与 IF 函数结合使用,以返回或显示自定义消息。这在一定程度上使 ISNA 函数的使用更加有效。在这种情况下,我们通常按以下方式应用 ISNA 函数: =IF(ISNA(…),"message_if_error_exists", "message_if_no_error_exist") 让我们再次采用之前的示例数据集。但是,这次我们不显示布尔 TRUE 和 FALSE 结果,而是需要显示自定义消息。假设我们想为那些没有不及格(未在 D 列列出姓名)的学生显示“及格”的消息。我们想为其余学生显示“不及格”的消息。 ![]() 首先,我们像前一个示例一样应用 MATCH 函数,然后将其嵌套在 ISNA 函数中。之后,我们将 ISNA MATCH 公式嵌入 IF 函数中,如下所示: =IF(ISNA(MATCH(A2, $D$3:$D$8, 0)), "及格", "不及格") 与前一个示例一样,我们将公式应用于 B2 单元格,并将其复制或拖动到列中剩余的单元格,直到 B16。 ![]() 与前一个示例相比,这次的结果看起来更好、更直观。 示例 3:ISNA 函数与 VLOOKUP 函数结合使用Excel 中的 VLOOKUP 函数是最广泛使用的内置函数之一,它有助于我们将数据从一个列表提取到另一个工作表。但是,在 VLOOKUP 公式中出现 #N/A 错误非常常见。当函数在给定数据集中找不到查找值时,通常会发生此错误。 与其在结果单元格中显示 #N/A 错误,不如显示有意义的消息或空白更好。这将使我们的视觉表示有效且更专业。ISNA 函数在这种情况下非常有用。在 ISNA 函数与 VLOOKUP 函数结合后,它有助于确定给定数据集中是否存在 #N/A 错误。之后,我们可以将 ISNA 和 VLOOKUP 函数的组合公式嵌套在 IF 函数中,以替换 #N/A 错误并显示自定义消息。 ISNA 函数与 VLOOKUP 结合使用的语法定义如下: =IF(ISNA(VLOOKUP(…),"custom_message", VLOOKUP(…)) 当给定数据集中出现 #N/A 错误时,此公式将返回“custom_message”;否则,它将返回 VLOOKUP 函数获得的结果。 在我们的示例数据集中,假设我们想显示不及格学生的科目名称。对于其他及格的学生,我们需要显示自定义消息“全部及格”。 ![]() 首先,我们需要按照以下语法构建经典的 VLOOKUP 公式: =VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
因此,我们使用以下 VLOOKUP 公式查找所需的科目: =VLOOKUP(A2, $D$3:$E$8, 2, FALSE) 之后,我们将此 VLOOKUP 公式与前一个示例中讨论的通用 IF-ISNA 公式结合。因此,我们的整个公式将变为: =IF(ISNA(VLOOKUP(A2, $D$3:$E$8, 2, FALSE)), "全部及格", VLOOKUP(A2, $D$3:$E$8, 2, FALSE)) 我们将此公式应用于我们的第一个结果单元格 B2,并将其复制到剩余的单元格,直到 B16。 ![]() 上图显示了不及格学生的科目名称。对于其他人,我们看到了自定义消息“全部及格”。现在,将“全部及格”自定义消息替换为破折号 (-)。这更能有效地突出我们期望的结果,如下所示: ![]() 示例 4:使用 SUMPRODUCT 函数的 ISNA 函数来计算 #N/A 错误ISNA 函数可以与 SUMPRODUCT 函数结合使用,以确定在我们的工作表中某个范围中 #N/A 错误发生了多少次。在这种情况下,我们可以按以下方式连接各自的函数: =SUMPRODUCT(--ISNA(range)) 如前所述,ISNA 函数仅返回布尔结果 TRUE 和 FALSE。但是,这里的双重否定 (--) 会将逻辑值评估为 1 和 0,而 SUMPRODUCT 函数会相应地将结果相加。 例如,让我们再次使用示例数据集。 ![]() 假设我们想找出通过考试的学生人数。因此,我们首先在列 B(B2 到 B16 单元格)中应用 MATCH 和 ISNA 函数的组合公式,类似于第一个示例。 ![]() 在得到上述公式的 TRUE 和 FALSE 结果后,我们按以下方式修改适用于一系列查找值(A2:A16)的 MATCH 公式: =MATCH(A2:A16, D3:D8, 0) 上述公式将比较 A 列和 D 列中的学生姓名,如果姓名存在于 A 列但不在 D 列中,则函数将返回 #N/A 错误。 接下来,我们在将其应用于结果单元格 B18 之前,将公式嵌套在 ISNA 函数和 SUMPRODUCT 中,如下所示: =SUMPRODUCT(--ISNA(MATCH(A2:A16, D3:D8, 0))) 该公式返回 9,这意味着有九名学生通过了考试。 ![]() 在这里,MATCH 函数返回九个 #N/A 错误,因为它在 D 列中的不及格学生列表中找不到 9 名学生的名字。ISNA 函数识别 #N/A 错误,并为相应的值返回 TRUE,然后将其强制转换为 1。最后,SUMPRODUCT 将所有 1 加起来,返回 9。 要记住的重要事项
|
我们请求您订阅我们的新闻通讯以获取最新更新。