EXCEL公式VLOOKUP怎么实现先查找一个区域,如果没有找到继续查找第二个区域?

我厂产品有10个规格,每个规格对应不同的包装数量,统计时输入规格,用VLOOKUP自动生成包装数量。但是有一些产品要求特殊包装,包装数量与自动生成的有出入。
我现在把特殊产品及对应的包装数量列出来,然后把所有规格对应的包装数量也列出来,我想要做的是:统计时输入品名和规格,包装数量单元格先在特殊产品区域查找这个品名是否是特殊产品,如果是,提取对应包装数量,如果不是,另外在规格区域查找该规格对应的包装数量。
用公式如何实现?求正解,分数不多,公式正确追加30,言而有信!
我现在用的是IF(OR(列举所有的特殊品名),判断如果是特殊产品就查找特殊区域,不是则查找规格区域),但是当特殊品名很多时OR公式特别长。

用vlookup函数,先查找一个区域,查找不到,在查找另外一个区域,可以用函数IFERROR来判断一下。

示例数据

如上图有两个数据区域,两个区域的数据各不相同,可以在G2单元格输入公式:=IFERROR(VLOOKUP(F2,A2:A6,1,0),VLOOKUP(F2,C2:C6,1,0)),实现在区域1查找不到时,去区域2继续查找。

公式解析:IFERROR函数时用来判断是否是错误值的函数,如果是错误值,那么返回另一个参数返回的结果,如果不是,就是返回第一个参数返回的值。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-12
这个很容易啊。
设特殊区域的表为sheet3,总表为sheet2,你需要输入信息的表为sheet1。且表格的格式均为a、b、c三列。其中a列为名称(主关键字)。在sheet1的b2输入:
=if(countif(sheet3!$a:$a,$a2),vlookup($a2,sheet3!$a:$c,COLUMN(b1),0),vlookup($a2,sheet2!$a:$c,COLUMN(b1),0))
然后横拉,再下拉填充就好了。

==========
关于你的补充。
如果你使用if(or(...))的方式来判断的话,每在特殊区域增加一个品名,就需要在or中增加一个。而且,修改好公式后,还要替换原先公式的区域。这样非常麻烦。
因此,建议使用我上面给出的公式。
公式解析:
在sheet3的a列中查找sheet1的当前行的a列的数据是否存在,通过这个判断来确定使用特殊规格的表,还是使用普通总表来获取数据。vlookup部分你应该可以理解。本回答被提问者和网友采纳
第2个回答  2015-06-04
用IF和ISERROR函数可以实现你的需求。
原理是如果区域1中找不到(ISERROR为真),就在区域2中继续查找,如果能找到,就显示区域1的值。
=IF(ISERROR(VLOOKUP(A1,区域1,1,0)),VLOOKUP(A1,区域2,1,0),VLOOKUP(A1,区域1,1,0))
第3个回答  2013-01-09
假设特殊包装在c:d列,C列为型号,D为包装数量
普通包装在E:F 列 E列为型号、F列为数量
A2:输入型号 B2公式下拉~
=IF(COUNTIF(C:C,A2),VLOOKUP(A2,C:D,2,),VLOOKUP(A2,E:F,2,))
第4个回答  2013-01-09
看看你说的多复杂,我回答起来也是一样,直接加qq很快解决,你会满意的
qq:519061600
相似回答