Index函使用的方法有很多种,我们在使用过程中经常会有碰到引用不同类型的数据,今天我们就来讲一下这个函数的一些基本用法。
一、基本用法
1、从单行/列中提取指定位置的值
【例1】在下表中根据已知的行/列数,提取对应的值。
从A列提取第4个位置的值,结果为A4的值。
=INDEX(A:A,4)
从A3:D3区域提取第3个位置的值。结果是C3的值
=INDEX(A3:D3,3)
小结:一个单行/列的区域,只要给定行/列数,就可以提取相应位置的值。即:
=INDEX(区域,行/列数)
需要注意的是,行和列数是指在区域内的行、列数,并不是在整个工作表中的行列数。(入门篇只介绍区域引用,数组引用在中高级篇中讲解)
2、从一个多行多列区域提取指定值
【例2】已知区域B2:D6, 提取这个区域中第4行第3列的值。
C12公式:
=INDEX(B2:F9,4,3)
小结:给定行和列数,就可以从给定的多行多列区域中提取数据了。即:
=INDEX(区域,行数,列数)
注:这里的行和列数,依旧是在区域内部的行列数。
3、从多个区域中提取数据(多区域用法)
【例3】给定2个区域,取第2个区域的第5行第3列的值。
G12 公式:
=INDEX((A2:E9,G2:K9),5,3,2)
小结:index第一个参数可以是多个区域,具体要引用哪个区域,由最后一个参数决定,1引用第一个,2引用第二个.....
二、应用示例
4、提取A列最后一次的销售时间
【例】如下图所示,要求提取B列最后一次销量(假设表中没有空行)
公式:
=INDEX(B:B,COUNTA(B:B))
公式说明:
Counta可以统计非空单元格的个数,本例中有11行,那么counta的结果就是11,最后利用index提取B列第11个值,即最后一个销量。
5、反向查找
【例】如下图所示,要求根据产品名称,查找编号。
分析:
先利用Match函数根据产品名称在C列查找位置
=MATCH(B13,C5:C10,0)
再用Index函数根据查找到的位置从B列取值。完整的公式即为:
=INDEX(B5:B10,MATCH(B13,C5:C10,0))
6、双向查找
【例2】如下图所示,要求根据月份和费用项目,查找金额
分析:
先用MATCH函数查找3月在第一行中的位置
=MATCH(B10,$A$2:$A$6,0)
再用MATCH函数查找费用项目在A列的位置
= MATCH(A10,$B$1:$G$1,0)
最后用INDEX根据行数和列数提取数值
INDEX(区域,行数,列数)