INDEX函數
INDEX函數是返回表或區域中的值或對值的引用。函數INDEX()有兩種形式:數組形式和引用形式。數組形式通常返回數值或數值數組;引用形式通常返回引用。
返回特定行和列交叉處單元格的引用。如果該引用是由非連續選定區域組成的,則可以選擇要用作查找范圍的選定區域。
函數語法
語法:INDEX(array,row_num,column_num)返回數組中指定的單元格或單元格數組的數值。INDEX(reference,row_num,column_num,area_num)返回引用中指定單元格或單元格區域的引用。
參數:Array為單元格區域或數組常數;Row_num為數組中某行的行序號,函數從該行返回數值。如果省略row_num,則必須有column_num;Column_num是數組中某列的列序號,函數從該列返回數值。如果省略column_num,則必須有row_num。Reference是對一個或多個單元格區域的引用,如果為引用輸入一個不連續的選定區域,必須用括號括起來。Area_num是選擇引用中的一個區域,并返回該區域中row_num和column_num的交叉區域。選中或輸入的第一個區域序號為1,第二個為2,以此類推。如果省略area_num,則INDEX函數使用區域1
實例:如果A1=68、A2=96、A3=90,則公式“=INDEX(A1:A3,1,1)”返回68。
INDEX函數返回一個值或者對某個值的引用。與其他函數如MATCH函數聯合使用,可以構造強大的公式。
什么情況下使用INDEX函數?
INDEX函數可以返回一個值或者對某值的引用,因此可以使用該函數來:查找所選月份的銷量;獲取對指定行、列、區域的引用;基于給定數目創建動態區域;以字母順序排序文本列。
INDEX函數的語法
INDEX函數有兩種語法形式—數組和引用。使用數組形式,返回值;使用引用形式,返回引用。
數組形式的語法如下:
INDEX(array,row_num,column_num)
array是一個數組常量或者單元格區域
如果數組僅有1行或列,那么相應的行/列號參數可選
如果數組大于1行或列,并且僅使用row_num或column_num,返回整行或整列組成的數組
如果忽略row_num,則column_num必需
如果忽略column_num,則row_num必需
如果row_num和column_num參數全都使用,則返回row_num和column_num交叉的單元格中的值
如果row_num或column_num是零,返回整列或整行的值組成的數組
引用形式的語法如下:
INDEX(reference,row_num,column_num,area_num)
reference可以引用一個或多個單元格區域-在括號中封閉非連續的區域
如果在引用中的每個區域僅有1行或1列,那么相應的行/列數參數是可選的
area_num選擇引用中的區域,從其中返回行列交叉處的值
如果忽略area_num參數,使用區域1
如果row_num或column_num是0,返回整列或整行的引用
結果是一個引用,可用于其他函數中
INDEX陷阱
如果row_num和column_num沒有指向數組或引用里的單元格,那么INDEX函數返回#REF!錯誤。
示例1:查找所選月份的銷量
輸入行號,INDEX函數返回引用中該行所在位置的銷量。這里的數字是4,因此返回四月份的銷量。
=INDEX($C$2:$C$8,F2)
要使該公式更靈活,可以基于從下拉列表中選擇的月份使用MATCH函數返回行號。
=INDEX($C$2:$C$8,MATCH($F$2,$D$2:$D$8,0))
示例2: 獲取對指定行、列、區域的引用
本例中,有一個名為MonthAmts的命名區域,由3個非連續的區域組成。MonthAmts區域有3塊-每個月一塊-并且在每塊有4行2列。下面是MonthAmts名稱的命名公式:
=’Ex02′!$B$3:$C$6,’Ex02′!$E$3:$F$6,’Ex02′!$H$3:$I$6
使用INDEX函數,可以返回指定區域和月份的成本或收入。
=INDEX(MonthAmts,B10,C10,D10)
可以乘以INDEX函數的結果,例如單元格F10中的稅計算:
=0.05*INDEX(MonthAmts,B10,C10,D10)
或者,使用CELL函數返回引用,顯示結果所在的單元格的地址,例如單元格G10中的公式:
=CELL(“address”,INDEX(MonthAmts,B10,C10,D10))
示例3:基于給定數目創建動態區域
可以使用INDEX函數創建動態區域。在本例中,已經使用下面的公式創建了名稱為MonthList的命名區域:
=’Ex03′!$C$1:INDEX(‘Ex03′!$C:$C,COUNTA(‘Ex03′!$C:$C))
如果在列C中添加另一個月,將自動顯示在單元格F2中使用MonthList作為數據源的數據有效性下拉列表中。
示例4:按字母順序排序文本列
在最后一個示例中,INDEX函數與幾個其他函數一起組合使用,返回以字母順序排列的月份列表。COUNTIF函數顯示在指定的月名之前有多少個月份名稱。SMALL函數返回列表中最小的項,MATCH函數返回該月份所在的行號。
公式是數組公式,因此輸入完后要按Ctrl+Shift+Enter組合鍵。
=INDEX($C$4:$C$9,MATCH(SMALL(
COUNTIF($C$4:$C$9,”《”&$C$4:$C$9),ROW(E4)-ROW(E$3)),
COUNTIF($C$4:$C$9,”《”&$C$4:$C$9),0))
評論
查看更多