回顾
前两篇我们介绍了如何用VLOOKUP实现一对多查询,即一次查询一个条件的多个结果。那如果想一次查询多个条件的多个结果该怎么操作呢?本文就着重介绍一下Excel如何实现多对多查询。

原始数据
原始数据共两列:B列班级、C列姓名。

预期结果
根据E列中班级名称,在F列能够显示该班级所有人员姓名。

解决思路
使用OFFSET函数获得所有结果范围引用,然后用拼接函数将结果序列拼接成字符串,输出在单个单元格中。
操作步骤
将B列进行排序(正序倒序均可)。
在F2单元格中输入公式
=TEXTJOIN("/",TRUE,OFFSET($B$1,MATCH(E2,B:B,0)-1,1,COUNTIF(B:B,E2),1))

3. 向下拖动公式,即可获得所有结果。
公式解析
OFFSET($B$1,MATCH(E2,B:B,0)-1,1,COUNTIF(B:B,E2),1)
-
此函数为该方法的重点,用于获得待查询值所有匹配结果,形式为数组。
-
MATCH(E2,B:B,0)表示查找待查询值在原始数据中的第一次出现行数,用来控制坐标系向下偏移量。 -
COUNTIF(B:B,E2)表示待查询值在原始数据中出现的次数,用来控制数据的选取范围。
- TEXTJOIN可以将上述OFFSET函数产生的数组拼接成字符串。
-
第一个参数表示拼接的符号,第二个参数表示是否忽略空格,第三个参数表示需要拼接的数据。
最后
至此我们多值匹配的三篇文章已经完结,大家不用死记硬背,理解公式原理即可。