作表中有多列,其中有些列的值是相同的,我们要找到同时符合几列条件的值。例如下图所示的工作表,列A中是学生姓名,有重复,列B中是科目,列C中是考试成绩。现在,我们需要找出某学生的某科目的成绩。
作表中有多列,其中有些列的值是相同的,我们要找到同时符合几列条件的值。例如下图所示的工作表,列A中是学生姓名,有重复,列B中是科目,列C中是考试成绩。现在,我们需要找出某学生的某科目的成绩。
例如,要找出张三的物理成绩。在工作表中,一眼就可以看出是80,但是如果学生多了呢?就不好找了!
如何使用公式找出张三的物理成绩?
先不要看下面的答案,自已试一试。
公式思路
将列A和列B的值结合,用作供搜索的具有不重复值的列表;将张三和物理结合,用作搜索的字符串。找出行号后,其对应的列C中的值即为成绩。
公式解析
解法1:使用辅助列+普通公式
在单元格F2中输入公式:
=A2&B2
下拉填充公式,得到供搜索的具有不重复值的列表,如下图所示:
在单元格H2和I2中放置要查找的值,那么在单元格H4中输入查找公式为:
=INDEX(C2:C15,MATCH(H2&I2,F2:F15,0))
结果如下图所示:
MATCH函数在单元格区域F2:F15中搜索由H2和I2组合的字符串,得到相匹配的值所在的行号,INDEX函数在区域C2:C15中找到相应行的值。
解法2:使用数组公式
在单元格H4中输入数组公式(公式输入完后要按Ctrl+Shift+Enter组合键):
=INDEX(C:C,MATCH(H2&I2,$A$1:$A$15&$B$1:$B$15,0))
结果如下图所示:
公式中:$A$1:$A$15&$B$1:$B$15将得到下面的数组:{“学生姓名科目”;”张三语文”;”张三数学”;”张三英语”;”张三物理”;”张三化学”;”张三生物”;”李四语文”;”李四数学”;”李四英语”;”李四物理”;”李四化学”;”李四生物”;”王五语文”;”王五数学”},MATCH函数在上述数组中查找H2&I2的值即“张三物理”,得到行号,再将其作为INDEX函数的参数在列C中找到符合条件的值80。
小结
在编写公式时,往往不是一帆风顺的,总会有这样那样不满足基本函数的情形。然而,加上一些技巧,就可以化解这样的难题。本例中,列A中有重复值,但是将列A和列B合并后的列表就没有重复值了,接着将要查找的值合并后再查找,即可得到所需结果。