跨多欄使用 INDEX 與 MATCH 查詢
若要透過跨多欄匹配來查詢值,可使用結合 INDEX 與 MATCH 函數的陣列公式,並整合 MMULT、TRANSPOSE 及 COLUMN 函數,即可輕鬆達成目標。

如何透過跨多欄匹配來查詢值?
如上表所示,若需填入每位學生對應的班級,且資料分散在多個欄位中,可先運用 MMULT、TRANSPOSE 與 COLUMN 函數組合產生矩陣陣列;接著由 MATCH 函數找出查詢值的位置,並將該位置傳遞給 INDEX 函數,從陣列中精準擷取所需資料。
通用語法
=INDEX()return_range,(MATCH(1,MMULT(--())))lookup_array=lookup_value),TRANSPOSE(COLUMN()lookup_array)^0)),0)))
√ 注意:這是陣列公式,輸入後需按 Ctrl+Shift+Enter。
- return_range:您希望公式據以返回班級資訊的範圍,即班級資料所在的區域。
- lookup_value:公式用來查找對應班級資訊的值,此處即為給定的姓名。
- lookup_array:列出用來與 lookup_value 進行比較的儲存格範圍,也就是 lookup_value 所對應的值所在的區域;此處指姓名範圍。
- match_type 0: 強制 MATCH 函數尋找第一個與 lookup_value 完全相符的值。
若要查詢 Jimmy 所屬的班級,請在 H5 儲存格中複製或輸入下方公式,並按下 Ctrl+Shift+Enter 以取得結果:
=INDEX()$B$5:$B$7,(MATCH(1,MMULT(--())))$C$5:$E$7=G5),TRANSPOSE(COLUMN()$C$5:$E$7)^0)),0)))
√ 注意:上述的美元符號($)表示絕對參照,這代表當您將公式移動或複製到其他儲存格時,公式中的名稱與類別範圍不會改變。請注意,您不應在代表查閱值的儲存格參照前加上美元符號,因為當您將其複製到其他儲存格時,您希望該參照為相對參照。輸入公式後,請向下拖曳填滿控點,將公式套用至下方的儲存格。

公式說明
=INDEX()$B$5:$B$7,(MATCH(1,))MMULT()--($C$5:$E$7=G5),TRANSPOSE()COLUMN($C$5:$E$7)^0)),0)))
- --($C$5:$E$7=G5): 此部分會逐一比對範圍 $C$5:$E$7 中的每個值是否等於 G5 儲存格的內容,並產生一個由 TRUE 與 FALSE 組成的陣列,如下所示:
{TRUE,FALSE,FALSE;FALSE,FALSE,FALSE;FALSE,FALSE,FALSE}。
雙負號(-——)會將 TRUE 和 FALSE 分別轉換為 1 和 0,形成以下數值陣列:
{1,0,0;0,0,0;0,0,0}。 - COLUMN($C$5:$E$7):COLUMN 函數會傳回範圍 $C$5:$E$7 的欄號,形成陣列:{3,4,5}。
- TRANSPOSE()COLUMN($C$5:$E$7)^0)=TRANSPOSE(){3,4,5}^0): 將數值次方提升至 0 後,陣列 {3,4,5} 中的所有數字都會轉換為 1,形成 {1,1,1}。接著,TRANSPOSE 函數會將直欄陣列轉換為橫列陣列,結果如下:{1;1;1}。
- MMULT()--($C$5:$E$7=G5),TRANSPOSE()COLUMN($C$5:$E$7)^0))=MMULT(){1,0,0;0,0,0;0,0,0},{1;1;1}):MMULT 函數會傳回兩個陣列的矩陣乘積,結果為:{1;0;0}。
- MATCH(1,)MMULT()--($C$5:$E$7=G5),TRANSPOSE()COLUMN($C$5:$E$7)^0)),0)=MATCH(1,){1;0;0},0):match_type 為 0 時,會強制 MATCH 函數傳回陣列 {1;0;0} 中第一個匹配 1 的位置,該位置為 1.
- INDEX()$B$5:$B$7,(MATCH(1,))MMULT()--($C$5:$E$7=G5),TRANSPOSE()COLUMN($C$5:$E$7)^0)),0))) = INDEX($B$5:$B$7INDEX 函數會傳回班級範圍 $B$5:$B$7 中的第 1 個值,也就是 A。
若要輕鬆透過比對多個欄位來查閱數值,您也可以使用我們專業的 Excel 增益集 Kutools For Excel。立即參閱此處說明,快速完成任務!。
相關函數
Excel INDEX 函數會根據指定位置,從範圍或陣列中傳回對應的值。
Excel 的 MATCH 函數會在指定的儲存格範圍中搜尋特定值,並傳回該值的相對位置。
Excel 的 MMULT 函數可傳回兩個陣列的矩陣乘積,所得結果陣列的列數與 array 1 相同,欄數則與 array 2 一致。
Excel 的 TRANSPOSE 函數可旋轉範圍或陣列的方向,例如將橫向表格轉為縱向,或將縱向表格轉為橫向。
COLUMN 函數會傳回公式所在位置的欄號,或指定參照的欄號。例如,公式 =COLUMN(BD) 會傳回 56.
相關公式
當您在 Excel 試算表中處理包含多個欄位與列標題的大型資料庫時,要找出符合多項條件的資料往往相當棘手。此時,您可運用結合 INDEX 與 MATCH 函數的陣列公式,精準達成目標。
若要在 Excel 中同時跨列與欄搜尋資料(也就是找出特定列與欄交點處的值),可善用 INDEX 與 MATCH 函數輕鬆達成。
在某些情況下,您可能需要根據多項條件查詢最接近或近似匹配的值。只要結合 INDEX、MATCH 與 IF 函數,就能在 Excel 中快速完成這項任務。
最佳 Office 生產力工具
Kutools for Excel -助您脫穎而出
| 🤖 | KUTOOLS AI 助手:以以下方式革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、標示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 超級 VLookup:多重條件 | 多重值 | 跨多個工作表 | 模糊查找…… | |
| 進階下拉列表:簡易下拉式清單 | 相依下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位 | 移動欄位 | 切換隱藏欄位的可見狀態 |比較欄位以選擇相同/不同單元格…… | |
| 精選功能:網格聚焦 | 設計視圖 | 增強編輯欄 | 工作簿與工作表管理員|資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符……)| 50+ 圖表 類型(甘特圖……)| 40+ 實用公式(基於生日計算年齡……)| 19 插入工具(插入二維碼,從路徑插入圖片……)| 12 轉換工具(金額轉大寫,匯率轉換……)| 7 合併和拆分工具(高級合併行,拆分 Excel 儲存格……)|……還有更多 |
Kutools for Excel 擁有超過 300 項功能,確保您所需的功能僅需一鍵即可取得……
Office Tab -在 Microsoft Office(包含 Excel)中啟用分頁式閱讀與編輯
- 一秒內在數十份開啟的文件間快速切換!
- 每天為您減少數百次滑鼠點擊,遠離滑鼠手困擾。
- 在檢視與編輯多份文件時,讓您的生產力提升高達 50%。
- 為 Office(包含 Excel)帶來如 Chrome、Edge 與 Firefox 般的高效能分頁體驗。