从列表中选择第一个有效值的功能?

时间:2019-05-16 13:25:02

标签: google-sheets google-sheets-formula

我正在处理一个产品电子表格,该电子表格需要将零件编号映射到描述。零件号存储在两个单独的工作表中:“零件号”(正式定义的编号列表)和“自定义组件”(尚未列入正式列表的零件)。

我要搜索第一个列表,但是如果找不到任何内容,请搜索第二个列表。解决方案相当明显...

=if(isna(vlookup(A3,'Part Numbers'!A:C,2,false)),vlookup(A3,'Custom Components'!A:E,2,false),vlookup(A3,'Part Numbers'!A:C,2,false))

...,除了通常在很长的“零件号”列表(17k项以上)上两次运行vlookup函数的事实。

我想要的一个函数说:“这是一个表达式列表;返回产生有效值的第一个表达式。”这样,vlookup只需在“零件编号”列表上运行一次。看起来像这样:

=firstValid(vlookup(A3,'Part Numbers'!A:C,2,false)),vlookup(A3,'Custom Components'!A:E,2,false))

有这样的动物吗? (我显然可以定义一个自定义JavaScript函数,但是由于额外的开销,这可能会使速度变慢。)

1 个答案:

答案 0 :(得分:0)

iferror()功能是我所需要的:

  

IFERROR   如果不是错误值,则返回第一个参数;否则,返回第二个参数(如果存在);如果第二个参数不存在,则返回空白。

因此,该函数应为:

=iferror(vlookup(A3,'Part Numbers'!A:C,2,false)),vlookup(A3,'Custom Components'!A:E,2,false))