先看一下如下动态图:
这种通过月份跟水果名的选择,如何实现这行与列的交叉查询?
我带来了三个简单又实用的小妙招,保证让你轻松上手!
第一妙招:VLOOKUP与MATCH联手查询
在你想显示查询结果的单元格中,输入公式:
=VLOOKUP(I1,A:F,MATCH(I2,A1:F1,0),0)
(1)查找值:因为VLOOKUP函数是按左向右查找(垂直查找),所以这里选择月份
所在单元格I1,作为查找值。
(2)查找范围:选择包含所有数据的区域,比如A:F。
(3)返回值列数:这里我们不直接输入数字,因为水果名是通过下拉菜单选择的,所在的列是随时变化的,这里需要用MATCH函数来确定列数。
MATCH函数的语法是“=MATCH(查找值, 查找范围, 匹配方式)”
输入MATCH(I2,A1:F1,0)
1、I2是水果名如香蕉,
2、查找香蕉在第一行所在的列,是D列,那它就返回列数4
3、选择精确匹配:0
(4)匹配方式:选择精确匹配,即输入“FALSE
第二妙招:INDEX与MATCH组合查询
INDEX(区域,行号,列号)
INDEX函数是通过指定的行号和列号来确定并返回区域中交叉位置的值。
这里的月份行号跟水果名的列号都用Match函数来确定。
输入公式:
=INDEX(A2:F7,MATCH(I1,A1:A7,0),MATCH(I2,A1:F1,0))
来看看:I1单元格里是5月,
则MATCH(I1,A1:A7,0)公式返回的值是:6
I2单元格里是香蕉,
则MATCH(I2,A1:F1,0)公式返回的值是:4
将MATCH函数的结果代入INDEX函数的行号和列号位置,完成INDEX函数的编写
按下回车键,查询结果就会显示在I3单元格中。
第三妙招:SUMPRODUCT函数查询
最后,我们来看看如何利用SUMPRODUCT函数来实现这一查询功能。
输入公式:
=SUMPRODUCT((A2:A7=I1)*(B1:F1=I2)*B2:F7)
现在先拆解一下公式:
(1)A2:A7=I1
这里判断5月在月份A2开始的位置,以逻辑TRUE与FALSE返回。如果是TRUE,5月在月份第5个位置。
同样:B1:F1=I2条件来判断香蕉的位置是3
(2)=(A2:A7=I1)*(B1:F1=I2)
用括号把前面这两个条件用“*”连接,计算出交叉位置。
因为TRUE与FALSE在excel中分别代表的是1和0.所以只有当TRUE*TRUE才会等于1。
因为这是两组数组运算。(有关数组公式可以查看我以前的文章)
(3)=(A2:A7=I1)*(B1:F1=I2)*B2:F7
把(A2:A7=I1)*(B1:F1=I2)得到的表格与原表中B2:F7的数量一一对应相乘:
就能计算出这样一个表格:
(4)(A2:A7=I1)*(B1:F1=I2)*B2:F7外面包一个sumproduct函数,就是汇总计算出865一个数来。
因为我们只需一个数量。
这三种交叉查询的方法,你学会了吗?
评论 (0)