抑制Google表格vlookup返回的#N / A.

时间:2016-06-16 16:51:48

标签: google-sheets

我有一张带有基本vlookup的Google表格(example)来创建可汇总列。它为每个未找到的搜索键返回“#N / A”,并将以下错误附加到这些单元格:

  

错误在VLOOKUP评估中未找到值'me@me.com'。

经过大量搜索后,我找到的唯一解决方案是将vlookup包装在How to link various Google spreadsheets using IMPORTRANGEs that contain VLOOKUP formulas without getting #N/A returned?中给出的IF(ISNA())中。这有效,但看起来我不应该这样做。还有另一种方式吗?

4 个答案:

答案 0 :(得分:15)

一种更简单的方法来禁止错误消息 - 使用iferror包装器:

=iferror(vlookup(A1,Lookup!A:B,2,FALSE))

我认为没有比这更简单的方法了。根据设计,如果找不到密钥,vlookup不应该只返回空白:这与找到密钥的情况无法区分,但第二列中的相应条目是空白的。必须抛出一些错误,然后由电子表格用户决定如何处理它。

答案 1 :(得分:10)

您可以使用以下公式。它将用#N/A替换VLOOKUP(…)返回的0值。

=SUMIF(VLOOKUP(…),"<>#N/A")

工作原理::它使用SUMIF()进行汇总。因此,结果是根据条件得出一个值-如果不等于#N/A。但是,如果值为#N/A,则总和为零。这就是SUMIF()的工作方式:如果没有值与条件匹配,则结果为0,而不是NULL,而不是#N/A

优势:

  • 与问题中引用的解决方案=IF(ISNA(VLOOKUP(…)),"",VLOOKUP(…))相比,此解决方案仅包含VLOOKUP(…)部分。这使公式更短,更简单,并且避免了仅编辑两个VLOOKUP(…)部分之一时发生的错误。

  • the other answer中的解决方案=IFERROR(VLOOKUP(…))相比,错误没有得到抑制,因为这会使检测和调试它们更加困难。仅抑制#N/A值。

答案 2 :(得分:5)

IFNA

不确定最近是否更改过,但是VLOOKUP实现现在支持IF的单个列表。也就是说,您不必将其包装在另一个""中。

一个优点是您可以选择0NULL#ifndef MYTMPCL_H #define MYTMPCL_H namespace tmpcl { template <typename T> class TmpCL { ... } } // namespace tmpcl #include "myTemplateClass_impl.h" #endif // MYTMPCL_H 等作为失败时显示的值。

答案 3 :(得分:0)

只需添加 真的, ”” 到您的参数列表,如下所示:

IFS(condition1, value1, condition2, value2, TRUE, "")

这是有效的,因为 IFS“返回一个对应于第一个真条件的值。”