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

如何在 Excel 中根據儲存格的值自動篩選列?

作者Xiaoyang修改日期

在 Excel 中,標準篩選功能可讓您手動選擇條件,快速篩選資料。然而,在某些工作流程中,您可能希望只要在特定儲存格輸入值或條件,資料就能自動更新。例如,當您希望資料集能根據另一個儲存格中輸入的關鍵字或參數即時篩選,這已超出 Excel 原生篩選功能的範疇。這種動態或「自動篩選」機制不僅能簡化資料檢視流程、減少手動篩選所耗費的時間,還能透過將過濾條件直接連結至儲存格值來提升準確性。若您希望根據儲存格輸入實現此類自動篩選功能,有多種實用方案可供選擇。

使用 Excel 公式方案,根據儲存格值自動篩選列

使用 VBA 程式碼,根據您輸入的儲存格值自動篩選列


使用 Excel 公式方案,根據儲存格值自動篩選列

如果您偏好非巨集方法,或因安全性設定、協作需求而需避免使用 VBA,可善用 Excel 內建公式與篩選功能,輕鬆打造「自動篩選」效果!此方案適用於 Microsoft 365、Microsoft 2019 及支援動態陣列函數(例如 )FILTER)的後續版本,特別適合與未啟用巨集的同事共享,或用於無需安裝即可實現自動化的輕量級模板——高效又安心!

1. 選取一個空白儲存格作為篩選結果的起始位置(例如,將游標置於儲存格 )G2)。

=FILTER(A2:C20, (A2:A20=E1) * (B2:B20=E2), "No match")

2. 在 G2 輸入公式並按下 Enter 後,篩選後的資料集將以溢出範圍形式從 G2 開始顯示。當您變更 E1 或 E2 中的值時,篩選清單會立即更新。

此公式範例假設您的主要資料位於 A2:C20,篩選條件則輸入於 E1(對應欄位 A)與 E2(對應欄位 B)。若只需依據單一欄位篩選,可相應簡化邏輯條件。當無任何列符合輸入條件時,將顯示「無相符項目」訊息。

提示:FILTER 函數適用於 Microsoft 365 及部分 Microsoft 19+ 版本。若您使用的是舊版 Excel,透過公式實現動態篩選較為困難,建議搭配輔助欄位並善用傳統的自動篩選或進階篩選功能。請務必確認您的 Excel 版本是否支援此函數!

採用此方案時,結果會顯示在工作表上的全新區域,有助於完整保留原始資料。原始資料集完全不受影響——篩選僅作用於顯示結果,而不會改變源數據的呈現狀態。

潛在錯誤:若您看到 #NAME?#SPILL!錯誤,請確認您使用的 Excel 版本是否相容,且結果範圍內未包含合併儲存格。此外,請勿在公式溢出區域輸入其他資料,以免造成阻塞!


使用 VBA 程式碼,根據您輸入的儲存格值自動篩選列

假設您正在處理一組資料,並希望根據特定儲存格中輸入的條件自動篩選記錄。例如,當您在儲存格 E1 和 E2 中輸入所需條件時,工作表上的資料便會自動篩選,以符合這些值,如下圖所示:

根據儲存格中輸入的值篩選資料列的螢幕截圖

若要以此方式實現自動化篩選,可設定簡易的 VBA 解決方案。此方法會在您更新指定篩選儲存格的值時自動觸發,特別適用於儀表板、互動式報表,或使用者期望透過中央參數儲存格達成動態篩選的模板。

1. 前往您希望根據儲存格輸入內容自動篩選資料列的工作表。

2. 在 Excel 視窗底部的工作表標籤上按一下滑鼠右鍵,並從快捷功能表中選取檢視程式碼。隨即開啟的 Microsoft Visual Basic for Applications 視窗中,請將下列 VBA 程式碼貼到大型空白區域(通常稱為程式碼視窗或工作表模組),如下圖所示:

VBA 程式碼:根據輸入的儲存格值自動篩選資料

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160606
   If Target.Address = Range("E2").Address Then
       Range("A1:C20").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("E1:E2")
   End If
End Sub

展示如何使用 VBA 程式碼的螢幕截圖

注意:在此 VBA 程式碼中,A1:C20 為您要套用篩選的資料區域;E2 是輸入篩選值(目標條件)的儲存格;而 E1:E2 則為過濾條件範圍。您可以依實際需求調整這些範圍——務必確保它們準確對應工作表中資料與篩選條件的位置。此外,建議避免使用合併儲存格,並確認資料區域包含完整標題,以確保篩選結果精準無誤。

3. 現在,在儲存格 E1 和/或 E2 中輸入或變更您的篩選條件,按下 Enter 後,VBA 程式碼將自動執行,立即篩選指定的數據區域,僅顯示符合條件的列!

若輸入數值後篩選未立即生效,請確認您的活頁簿已啟用巨集功能,並檢查 VBA 程式碼中的範圍是否正確對應您目前的工作表配置。在多人共用的情境下,務必提醒其他使用者也必須啟用巨集,此功能才能順利運作。

此 VBA 方法特別適合用於動態參數驅動的儀表板、互動式資料輸入模板,或任何手動重新套用篩選條件效率不彰的情境。但請注意,若使用者停用巨集,可能會遭遇問題,且此類 VBA 解決方案僅適用於已嵌入相關程式碼的檔案。

若您的使用情境涉及多位使用者頻繁調整條件,且各自的 Excel 安全性設定不同,或您打算廣泛分享檔案,建議考慮採用替代的公式型解決方案或 Excel 增益集。


示範:使用 VBA 程式碼,根據您輸入的儲存格值自動篩選列

 

依多重條件或其他特定條件篩選資料,例如依據文字長度、區分大小寫等。

當您需要執行更進階的篩選作業時——例如同時套用多個條件、依文字長度篩選、區分大小寫,或針對特定期間進行篩選——Excel 內建的篩選功能可能就顯得力不從心。此時,Kutools for Excel超級篩選功能正是您的理想選擇,助您輕鬆、高效地應對各種複雜篩選需求!此功能可協助您:

  • 跨多個欄位套用多重條件;根據儲存格內字元數量篩選資料;
  • 依大寫或小寫文字篩選;根據年、月、日、週或季篩選資料

使用 Kutools for Excel 依多個條件篩選日期的螢幕截圖

Kutools for Excel:內建超過 300 項實用 Excel 增益集,提供完整功能的 30 天免費試用。立即下載並免費試用!


最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 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 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用