Excel公式中查找满足行列条件数据的三种解法
1. 灵活使用vlookup, index+match, filter函数可以实现多条件的一键查找功能。2. 以上方法,通过wps验证成功。2019版Excel可能不支持filter函数,建议大家使用wps来测试。3. 补充:利用双match法做下面的题:双match法做题。
一、问题的提出
在Excel群里有人提出这样一个问题,如何实现拖动查找G列人名不同月份的工资。
问题的提出
群里进行了热烈的讨论,最终确定了三种方法,记录下来,以备后续学习巩固。
二、问题的解决
1. index+双match法
这种方法是依托index函数,通过查找指定数据对应工资的行列坐标来锁定数据。
我们可以在H2中输入下面的公式:
=INDEX($B$2:$E$9,MATCH($G2,$A$2:$A$9,0),MATCH(H$1,$B$1:$E$1,0))
公式中使用了 INDEX 和 MATCH 函数的组合来从数据区域中找到特定的值。以下是公式中每个部分的详细解释:
1) INDEX 函数
语法:INDEX(数据区域, 行号, 列号)
这里的 INDEX($B$2:$E$9, row_num, column_num) 从区域 $B$2:$E$9 中,根据给定的行号 (row_num) 和列号 (column_num),返回该位置的单元格值。
2)MATCH($G2, $A$2:$A$9, 0)
作用:找到 $G2 的值在 $A$2:$A$9 区域中的位置,并返回相对行号。
MATCH 函数在 $A$2:$A$9 区域中查找与 $G2 值相同的单元格,返回匹配项的相对位置(第几行)。
0 表示精确匹配,如果没有找到完全匹配的值,MATCH 将返回错误。
3)MATCH(H$1, $B$1:$E$1, 0)
作用:找到 H$1 的值在 $B$1:$E$1 区域中的位置,并返回相对列号。
MATCH 函数在 $B$1:$E$1 区域中查找与 H$1 单元格值相同的列位置。
0 表示精确匹配,返回该值在 $B$1:$E$1 中的相对列号。
整体公式的工作原理
INDEX 使用 MATCH($G2, $A$2:$A$9, 0) 得到的行号,以及 MATCH(H$1, $B$1:$E$1, 0) 得到的列号,从 $B$2:$E$9 区域中返回相应的单元格值。
简而言之,公式查找 $A$2:$A$9 中与 $G2 匹配的行,以及 $B$1:$E$1 中与 H$1 匹配的列,返回 $B$2:$E$9 区域中对应行和列的交叉单元格值。
2. 双filter法
公式是:
=FILTER(FILTER($B$2:$E$9,($A$2:$A$9=$G2)),$B$1:$E$1=H$1,"")
效果图
使用了嵌套的 FILTER 函数来从数据区域中筛选出特定条件的值。以下是公式中各部分的含义:
1)内层 FILTER($B$2:$E$9, ($A$2:$A$9 = $G2)):
从区域 $B$2:$E$9 中筛选出 $A$2:$A$9 中与 $G2 相等的行。只保留这些符合条件的行。
2. 外层 FILTER(..., $B$1:$E$1 = H$1, ""):
在前一步筛选出的数据中,进一步筛选出 $B$1:$E$1 中与 H$1 匹配的列。如果没有匹配值,返回空字符串 ""。
总结该公式的作用是:
首先筛选出 $A$2:$A$9 区域中与 $G2 匹配的行。
然后在这些行中,筛选出 $B$1:$E$1 中与 H$1 匹配的列。
最终返回符合行和列条件的单元格值。
3. vlookup法
根据vlookup的用法,如果使用vlookup函数,查找值($G2)必须在数据区域的第一列(也就是 $A$2:$A$9)。
VLOOKUP 的结果列(H$1 表头对应的列)在查找列右侧。
=VLOOKUP($G2, $A$2:$E$9, MATCH(H$1, $B$1:$E$1, 0) + 1, FALSE)
公式解释:
$G2 是查找值,即目标行值。$A$2:$E$9 是包含查找列和数据的区域。
MATCH(H$1, $B$1:$E$1, 0) + 1 计算出 VLOOKUP 中结果列的索引。
+1 是因为 VLOOKUP 区域从 $A 列开始,而 MATCH 只包含 $B$1:$E$1。
FALSE 表示精确匹配。
三、学后总结
1. 灵活使用vlookup, index+match, filter函数可以实现多条件的一键查找功能。
2. 以上方法,通过wps验证成功。2019版Excel可能不支持filter函数,建议大家使用wps来测试。
3. 补充:利用双match法做下面的题:
双match法做题

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)