问题情境
问题情境
如下样表:
姓名在左侧数据表中的中间一列,要求在右侧查询区查询出指定姓名的所有信息,前提是不能改变原表结构。
在这种情况下,很多人首先想到的是VLOOKUP,但此种情况是:姓名在中间,如果查询“单位”与“职位”,需要逆向查找,而查“性别”与“学历”,有不需要逆向查询,这种情况下,很难用VLOOKUP写出一个公式来解决。
这就需要 INDEX+MATCH组合了。此组合最大的好处在于不需要考虑正向逆向的问题。
公式实现
在H2单元格输入公式:
=INDEX($A$1:$E$17,MATCH($G$2,$C1:$C17,0),MATCH(H1,$A1:$E1,0))
确定,即可得指定姓名的性别,公式向右填充,可得所有信息。
如下图:
公式解析
总公式:
=INDEX($A$1:$E$17,MATCH($G$2,$C1:$C17,0),MATCH(H1,$A1:$E1,0))
其中:
MATCH($G$2,$C1:$C17,0) :匹配出G2单元格的姓名在C1:C17区域在第几行,例如,吴五在第六行,本部分返回值是6;
MATCH(H1,$A1:$E1,0):匹配出H1单元格的“性别”在A1:E1区域在第几列,本部分返回值是4;
INDEX($A$1:$E$17,MATCH($G$2,$C1:$C17,0),MATCH(H1,$A1:$E1,0)):是在A1:E17区域查找姓名行与性别列交叉点的值,如查询吴五的性别就是返回第6行与第4列的交叉点的值,即是“女”。