回答網友提問:

在 Excel 裡有一個資料表(參考下圖),如何核對資料表的編號和欄位名稱,如果:

(1)有 V 者標示補休

(2)無 V 者標示加班費

Excel-核對資料表的編號和欄位名稱查詢對應的結果(INDEX,MATCH,INDIRECT)

設計與解析

儲存格D11:=IF(INDEX($A$3:$E$8,MATCH(A11,$A$3:$A$8,0),
MATCH(C11,$A$2:$E$2,0))="V","補休","加班費")

複製儲存格D11,貼至儲存格D11:D16。

(1)MATCH(A11,$A$3:$A$8,0)

利用MATCH函數查詢儲存格A11,在編號欄位中的位置,會傳回一個數字。本例為:1。

(2)MATCH(C11,$A$2:$E$2,0)

利用MATCH函數查詢儲存格C11,在標題列中的位置,會傳回一個數字。本例為:3。

(3)INDEX($A$3:$E$8,第(1)式,第(2)式)

INDEX函數利用第(1)式和第(2)式傳回值,對應得到資料陣列中的值,本例為:V。

(4)IF(第(3)式="V","補休","加班費")

根據第(3)式傳回值,判斷是否為「V」,如果是則顯示「補休」,如果不是則顯示「加班費」。本例為:補休。

 

第二種作法

選取儲存格A2:E8,按Ctrl+Shift+F3鍵,勾選「頂端列」,定義名稱:編號、姓名、休息日、國定假日、延時。

Excel-核對資料表的編號和欄位名稱查詢對應的結果(INDEX,MATCH,INDIRECT)

儲存格D11:=IF(INDEX(INDIRECT(C11),MATCH(A11,編號,0))="V","補休","加班費")

(1)INDIRECT(C11)

利用INDIRECT函數將儲存格C11的內容轉換為儲存格範圍。

(2)MATCH(A11,編號,0)

利用MATCH函數查詢儲存格A11,在編號欄位中的位置,會傳回一個數字。本例為:1。

(3)INDEX(INDIRECT(C11),MATCH(A11,編號,0))

INDEX函數利用第(1)式傳回值(欄位)和第(2)式傳回值(第幾筆),對應得到資料陣列中的值,本例為:V。

(4)IF(第(3)式="V","補休","加班費")

根據第(3)式傳回值,判斷是否為「V」,如果是則顯示「補休」,如果不是則顯示「加班費」。本例為:補休。

【參考資料】

Excel-核對資料表的編號和欄位名稱查詢對應的結果(IND INDEX 函數參考微軟提供的說明:INDEX 函數

Excel-核對資料表的編號和欄位名稱查詢對應的結果(IND MATCH 函數參考微軟提供的說明:MATCH 函數

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

arrow
arrow
    文章標籤
    Excel INDEX MATCH INDIRECT
    全站熱搜
    創作者介紹
    創作者 vincent 的頭像
    vincent

    學不完.教不停.用不盡

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