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(區域,行數,列數)
=INDEX(B2:G6,MATCH(B10,$A$2:$A$6,0),MATCH(A10,$B$1:$G$1,0))
閱讀更多 excel函數與vba實例 的文章