在下圖中是一個由多個2欄一組(代碼、班級)所組成的資料表,如何查詢班級的代碼?
如果你要使用 VLOOKUP 函數來查表時,要查詢的內容必存在於第一欄中,但此例是內容分散在多個欄位中,所以不適合使用 VLOOKUP 函數。
改用 INDEX 函數來試試。
【公式設計與解析】
儲存格K3:=INDEX($A$3:$G$26,SUMPRODUCT(($B$3:$H$26=J3)*ROW($B$3:
$H$26))-2,SUMPRODUCT(($B$3:$H$26=J3)*COLUMN($B$3:$H$26))-1)
複製儲存格K3,貼至儲存格K3:K26。
(1) 第1式:=SUMPRODUCT(($B$3:$H$26=J3)*ROW($B$3:$H$26))
藉以找出儲存格J3的內容位於基本資料表的那一列。
ROW($B$3:$H$26) 可以傳回儲存格範圍裡每個儲存格的列編號。
(2) 第2式:=SUMPRODUCT(($B$3:$H$26=J3)*COLUMN($B$3:$H$26))
藉以找出儲存格J3的內容位於基本資料表的那一欄。
COLUMN($B$3:$H$26) 可以傳回儲存格範圍裡每個儲存格的欄編號。
(3) 儲存格K3:=INDEX($A$3:$G$26,第1式-2,第2式-1)
藉由第1式和第2式的傳回值,代入 INDEX 函數中的列和欄參數,即可傳回對應的儲存格內容。
而公式中的「-2、-1」乃是在做微調。因為基本資料表是由第3列才開始,而代碼的欄編號永遠小於班級的欄編號「1」。
文章標籤
全站熱搜
留言列表