Excel如何结合VLOOKUP和IF实现多条件唯一值查找

来源:本站整理 作者:网络笔记

最佳答案图1分析数据后可知,数据区域A2:C21中存在同名同姓人员:张无忌、乔峰,因此仅仅使用“姓名”这一个条件可能匹配出错误的结果。如图2所示,乔峰、一灯大师的销量匹配正确,张无忌的销量匹配错误。原因在于,VLOOKUP匹配顺序为自上而下,且只返回匹配到的第一个值,本例中要匹配的是销售三部张无忌的销量,但......

图1

分析数据后可知,数据区域A2:C21中存在同名同姓人员:张无忌、乔峰,因此仅仅使用“姓名”这一个条件可能匹配出错误的结果。

如图2所示,乔峰、一灯大师的销量匹配正确,张无忌的销量匹配错误。

原因在于,VLOOKUP匹配顺序为自上而下,且只返回匹配到的第一个值,本例中要匹配的是销售三部张无忌的销量,但是因为销售六部张无忌在其上面,所以匹配到的是六部张无忌的销量,导致结果错误。

公式:=VLOOKUP(F4,$B$2:$C$21,2,FALSE)

参数含义:=VLOOKUP(已知条件,在哪里找,找到后返回第几个值,匹配方式)

图2

因此,需要同时满足“部门”、“姓名”这两个条件,才能返回准确值。

建立辅助列

可以把部门和姓名合并,作为一个条件。如图3所示,为了对数据有个直观的印象,在I列建立辅助列,将“部门”和“姓名”合并为“部门姓名”,此时再使用VLOOKUP即可得到准确的结果。公式:=VLOOKUP(L4,$I$2:$J$21,2,FALSE)

但是实际工作中建立辅助列会有诸多不便,能否在不建辅助列的情况下也能实现同样的效果呢?答案是可以的。

图3

无辅助列

录入公式:

第一步:在G2单元格中输入以下数组公式:

=VLOOKUP(E2&F2,IF({1,0},A2:A21&B2:B21,C2:C21),2,FALSE)

第二步:按Ctrl+Shift+Enter,此时公式外层自动包裹一层大括号{},录入成功。

最终显示效果:{=VLOOKUP(E2&F2,IF({1,0},A2:A21&B2:B21,C2:C21),2,FALSE)}

图4

公式分析:

第一个参数E2&F2比较容易理解,是将已知的两个条件合并为一个条件;

第二个参数IF({1,0},A2:A21&B2:B21,C2:C21)看上去比较复杂,该如何理解呢,下面详细介绍。

首先分析整个公式的含义:如果IF函数的第一参数{1,0}正确,返回第二参数A2:A21&B2:B21,否则返回第三参数C2:C21。

那么IF函数的第一参数{1,0}又该如何理解呢?

我们知道,在Excel中,1表示正确、0表示错误,也就是说:

如果IF函数第一参数为1,则返回第二参数A2:A21&B2:B21;

如果IF函数第一参数为0,则返回第三参数C2:C21;

本例中IF函数第一参数是1和0同时存在,所以第二参数、第三参数均返回。

为了验证IF函数的计算结果,在图5中选择O2:P21单元格区域,输入数组公式:=IF({1,0},A2:A21&B2:B21,C2:C21),按Ctrl+Shift+Enter,即可显示IF函数的计算结果。可以看到与图3的效果一致。

图5

结语

网络笔记 学习文库

我这一生没什么理想,能治愈我的,从来都不是时间,而是内心的那份释怀和明白!

热门分类

热门工具

联系客服QQ:+