KutoolsforOffice — 一套方案,五大工具。事半功倍。3 月特賣:20% 折扣

跨多欄使用 INDEX 與 MATCH 查詢

作者Amanda Li修改日期

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

INDEX MATCH 多欄位 1

如何透過跨多欄匹配來查詢值?

如上表所示,若需填入每位學生對應的班級,且資料分散在多個欄位中,可先運用 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 MATCH 多欄位 2

公式說明

=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 INDEX 函數會根據指定位置,從範圍或陣列中傳回對應的值。

Excel MATCH 函數

Excel 的 MATCH 函數會在指定的儲存格範圍中搜尋特定值,並傳回該值的相對位置。

Excel MMULT 函數

Excel 的 MMULT 函數可傳回兩個陣列的矩陣乘積,所得結果陣列的列數與 array 1 相同,欄數則與 array 2 一致。

Excel TRANSPOSE 函數

Excel 的 TRANSPOSE 函數可旋轉範圍或陣列的方向,例如將橫向表格轉為縱向,或將縱向表格轉為橫向。

Excel COLUMN 函數

COLUMN 函數會傳回公式所在位置的欄號,或指定參照的欄號。例如,公式 =COLUMN(BD) 會傳回 56.


相關公式

使用 INDEX 與 MATCH 進行多條件查詢

當您在 Excel 試算表中處理包含多個欄位與列標題的大型資料庫時,要找出符合多項條件的資料往往相當棘手。此時,您可運用結合 INDEX 與 MATCH 函數的陣列公式,精準達成目標。

使用 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 – 支援英文、西班牙文、德文、法文、中文及其他 40+ 種語言!

Kutools for Excel 擁有超過 300 項功能,確保您所需的功能僅需一鍵即可取得……


Office Tab -在 Microsoft Office(包含 Excel)中啟用分頁式閱讀與編輯

  • 一秒內在數十份開啟的文件間快速切換!
  • 每天為您減少數百次滑鼠點擊,遠離滑鼠手困擾。
  • 在檢視與編輯多份文件時,讓您的生產力提升高達 50%。
  • 為 Office(包含 Excel)帶來如 Chrome、Edge 與 Firefox 般的高效能分頁體驗。