本主题介绍出现“#N/A 错误”的最常见原因是 INDEX或 MATCH 函数。
注意: 如果希望 INDEX 或 MATCH 函数返回有意义的值而不是 #N/A,请使用 IFERROR 函数,然后将 INDEX 和 MATCH 函数嵌套在该函数中。 将 #N/A 替换为自己的值只会识别错误,但无法解决错误。 因此,在使用 IFERROR 之前,请务必确保公式按原样正常工作。
问题:没有要匹配的数据
当 MATCH 函数在查找数组中找不到查找值时,它将返回 #N/A 错误。
如果你认为电子表格中存在数据,但 MATCH 无法找到它,可能是因为:
-
单元格具有意外字符或隐藏空格。
-
单元格的格式可能不是正确的数据类型。 例如,单元格具有数值,但格式可能设置为 Text。
解决方案:若要删除意外字符或隐藏空格,请分别使用 CLEAN 或 TRIM 函数。 此外,验证单元格的格式是否为正确的数据类型。
你已使用数组公式而不按 Ctrl+Shift+Enter
在 INDEX、 MATCH 或这两个函数的组合中使用数组时,必须按键盘上的 Ctrl+Shift+Enter。 Excel 将自动将公式括在大括号 {} 内。 如果尝试自己输入方括号,Excel 会将公式显示为文本。
注意: 如果你有当前版本的 Microsoft 365,则只需在输出单元格中输入公式,然后按 Enter 确认公式为动态数组公式。 否则,必须首先选择输出区域,在输出单元格中输入公式,然后按 Ctrl+Shift+ENTER 进行确认,从而将公式作为旧数组公式输入。 Excel 将使用括号将公式括起来。 有关数组公式的详细信息,请参阅数组公式指南和示例。
问题:匹配类型和数据的排序顺序不一致
使用 MATCH 时, match_type 参数中的值与查找数组中值的排序顺序之间应保持一致。 如果语法偏离了以下规则,则会看到 #N/A 错误。
-
如果 match_type 为 1 或未指定, 则 lookup_array 中的值应按升序排列。 例如,-2、-1、0 、1 、2...、A、B、C...、FALSE、TRUE 等。
-
如果 match_type 为 -1, 则 lookup_array 中的值应按降序排列。
在以下示例中, MATCH 函数为
=MATCH (40,B2:B10,-1)
语法中的 match_type 参数设置为 -1,这意味着 B2:B10 中值的顺序应为降序,以便公式正常工作。 但值按升序排列,这会导致 #N/A 错误。
解决 方案: 将 match_type 参数更改为 1,或以降序格式对表进行排序。 然后重试。
需要更多帮助吗?
可随时在 Excel 技术社区中咨询专家或在社区中获取支持。