Excel 多条件查找公式(VLOOKUP+CHOOSE)

Excel 中根据一个条件查找非常方便,Excel 提供了内置函数 VLOOKUP。但是实际中往往有多种情形,需要根据多个条件进行查找操作,目前没有现成的内置函数。

本篇介绍 VLOOKP+CHOOSE 组合查找公式,可根据任意条件数量进行查找。

下面以两个条件进行查找为例,介绍 VLOOKP+CHOOSE 组合查找公式。

问题

如下图,现有一二手房价格表,表中记录了不同小区和不同户型的房子的价格。现需要根据小区和户型,找到对应的价格。

 

公式思路

  1. 主体使用 VLOOKUP 函数进行查找;
  2. VLOOKUP 函数第一个参数:查找值。本例是小区和户型,需要将它们连接为一个文本;
  3. VLOOKUP 函数第二参数:查找区域。查找区域的第一列必须是合并后的小区和户型列,第二列应是价格列;
  4. CHOOSE 函数结合数组公式,可以对多列进行连接合并后,与其他列组合成新的区域。
  5. VLOOKUP 函数的第三个参数,返回值列号。CHOOSE 函数返回的区域第二个列就是价格列。
  6. VLLOKUP 函数第四个参数,查找模式。本例中是精确查找,即 FALSE。

通用公式

根据以上思路可以写出 VLOOKUP + CHOOSE + 数组公式组合的查找公式。通用公式如下:

{=VLOOKUP(条件1&条件2, CHOOSE({1,2},条件1列&条件2列,返回值列), 2, FALSE)}

注意,此公式是数组公式,需要以三键输入:CTRL + SHIFT + ENTER

本例中,具体公式如下:

{=VLOOKUP(C13&C14,CHOOSE({1,2},B3:B10&C3:C10,D3:D10),2,FALSE)}

 

三条件查找公式实例

3个及以上条件公式与 2 个条件公式类似,只需要修改查找值和CHOOSE 函数第二个参数。通用公式如下:

{=VLOOKUP(条件1&条件2&...&条件n, CHOOSE({1,2},条件1列&条件2列&...&条件n列,返回值列), 2, FALSE)}

注意,公式是数组公式,需要以三键输入。

以3条件查找为例,具体公式如下:

{=VLOOKUP(C13&C14&C15,CHOOSE({1,2},B3:B10&C3:C10&D3:D10,E3:E10),2,FALSE)}

 

转载注明:文章转载自「懒人Excel - www.lanrenexcel.com

您可能还喜欢...

订阅评论
提醒
41 评论
最新
最旧 最多投票
内联反馈
查看所有评论
makabaka
23 天 前

请问{1,2}是什么意思呢?

暮瑾瑜
4 月 前

拯救我!!

kaka*
4 月 前

请问这个公式不能往下拉齐吗?只能查找单个数据,不能往下复制公式,求大神解答

卧室嫩蝶
4 月 前
回复给  懒人Excel

可以的 用F4锁定工事里的单元格,把【A1】变成【$A$1】,这样下拉的时候被锁定的单元格就不会变了

破晓*
4 月 前

你好,好像这个式子 不加CHOOSE 函数,也可以Vlookeup出接过来

昵称*桃夭
5 月 前

两个条件匹配多个结果的公式要怎么操作呀

有没有方法引用一个查找值固定,但是查找值的查找项有带备注且不能删除的公式
5 月 前

有没有方法引用一个查找值固定,但是查找值的查找项有带备注且不能删除的公式

有没有方法引用一个查找值固定,但是查找值的查找项有带备注且不能删除的公式
5 月 前
回复给  懒人Excel

13
14
a
15
16
c
17
18
b
19
20
这是一个c两个合并的行,c使我们要找的查找值,a和b是c行里面没合并但是同列的单元格,13,14是单元格里面已经换行的数据,就是想通过查找c确定13

一颗小白菜
5 月 前

很棒,多重条件赛选&并行

88aasd
8 月 前

一个内容要返回多种数值,而且返回的数值要在一个单元格内做可供选择,这种情况要如何输入函数

喜喜*
10 月 前

为啥我使用vlookup函数只能出现#N/A,要不就是错误的呢

123
1 月 前
回复给  懒人Excel

三键输入也不行,显示引用错误单元格

晶鎏*
1 年 前

大神,你好。请问vlookup可以对比差异用,但是如果出现了一个这样情况:两张表对比差异,表1有表2没有的,表2有表1没有的,这个时候再用vlookup是否适用呢,它可以把这两张表的差异都找出来吗?呢么这个时候,找出都没有的部分应该怎么办呢?请指教,谢谢

莫等闲
1 年 前

用if((0,1),,)替换一样的

加州活力蟹
2 年 前

用ACCESS会不会更便捷

甜甜豆
3 年 前

单条件查找呢?

Hey
3 年 前

Choose只能在工作表内使用。工作表或工作簿间的多条件查找怎么处理呢?

刘大屁
3 年 前
回复给  Hey

工作表间查找可参考
=VLOOKUP(A1,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({“jt1″;”kf1″;”zz1″;”yf1″}&”!b:b”),A1),{“jt1″;”kf1″;”zz1″;”yf1″})&”!b:ar”),2,0)

Excel学习者
1 年 前
回复给  刘大屁

请问indirect函数里面的jt等代表什么呀?谢谢

云天明
3 年 前
回复给  Hey

先引用到一张表中,用完复制覆盖或者隐藏掉即可。

Hloog
4 年 前

棒!非常实用啊

Hollowj
4 年 前

为什么只显示公式不显示结果

云天明
3 年 前
回复给  Hollowj

如果是office365,已经不需要外面的“{}”了。直接等于,打回车即可

菜菜子
4 年 前

我太菜了 求问为什么报错

皇家元林
4 年 前

&连字符连接的两个条件列不能是整列吗?

41
0
希望看到您的想法,请您发表评论x