如何在 Excel 中執行 VLOOKUP 並傳回最後一個相符的值?
Excel 的 VLOOKUP 函數是根據特定條件搜尋表格資料時最廣泛使用的工具之一。然而,VLOOKUP 預設僅能擷取資料集中第一個符合查詢條件的值。當您的資料包含重複的檢索值,而您需要取得相符項目中的最後一筆記錄時,這種限制便顯得尤為明顯。此類需求常見於追蹤最新狀態、查詢客戶最近的銷售紀錄,或在依時間排序的清單中找出最後一筆登錄資料等情境。為突破此限制,Excel 提供多種替代方案,包括運用 LOOKUP、XLOOKUP、INDEX 與 MATCH 等函數,以及操作直覺的第三方工具(如 Kutools for Excel)。本文將深入解析每種方法的運作原理、實際應用場景與優缺點,並提供實用技巧,助您輕鬆實現「VLOOKUP 並傳回最後一個相符值」的目標。

在 Excel 中執行 VLOOKUP 並回傳最後一個相符的值
使用 LOOKUP 函數執行 VLOOKUP 並傳回最後一個相符值
雖然 VLOOKUP 無法直接找出最後一個相符項目,但 LOOKUP 函數卻能提供一個巧妙的替代方案。當您的資料集未經排序,且希望採用適用於幾乎所有 Excel 版本的公式解法時,LOOKUP 方法尤其實用。此公式巧妙運用 LOOKUP 處理陣列與錯誤值的方式,迅速鎖定目標值最後一次出現的位置。
若要使用 LOOKUP 提取最後一個相符的值,請依照下列步驟操作:
1. 選取要顯示最後一個相符值的儲存格,並輸入下列公式:
=LOOKUP(2,1/($A$2:$A$12=E2),$C$2:$C$12) 2. 按下 Enter。若需將公式套用至其他列,只要向下拖曳填滿控制點至所需範圍,即可輕鬆對多筆搜尋值執行最後相符值查詢!

$A$2:$A$12為查詢條件欄。E2為包含要查詢值的儲存格。$C$2:$C$12為返回列(結果)。
1/($A$2:$A$12=E2)會產生一個陣列,在條件成立的位置其值為 1,其餘位置則為#DIV/0!錯誤。LOOKUP(2,...)善用 LOOKUP 會忽略錯誤值的特性,並搜尋不存在的數字 2. 此時,LOOKUP 會比對陣列中最後一個 1,並從結果陣列中回傳對應的值——精準取得最後一個相符的結果。
提示與注意事項:
- 請確保查詢範圍與回傳範圍的大小一致,並在向下填滿時使用絕對參照。
- 若查詢陣列包含空白或錯誤值,可能會影響結果。請先清理資料,或視需要以
IFERROR函數包覆公式,確保運算穩定可靠! - 若您收到
#N/A,請確認查詢值確實存在於來源區域中。
優點:適用於所有 Excel 版本,且無需特殊陣列輸入要求。
限制:若查詢陣列中包含空白或錯誤值,穩定性較差;若未搭配包裝函數(例如 )IFERROR),則無法自訂錯誤訊息輸出。
使用 Kutools for Excel 執行 VLOOKUP 並傳回最後一個相符值
Kutools for Excel 提供直覺又高效的方式,輕鬆傳回最後一個相符值,非常適合偏好圖形化介面、不使用公式,或需快速處理大型資料集的使用者!內建於 Kutools 高級 LOOKUP 套件的從下到上查找工具,不僅能免除複雜公式、自動處理錯誤,還可將結果同時輸出至多個儲存格,大幅節省時間並降低手動輸入錯誤。此方法特別適合不熟悉進階 Excel 函數,或希望盡量減少手動編輯公式的使用者,立即體驗更聰明的資料處理方式!
安裝 Kutools for Excel 後,請依照下列步驟操作:
1. 點擊 Kutools> 高級 LOOKUP> 從下到上查找。請參閱截圖:

2. 在從下到上查找對話方塊中:
- 在「列表放置區域與待檢索值區域」區段中,選取查詢值儲存格及目標輸出儲存格。
- 在「數據區域」區段中指定對應的區域,並確保所有範圍的大小與順序一致,以避免錯位。
- 點擊確定以套用設定。

執行後,Kutools 將立即傳回最後一個相符項目,如下所示:

提示:若您希望在找不到相符項目時顯示自訂訊息,而非 #N/A,請點選選項,勾選 用指定的值替換沒有找到而返回“N/A”的輸出結果,並輸入您偏好的文字。

優點:無需編輯公式,支援批次處理與錯誤取代,對 Excel 初學者極為友善,更適用於大型資料任務!
缺點:需先安裝 Kutools 增益集;此功能僅於 Kutools 完整版或試用版中提供。
實用提示:在確認結果前,務必仔細檢視輸出內容與輸入區域,確保資料準確無誤——尤其是在資料會動態變更的情況下!
使用 INDEX 與 MATCH 函數執行 VLOOKUP 並傳回最後一個相符值
結合 INDEX 與 MATCH 函數,提供了一種靈活且跨版本的替代方案,可在 Excel 中執行 VLOOKUP 並取得最後一個相符值。此方法高度可調整、無需事先排序資料,且相容於所有 Excel 版本(包括舊版)。不過,根據您使用的 Excel 版本,可能需要以陣列公式輸入才能取得正確結果。
使用此方法的步驟如下:
1. 在目標儲存格中輸入下列公式:
=INDEX($C$2:$C$12,MATCH(2,1/($A$2:$A$12=E2))) 2. 確認公式:
- 在 Excel 2019 或更早版本中,請以 Ctrl + Shift + Enter 結束輸入(Excel 會自動加上大括號 {})。
- 在 Microsoft 365/Excel 2021 及更新版本中,只需按下 Enter 鍵即可輕鬆完成!
3. 若您有多筆待檢索值區域,請向下拖曳填滿控制點,將公式套用至相鄰列,即可輕鬆完成批次處理!

$A$2:$A$12為查詢欄(條件)。E2為包含欲查詢值的儲存格。$C$2:$C$12為返回列(結果)。
1/($A$2:$A$12=E2)會產生一個陣列,在查詢條件成立的位置其值為 1,其餘位置則為#DIV/0!錯誤。此方法能將邏輯 TRUE/FALSE 轉換為數值訊號,輕鬆掌握資料篩選關鍵!MATCH(2,1/($A$2:$A$12=E2))要求 Excel 尋找數字 2(該數字並不存在)。MATCH 函數隨即回傳陣列中最後一個 1 的位置——也就是最後一個符合條件的 TRUE 項目。INDEX($C$2:$C$12,...)會根據該位置,從指定範圍中提取對應的值。
建議與提示:
- 請確保查詢範圍與回傳範圍的列數一致,並在向下填滿時使用絕對參照。
- 若您看到
#N/A或#DIV/0!,請檢查查詢陣列中是否包含未匹配的鍵值、空白儲存格或錯誤值。若想獲得更乾淨的輸出結果,建議使用IFERROR函數包覆您的公式,例如:=IFERROR(your_formula, "")。
優點:功能多元,並完全向下相容所有 Excel 版本。
缺點:公式稍難記憶;在舊版 Excel 中需以陣列方式輸入。
使用 XLOOKUP 函數執行 VLOOKUP 並傳回最後一個相符值
XLOOKUP 函數在 Excel 365、Excel 2021 及更新版本中可用,是傳回最後一個相符值最直接且現代化的解決方案!透過靈活控制查詢方向與錯誤處理參數,XLOOKUP 能從底部向上搜尋,無需複雜的傳統陣列公式,即可輕鬆擷取最後一個相符值。
使用 XLOOKUP 取得最後一個相符值的步驟如下:
1. 在目標儲存格中輸入下列公式;若需套用至其他待檢索值區域,請拖曳填滿控制點。
=XLOOKUP(E2, $A$2:$A$12, $C$2:$C$12, , , -1) 
E2:要查詢的數值。$A$2:$A$12:要搜尋的查詢範圍。$C$2:$C$12:傳回陣列。, ,:兩個逗號表示省略了選用的match_mode與if_not_found參數(使用預設值)。-1:search_mode=-1會從最後一筆到第一筆(由下至上)進行搜尋,因此將取得最後一個相符項目。
實用注意事項:
- 無需特別輸入陣列公式!如有需要,可透過
if_not_found參數提供自訂訊息。 - XLOOKUP 會依照所提供陣列的順序回傳最後一個相符項目(搭配)
-1時為由下至上),且不受篩選可見性影響。 - 如需批次處理,請向下填滿;每一列將獨立進行評估。
優點:語法簡潔;內建由後往前搜尋功能;無需使用傳統陣列公式。
限制:僅適用於 Excel 365、Excel 2021 及更新版本。
使用 VBA 巨集執行 VLOOKUP 並傳回最後一個相符值
在某些情況下,特別是當您需要自動化查詢流程或處理極大型資料集時,使用 VBA 巨集會是相當實用的解決方案。VBA 讓您能自訂編寫查詢邏輯,並靈活處理那些難以單靠公式應對的例外狀況或特殊條件。
適用情境:若您經常需要在不同活頁簿中執行相同的查詢作業,或希望將邏輯封裝成可重複使用的指令碼,此方案將是您的首選!
1. 按一下開發人員>Visual Basic,開啟 Microsoft Visual Basic for Applications 視窗;接著點選插入> 模組,並將下列程式碼貼上至模組中:
Option Explicit
Sub FindLastMatch()
Dim searchRange As Range
Dim returnRange As Range
Dim searchValue As Variant
Dim i As Long
Dim foundValue As Variant
Dim found As Boolean
Const xTitleId As String = "KutoolsforExcel"
' Get ranges and value from user
On Error GoTo CleanFail
Set searchRange = Application.InputBox("Select the lookup column (single column):", xTitleId, Type:=8)
If TypeName(searchRange) = "Boolean" Then Exit Sub ' Cancel pressed
Set returnRange = Application.InputBox("Select the return column (single column):", xTitleId, Type:=8)
If TypeName(returnRange) = "Boolean" Then Exit Sub ' Cancel pressed
searchValue = Application.InputBox("Enter the lookup value:", xTitleId, Type:=2)
If VarType(searchValue) = vbBoolean And searchValue = False Then Exit Sub ' Cancel pressed
' Basic validations
If searchRange.Columns.Count <> 1 Or returnRange.Columns.Count <> 1 Then
MsgBox "Please select a single column for both lookup and return ranges.", vbExclamation
Exit Sub
End If
If searchRange.Rows.Count <> returnRange.Rows.Count Then
MsgBox "Lookup and return ranges must have the same number of rows.", vbExclamation
Exit Sub
End If
If Not searchRange.Parent Is returnRange.Parent Then
MsgBox "Lookup and return ranges must be on the same worksheet.", vbExclamation
Exit Sub
End If
' Scan from bottom to top
found = False
For i = searchRange.Rows.Count To 1 Step -1
If CStr(searchRange.Cells(i, 1).Value) = CStr(searchValue) Then
foundValue = returnRange.Cells(i, 1).Value
found = True
Exit For
End If
Next i
If found Then
MsgBox "The last matching value is: " & foundValue, vbInformation
Else
MsgBox "No match found.", vbInformation
End If
Exit Sub
CleanFail:
MsgBox "Operation cancelled or invalid selection.", vbExclamation
End Sub
2. 按一下
按鈕以執行程式碼。在隨後出現的對話方塊中,依提示選取查詢欄位、返回欄位,並輸入查詢值。巨集將從最後一行向上掃描,立即顯示找到的最後一個相符結果!
注意事項:
- 請確保查詢範圍與回傳範圍皆為單一欄、列數相同,且位於同一張工作表上。
- 巨集為簡化起見,以文字形式比較值。若您需要區分數值格式(例如 00123 與 123),請據此調整比較邏輯。
- 若未找到相符項目,或所選內容無效/已取消,系統將顯示通知。
優點:完全自動化、可重複使用,無需手動在儲存格間輸入或複製公式。
缺點:初始設定稍嫌複雜;需使用啟用巨集的活頁簿(.xlsm),並確保處於信任巨集的環境中。
在 Excel 中取得最後一個相符值是常見需求——無論您是要監控最新交易、分析更新內容,還是追蹤一段時間內的變更。透過上述方法,您可以根據所使用的 Excel 版本、個人工作流程偏好,以及對 Excel 工具的熟悉程度,選擇最適合的解決方案。LOOKUP、INDEX 與 MATCH、XLOOKUP、Kutools 及 VBA 巨集等方法,各有其獨特優勢與最佳應用情境。
疑難排解:若公式傳回 #N/A 或 #DIV/0! 錯誤,請先確認查詢值是否存在、檢查範圍是否選取正確,並確保資料範圍對齊無誤。為提升公式可靠性,請盡量避免查詢欄位中出現空白儲存格。若有疑問,建議先在小範圍的樣本資料上測試公式以驗證設定,有助於快速隔離潛在錯誤!
若想進一步探索查詢技巧——例如擷取多筆結果、串接相符項目,或跨工作表搜尋——建議立即造訪我們的 Excel 教學頁面,其中提供豐富的相關文章與逐步指南,助您輕鬆掌握這些實用技能!熟練後,您將更有信心在 Excel 中處理、分析並呈現關鍵資料,提升工作效率不容錯過!
更多相關文章:
- 跨多張工作表執行 VLOOKUP 查詢值
- 在 Excel 中,我們可以輕鬆運用 VLOOKUP 函數,從單一工作表的表格中提取相符的值。但您是否想過,如何跨多張工作表執行 VLOOKUP 查詢?假設我有以下三張包含資料範圍的工作表,現在希望根據這些工作表中的條件,取得對應的部分數值。
- 在 Excel 中使用 VLOOKUP 執行精確與近似比對
- 在 Excel 中,VLOOKUP 是最重要的函數之一,能根據表格最左欄搜尋特定值,並回傳該列指定範圍內的對應資料。但您是否已掌握 VLOOKUP 的正確用法?本文將帶您了解如何在 Excel 中靈活運用 VLOOKUP 函數。
- VLOOKUP 回傳空白或特定值,而非 0 或 #N/A
- 當您在使用 VLOOKUP 函數傳回對應值時,若相符的儲存格為空白,通常會傳回 0;若找不到相符的值,則會顯示 #N/A 錯誤(如下圖所示)。若您不希望顯示 0 或 #N/A,該如何讓結果顯示為空白儲存格或其他指定文字呢?
- 在 Excel 中對相符值執行 VLOOKUP 並回傳整列/整行
- 您通常可以使用 VLOOKUP 函數從資料範圍中查詢並回傳相符的值,但是否曾嘗試根據特定條件查找並回傳整列資料(如下圖所示)?
- 在 Excel 中執行 VLOOKUP 並串接多個對應值
- 眾所周知,Excel 的 VLOOKUP 函數能協助我們查詢特定值,並回傳另一欄中的對應資料;然而在一般情況下,若存在多筆相符資料,僅會傳回第一筆對應值。本文將說明如何運用 VLOOKUP,將所有相符的對應值串接至單一儲存格,或以垂直清單呈現。
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……
Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!
- 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
- 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!
所有 Kutools 增益集,一個安裝程式
Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用
