分享

EXCEL中VLOOKUP函数的高级查找功能

 weima938 2017-12-22

VLOOKUP函数的高级查找功能

1.VLOOKUP函数的多条件查找

VLOOKUP函数可以使用数组功能来实现多条件查找。

如根据销售地区和品种来查找销量。

EXCEL中VLOOKUP函数的高级查找功能

根据VLOOKUP的查询特点,我们想办法重构一下数组,把多个条件用&连接在一起,同样的两列也可以连成一列,然后用IF函数进行组合,得到合适的查询条件。

根据以上分析,可以利用下列公式:

{=VLOOKUP(F2&G2,IF({1,0},A2:A11&B2:B11,C2:C11),2,0)}

F2&G2是把两个条件连在一起,把他们作为一个整体来查找。

A2:A11&B2:B11和查询条件对应,把地区和品种连接在一起,作为一个待查找的整体。

IF({1,0},A2:A11&B2:B11,C2:C11)是利用if({1,0},,)把连接后的两列与C列合并成一个内存数组。按F9后查看结果为:

{"江苏苹果",3000;"山东西瓜",4500;"河北香蕉",2000;"浙江鸭梨",8900;"湖南葡萄",3500;"江西哈密瓜",4600;"西藏猕猴桃",7200;"山东西瓜",3000;"浙江桃子",4000;"江苏葡萄",9000}

因为公式中有多个数据与多个数据运算(A2:A11&B2:B11),需要以数组形式进行计算,按Ctrl + Shift + Enter完成输入。

2.VLOOKUP函数的批量查找

VLOOKUP一般情况下只能查找一个结果,如果有多个结果如何查找?

比如要求把下图中所有“江苏”的销售金额列出来。

EXCEL中VLOOKUP函数的高级查找功能

对于复杂的查找,我们的思路是如何重构一个查找内容和查找区域。比如想实现多项查找,可以对查找的内容进行编号,第一个出现的后面连接1,第二个出现的连续2……

公式如下:

{=VLOOKUP(A$2&ROW(A2),IF({1,0},$A$2:$A$11&COUNTIF(INDIRECT("A2:A"&ROW($2:$11)),A$11),$C$2:$C$11),2,0)}

A$2&ROW(A2)连接序号,公式向下复制时会变成A$2连接1,2,3等。

(INDIRECT("A2:A"&ROW($2:$11))给所有的“江苏”进行编号,生成一个不断扩充的区域,然后在这个扩充的区域内统计“江苏”的个数,再连接上$A$2:$A$11就可以对所有的“江苏”进行编号了。

If({1,0},,)把编号后的A列和C列重构成一个数组。

关于If({1,0},,)的用法,参见这篇文章的介绍

更多精彩,敬请期待。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多