Skip to main content

使用 INDEX 擷取第 n 個匹配項

Author: Amanda Li Last Modified: 2025-05-12

若要從範圍中找到某個值的第 n 個匹配項並檢索其對應的數據,您可以使用基於 INDEXROW、SMALL 和 IF 函數的公式。

retrieve nth match with index 1

如何使用 INDEX 擷取與第 n 個匹配項相關的資訊?

若要獲取如上表所示 Usain Bolt 的第 3 次匹配的資訊,您可以將 ROW 和 IF 函數結合使用來獲得一個由所有 Usain Bolt 值的行號組成的陣列。然後使用 SMALL 函數檢索您指定的第 n 個匹配值的行號。最後,將結果輸入到 INDEX 函數中以獲取同一行的相應資訊。

通用語法

=INDEX(return_range,SMALL(IF(lookup_array=lookup_value,ROW(lookup_array-ROW(INDEX(lookup_array,1,1))+1),n))

√ 注意:這是一個陣列公式,需要您使用 Ctrl + Shift + Enter 輸入。

  • return_range: 返回與第 n 個匹配項相應資訊的範圍。這裡指的是年份或時間範圍。
  • lookup_array: 查找第 n 個匹配項行位置的範圍。這裡指的是獲勝者範圍。
  • lookup_value: 您指定用於查找其第 n 個匹配項的值。這裡指的是 Usain Bolt。
  • n: 表示第 n 個匹配項。若要找到某個值的第 1 次匹配,將 n 設為 1;若要找到第 2 次匹配,將 n 設為 2。

若要獲取 Usain Bolt 第 3 次匹配的資訊,請在 G8 和 G9 單元格中複製或輸入以下公式,然後按 Ctrl + Shift + Enter 獲取結果:

年份(單元格 G8)
=INDEX(B6:B12,SMALL(IF(C6:C12C6:C12C6:C12=G5,ROW(C6:C12C6:C12C6:C12-ROW(INDEX(C6:C12C6:C12C6:C12,1,1))+1),G6))
時間(單元格 G9)
=INDEX(D6:D12,SMALL(IF(C6:C12C6:C12C6:C12=G5,ROW(C6:C12C6:C12C6:C12-ROW(INDEX(C6:C12C6:C12C6:C12,1,1))+1),G6))

retrieve nth match with index 2

公式的解釋

這裡我們以下面的公式為例:

=INDEX(B6:B12,SMALL(IF(C6:C12=G5,ROW(C6:C12)-ROW(INDEX(C6:C12,1,1))+1),G6))

  • ROW(C6:C12): ROW 函數返回 C6:C12 範圍內每個單元格的行號,形成如下陣列:{6;7;8;9;10;11;12}
  • ROW(INDEX(C6:C12,1,1)): INDEX 和 ROW 函數返回查詢範圍 C6:C12 在此 Excel 工作表中的第一行號,即 6
  • IF(C6:C12=G5,IF(C6:C12=G5,ROW(C6:C12)--ROW(INDEX(C6:C12,1,1))+1)+1) = IF(C6:C12=G5,IF(C6:C12=G5,{6;7;8;9;10;11;12}--6+1)+1): IF 函數檢查範圍 C6:C12 中的每個值是否與單元格 G5 中的值 Usain Bolt 匹配。如果匹配,函數將返回“其對應行號 - 6 + 1”的結果;否則返回 FALSE。因此,結果會形成如下陣列:{FALSE;2;3;4;FALSE;FALSE;FALSE}
  • SMALL(SMALL(IF(C6:C12=G5,ROW(C6:C12)-ROW(INDEX(C6:C12,1,1))+1),G6),G6) = SMALL(SMALL({FALSE;2;3;4;FALSE;FALSE;FALSE},G6),G6): 此片段返回陣列中的第 3 個(單元格 G6 中的值)最小值,即 4
  • INDEX(B6:B12,SMALL(IF(C6:C12=G5,ROW(C6:C12)-ROW(INDEX(C6:C12,1,1))+1),G6)) = INDEX(B6:B12,4) INDEX 函數返回年份範圍 B6:B12 中的第 4 個值,即 北京 2008

相關函數

Excel INDEX 函數

Excel INDEX 函數根據給定的位置從範圍或陣列中返回顯示的值。

Excel IF 函數

IF 函數是 Excel 工作簿中最簡單且最有用的函數之一。它執行一個簡單的邏輯測試,根據比較結果返回一個值,如果結果為 TRUE,則返回一個值;如果結果為 FALSE,則返回另一個值。

Excel ROW 函數

Excel ROW 函數返回引用的行號。


相關公式

使用 VLOOKUP 擷取第 n 個匹配項

假設您有一個值列表及其相應的資訊,若要擷取某個值的第 n 個匹配項的相關資訊,您可以使用基於 VLOOKUP 函數的公式。

擷取與最低 n 個值相關的資訊

若要在 Excel 中的列表、表格或行中檢索與最小值、第 2 小值或第 n 小值相對應的數據,您可以將 INDEX 和 MATCH 公式與 SMALL 函數一起使用。

獲取與最大值相對應的資訊

若要在 Excel 中的列表、表格或行中檢索與最大值相對應的數據,您可以將 INDEX 和 MATCH 公式與 MAX 函數一起使用。

獲取與最小值相對應的資訊

若要在表格中檢索與最小值相對應的數據,您可以將 INDEX 和 MATCH 公式與 MIN 函數一起使用。


最佳的辦公生產力工具

Kutools for Excel - 幫助您脫穎而出

? Kutools AI 助手:基於智能執行生成代碼創建自訂公式分析數據並生成圖表調用 Kutools 函數…來徹底改變數據分析方式。
熱門功能查找、標記或識別重複值  |  刪除空行  |  合併列或單元格而不丟失數據  |  四捨五入無需公式 ...
超級 VLookup多條件  |  多值  |  跨多工作表  |  模糊查找...
高級下拉列表簡易下拉列表  |  依賴下拉列表  |  多選下拉列表...
列管理器添加特定數量的列  |  移動列  |  切換隱藏列的可見狀態  比較列以選擇相同和不同的單元格 ...
特色功能網格聚焦  |  設計檢視  |  增強編輯欄  |  工作簿與工作表管理器 | 資源庫(自動文本)  |  日期提取器  |  合併資料  |  加密/解密儲存格  |  按清單發送電子郵件  |  超級篩選  |  特殊篩選(篩選粗體/斜體/刪除線...) ...
頂級 15 種工具集12 個文字工具添加文本刪除特定字符 ...)  |  50+ 圖表 類型甘特圖 ...)  |  40+ 實用 公式基於生日計算年齡 ...)  |  19 個插入工具插入QR碼從路徑插入圖片 ...)  |  12 個轉換工具金額轉大寫匯率轉換 ...)  |  7 個合併與分割工具高級合併行分割Excel單元格 ...)  |  ... 還有更多

Kutools for Excel 擁有超過 300 種功能,確保您需要的功能只需點擊一下即可實現...


Office Tab - 啟用 Microsoft Office(包括 Excel)中的分頁閱讀和編輯功能

  • 一秒鐘內在數十個打開的文檔之間切換!
  • 每天為您減少數百次鼠標點擊,告別滑鼠手。
  • 當查看和編輯多個文檔時,您的工作效率提高 50%。
  • 為 Office(包括 Excel)帶來高效的分頁功能,就像 Chrome、Edge 和 Firefox 一樣。