在一般情况下,我们只需要针对一列非重复的数据进行多表的数据匹配,可以使用vlookup函数或者index+match函数。但有的时候,我们需要用两列数据确定唯一值,再基于此查找指定的值。
如下图所示,我们有不同年级不同班级的卫生评级,我们可以看到,年级字段是有重复值的, 班级字段也是有重复值的,现在我们需要在给定年级和班级的情况下,找出对应的卫生评级,这种情况下,用普通的vlookup函数或者index+match函数不能解决问题,需要结合数组来得到结果。
可以在G2单元格输入以下公式:
=INDEX(C1:C13,MATCH(E2&F2,A1:A13&B1:B13,0)) #ctrl+shift+enter组合键输入
将E2单元格和F2单元格连接,作为match函数的第一个参数,将A列和B列数据连接,作为match函数的第二个参数,返回查找值在查找区域的相对位置。 再将match返回的结果作为index函数的第二个参数,最后得到结果。
也可以在G2单元格输入以下公式:
=VLOOKUP(E2&F2,IF({1,0},A1:A13&B1:B13,C1:C13),2,FALSE) #组合键输入
将E2和F2连接,作为vlookup函数的第一个参数,用IF({1,0},A1:A13&B1:B13,C1:C13),使用if+常量数组构造一个两列数据作为vlookup函数的第二个参数(第一列是A列和B列的连接,第二列是平均分数),返会查找区域的第二列,最后得到结果。
因为用了两列数据拼接,属于数组函数,所以 以上两个函数都需要按ctrl+shift+enter嵌入公式。
如果C列数据是数值的话,用sumifs就可以解决了,C列是文本的情况下,需要用到以上函数,如果有更简便的方法, 欢迎交流~
数组函数的妙用,如果感觉有用,给个赞呗~