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

Ski*_*ave 17 google-sheets

我有一个带有基本vlookup 的Google Sheet(示例)来创建可汇总列.对于找不到的每个搜索键,它返回"#N/A",并将以下错误附加到这些单元格:

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

经过多次搜索,我找到的唯一解决方案是将vlookup包装在IF(ISNA())中,如何使用包含VLOOKUP公式的IMPORTRANGE链接各种Google电子表格而不返回#N/A?.这有效,但看起来我不应该这样做.还有另外一种方法吗?

小智 18

一种更简单的方法来抑制错误消息 - 任何类型 - 都是使用iferror包装器:

=iferror(vlookup(A1,Lookup!A:B,2,FALSE))
Run Code Online (Sandbox Code Playgroud)

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

  • `= iferror(vlookup(A1,Lookup!A:B,2,FALSE,"你的消息"))`将用你的自定义消息替换#NA. (4认同)

tan*_*ius 18

您可以使用以下公式.它将替换with =IFNA(VLOOKUP(…), 0)返回的值.#N/AVLOOKUP(…)

=SUMIF(VLOOKUP(…),"<>#N/A")
Run Code Online (Sandbox Code Playgroud)

工作原理:0只使用一个值来总结.因此结果是一个值 - 如果不相等SUMIF(),则根据条件.#N/A但是,如果该值是,则总和为零.这就是如何#N/A工作:如果没有值匹配条件,结果是SUMIF(),而0不是NULL.

好处:

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

  • 相较于解决VLOOKUP(…)对方的回答,错误不会受到抑制,这将使检测和调试他们更加困难.仅=IFERROR(VLOOKUP(…))抑制值.

  • 此解决方案仅适用于数字字段。如果要传递文本,请按照其他答案使用“IFERROR()”。 (2认同)

Ada*_*oll 12

=IFNA(VLOOKUP(...), "")

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

一个优点还有就是你可以选择""0NULL,等,价值上的故障显示。