例:要求把如图表中所有张一的消费金额全列出来
分析:经过两个教程(1、VLOOKUP的反向查找;2、VLOOKUP函数的多条件查找)的学习,也有这样一个思路,在实现复杂的查找时,努力的方向是怎么重构一个查找内容和查找的区域。要想实现多项查找,可以对查找的内容进行编号,第一个出现的是后面连接1,第二个出现的连接2。。。
公式:{=VLOOKUP(B$9&ROW(A1),IF({1,0},$B$2:$B$6&COUNTIF(INDIRECT("b2:b"&ROW($2:$6)),B$9),$C$2:$C$6),2,)}
公式剖析:
1、B$9&ROW(A1) 连接序号,公式向下复制时会变成B$9连接1,2,3。
2、给所有的张一进行编号。要想生成编号,就需要生成一个不断扩充的区域(INDIRECT("b2:b"&ROW($2:$6)),然后在这个逐行扩充的区域内统计“张一”的个数,在连接上$B$2:$B$6后就可以对所有的张一进行编号了。
3、IF({1,0}把编号后的B列和C组重构成一个两列数组。
通过以上的讲解,需要知道,VLOOKUP函数的基本用法是固定的,要实现高级查找,就需要借助其他函数来重构查找内容和查找数组。