如下图,要从左边表格中查询指定姓名的各项信息,类似的二维数据查询在Excel中十分常见,此前的文章中分享过7种解决方案。
Excel 365版本新增的函数CHOOSECOLS和CHOOSEROWS可以从数据区域中选取指定的列或行,搭配上MATCH也可以轻松实现类似的查询。
例如从B2:E7中选取第4列:
=CHOOSECOLS(B2:E7,4)
这便是需要查询的“职位”信息。
注意,两表的“姓名”顺序是一致的。
MATCH的数组用法可以帮助我们获取“职位”,“性别”,“区域”,“工号”在原数据表中的相对位置:
=MATCH(H1:K1,B1:E1,0)
用CHOOSECOLS依次选取4,1,3,2列就是需要查询的结果,于是将MATCH作为CHOOSECOLS的第二参数:
=CHOOSECOLS(B2:E7,MATCH(H1:K1,B1:E1,0))
在实际应用在,要查找的“姓名”顺序与原表顺序(甚至数量)大多是不一致的。此时直接匹配的整列数据无法正确匹配“姓名”。
沿用同样的思路,MATCH获取所有姓名在原表中的相对位置,再用CHOOSEROWS重新调节行的顺序:
=CHOOSEROWS(CHOOSECOLS(B2:E7,MATCH(H1:K1,B1:E1,0)),MATCH(G2:G7,A2:A7,0))
这个方案表面上公式很长很复杂,一旦理解了MATCH在其中的应用就会豁然开朗。
一个公式就能以二维数据的形式返回结果,省去了向下向右填充公式的步骤,也避免了繁琐的相对引用绝对引用设置。
此前介绍的7种方法只能望其项背。
延伸阅读: