excel VLOOKUP多条件查询

=IF(A3="","",VLOOKUP(A3,IF({1,0},雅漾!$A:$A,雅漾!$C:$C),2,FALSE))这是只查一个表的就没问题,不会出错,但是如果我加上其他表的就出错
比如:
=IF(A3="","",VLOOKUP(A3,IF({1,0},((雅漾!$A:$A)&(理肤泉!$A:$A)),((雅漾!$C:$C))&(理肤泉!$B:$B)),2,FALSE))
这样写就会跳错,但是我有十几个表都需要一起查,这要怎么解决?

提问中说的十几个表这情况,一条公式是难以解决的,且题目中的所举例的两个表格,一个是A:B列,另一个是A:C列的,两个表格的区域也不统一,对于这表格又多,区域又不统一的(即没有规律),这情况只好通过建立辅助区域来解决,选一些空闲的列,分别把每个表的查找公式输入好,然后在B列引用辅助区域就行了。


我这为了方例举例,假设所有表格的查找区域都是A:B,I3公式右拉再下拉:(区域不统一的,不能用此公式,只能是按上面说的分别把每个表的查找公式手工输入好)

=IF(COUNTIF(INDIRECT(I$2&"!A:A"),$A3),VLOOKUP($A3,INDIRECT(I$2&"!A:B"),2,),"")


B3公式下拉:

=IF(SUMPRODUCT(N(I3:N3<>"")),LOOKUP(1,0/(I3:N3<>""),I3:N3),"")


多个表格的,建议在建立当初就应尽量统一布局,这方便以后的统筹运算!

最后顺便说说,提问中的公式该是网上抄回来的吧,那样的写法是反向查找,即先找C列,返回A列的值,但现在提问的情况却不是反向的,是先找A列,返回C列的值,所以公式该精简为这样:


(公式最后的参数FALSE可以省略,省略时默认就是FALSE,但前面的逗号不能省略)

=IF(A3="","",VLOOKUP(A3,雅漾!$A:$C,3,))



如果觉得辅助区不好看的,可以选中辅助区,然后右键选隐藏就行了。


温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-11-11
VLOOKUP是一个查找函数,给定一个查找的目标,它就能从指定的查找区域中查找返回想要查找到的值。它的基本语法为:

  VLOOKUP(查找目标,查找范围,返回值的列数,精确OR模糊查找)

  下面以一个实例来介绍一下这四个参数的使用

  例1:如下图所示,要求根据表二中的姓名,查找姓名所对应的年龄。

  公式:B13 =VLOOKUP(A13,$B$2:$D$8,3,0)

  参数说明:

  1、查找目标:就是你指定的查找的内容或单元格引用。本例中表二A列的姓名就是查找目标。我们要根据表二的“姓名”在表一中A列进行查找。

  公式:B13 =VLOOKUP(A13,$B$2:$D$8,3,0)

  2、查找范围(VLOOKUP(A13,$B$2:$D$8,3,0) ):指定了查找目标,如果没有说从哪里查找,EXCEL肯定会很为难。所以下一步我们就要指定从哪个范围中进行查找。VLOOKUP的这第二个参数可以从一个单元格区域中查找,也可以从一个常量数组或内存数组中查找。本例中要从表一中进行查找,那么范围我们要怎么指定呢?这里也是极易出错的地方。大家一定要注意,给定的第二个参数查找范围要符合以下条件才不会出错:

  A 查找目标一定要在该区域的第一列。本例中查找表二的姓名,那么姓名所对应的表一的姓名列,那么表一的姓名列(列)一定要是查找区域的第一列。象本例中,给定的区域要从第二列开始,即$B$2:$D$8,而不能是$A$2:$D$8。因为查找的“姓名”不在$A$2:$D$8区域的第一列。

  B 该区域中一定要包含要返回值所在的列,本例中要返回的值是年龄。年龄列(表一的D列)一定要包括在这个范围内,即:$B$2:$D$8,如果写成$B$2:$C$8就是错的。

  3、返回值的列数(B13 =VLOOKUP(A13,$B$2:$D$8,3,0))。这是VLOOKUP第3个参数。它是一个整数值。它怎么得来的呢。它是“返回值”在第二个参数给定的区域中的列数。本例中我们要返回的是“年龄”,它是第二个参数查找范围$B$2:$D$8的第3列。这里一定要注意,列数不是在工作表中的列数(不是第4列),而是在查找范围区域的第几列。如果本例中要是查找姓名所对应的性别,第3个参数的值应该设置为多少呢。答案是2。因为性别在$B$2:$D$8的第2列中。

  4、精确OR模糊查找(VLOOKUP(A13,$B$2:$D$8,3,0) ),最后一个参数是决定函数精确和模糊查找的关键。精确即完全一样,模糊即包含的意思。第4个参数如果指定值是0或FALSE就表示精确查找,而值为1 或TRUE时则表示模糊。这里兰色提醒大家切记切记,在使用VLOOKUP时千万不要把这个参数给漏掉了,如果缺少这个参数默为值为模糊查找,我们就无法精确查找到结果了。
第2个回答  2018-12-21

33-Excel中Vlookup多条件查询(每日分享,敬请关注)

第3个回答  2015-11-08
输入
=IFERROR(IF(A3="","",VLOOKUP(A3,IF({1,0},雅漾!$A:$A,雅漾!$C:$C),2,0)),VLOOKUP(A3,IF({1,0},理肤泉!$A:$A,理肤泉!$B:$B),2,0))
公式表示:如果A3为空,返回空;A3不为空,就在雅漾表的C列精确匹配与A3相同的单元格,并返回对应A列的数据;如果在雅漾表中无法匹配,就在理肤泉的B列精确匹配与A3相同的单元格,并返回对应A列的数据。
如果这样的表比较多,那么就需要多嵌套几个IFERROR函数,将一个表匹配不到的情况,返回到下一个表去查询。
比如公式结构
=IFERROR(IFERROR(IFERROR(IF(A3="","",表1查找引用公式),表2查找引用公式),表3查找引用公式),表4查找引用公式)
第4个回答  2014-02-04
可以使用其它函数或者用VBA
相似回答