在 Excel 中有時會用到多表格的查詢(如下圖),你可以使用各種查詢的公式,例如:INDEX、VLOOKUP、OFFSET等,本例以3種不同的做法來練習在多個表格中查詢,也要看看如何簡化公式。前提是多個表格的格式要是一致的。

Excel-多表格查詢(INDEX,MATCH,INDIRECT,OFFSET)

若要在儲存格H2:J2中使用了3 個條件來搜尋(概念如下圖),可以看成是 3D 的搜尋。

Excel-多表格查詢(INDEX,MATCH,INDIRECT,OFFSET)

 

【公式設計與解析】

1. 使用 INDEX 函數的參照形式

儲存格K2:

公式:=INDEX(($B$2:$F$4,$B$7:$F$9,$B$12:$F$14,$B$17:$F$19,$B$22:$F$24),
MATCH($I2,$A$2:$A$4,0),MATCH(J$2,$B$1:$F$1,0),MATCH(H2,{"甲班","乙班",
"丙班","丁班","戊班"},0))

INDEX 函數有兩種查表形式:

(1) array 之陣列形式(傳回指定儲存格或儲存格陣列的值)

(2) reference之參照形式(傳回指定儲存格的參照)。

本例使用 reference之參照形式,語法如下:

INDEX(reference, row_num, [column_num], [area_num])

Reference:一個或多個儲存格範圍的參照。(若是非相鄰的選取範圍做為 reference,則必須使用括號括住 reference)

Row_num:參照中要傳回參照的列數。

Column_num:參照中要傳回參照的欄數。

Area_num:在參照中選取範圍以傳回 Row_num 與 Column_num 的交集。

Excel-多表格查詢(INDEX,MATCH,INDIRECT,OFFSET)

公式中利用 MATCH 函數來查詢位置,例如:

(1) MATCH($I2,$A$2:$A$4,0)

查詢儲存格I2在儲存格A2:A4中的位置,傳回一個數值(本例傳回3)。

(2) MATCH(J$2,$B$1:$F$1,0)

查詢儲存格J2在儲存格B1:F1中的位置,傳回一個數值(本例傳回2)。

(3) MATCH(H2,{"甲班","乙班","丙班","丁班","戊班"},0)

查詢儲存格H2(丙班)在{"甲班","乙班","丙班","丁班","戊班"}陣列中的位置,傳回一個數值(本例傳回3)。

 

2. 使用 OFFSET 函數

儲存格K2:

公式:=OFFSET($A$1,MATCH($I2,$A$2:$A$4,0)+5*(MATCH(H2,{"甲班","乙班",
"丙班","丁班","戊班"},0)-1),MATCH(J$2,$B$1:$F$1,0))

(1) MATCH($I2,$A$2:$A$4,0)

查詢儲存格I2在儲存格A2:A4中的位置,傳回一個數值(本例傳回3)。

(2) 5*(MATCH(H2,{"甲班","乙班","丙班","丁班","戊班"},0)-1)

查詢儲存格H2(丙班)在{"甲班","乙班","丙班","丁班","戊班"}陣列中的位置,傳回一個數值(本例傳回3)。其中『5*』的用意是因為每個表格的位置相差 5 列。

(3) MATCH(J$2,$B$1:$F$1,0)

查詢儲存格J2在儲存格B1:F1中的位置,傳回一個數值(本例傳回2)。

Excel-多表格查詢(INDEX,MATCH,INDIRECT,OFFSET)

 

3. 使用 INDEX+INDIRECT 函數配合定義名稱

先定義儲存格名稱。

(1) 選取儲存格A1:F4,按 Ctrl+F3 鍵,開啟「名稱管理員」對話框。

(2) 按下「新增」按鈕,名稱已自動帶入「甲班」,參照到已自動帶入「$A$1:$F$4」。

Excel-多表格查詢(INDEX,MATCH,INDIRECT,OFFSET)

(3) 按下「確定」按鈕,即新增一個名稱定義:甲班。

Excel-多表格查詢(INDEX,MATCH,INDIRECT,OFFSET)

(4)重覆步驟(1)至步驟(3),定義名稱:乙班、丙班、丁班、戊班。

 

儲存格K2:

公式:=INDEX(INDIRECT(H2),MATCH($I2,$A$2:$A$4,0)+1,MATCH
(J$2,$B$1:$F$1,0)+1)

(1) INDIRECT(H2)

利用 INDIRECT 函數將儲存格H2的內容轉換為一個儲存格範圍。(先前已定義名稱)

(2) MATCH($I2,$A$2:$A$4,0)+1

查詢儲存格I2在儲存格A2:A4中的位置,傳回一個數值(本例傳回3)。『+1』是因為定義名稱時是以儲存格A1為起始,多了這個儲存格,所以相對位置要多 1。

(3) MATCH(J$2,$B$1:$F$1,0)+1

查詢儲存格J2在儲存格B1:F1中的位置,傳回一個數值(本例傳回2)。『+1』是因為定義名稱時是以儲存格A1為起始,多了這個儲存格,所以相對位置要多 1。

Excel-多表格查詢(INDEX,MATCH,INDIRECT,OFFSET)

學不完.教不停.用不盡文章列表

arrow
arrow

    vincent 發表在 痞客邦 留言(2) 人氣()