我有一张带有基本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())中。这有效,但看起来我不应该这样做。还有另一种方式吗?
答案 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
的单个列表。也就是说,您不必将其包装在另一个""
中。
一个优点是您可以选择0
,NULL
,#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“返回一个对应于第一个真条件的值。”