← Excel 公式課程

FIELD NOTES / Excel 公式教學

FILTER 依條件列出符合的資料

Excel 公式教學發布:作者:茂伯預估 7 分鐘閱讀

學習 FILTER 依條件列出符合的資料,透過可重建的範例、公式與練習掌握操作和結果判讀。

本文目錄

本教學由作者茂伯編寫,並由作者在 Windows 版 Microsoft 365 與 Excel 2021 實際操作驗證。

學會用一個明確條件從資料表取出符合的完整紀錄,並讓結果自動填入相鄰儲存格。完成後能核對每列是否入選、理解大於等於的邊界,以及沒有符合資料與輸出區被擋住的差異,保留原始表並正確操作溢出結果。

適用版本

Microsoft 365 或 Excel 2021 起 需支援動態陣列

用途

  • 從庫存清單找出至少二十件的品項,將名稱與庫存一起列到結果區,避免人工只複製名稱卻配錯數量。

  • 在同一工作表保留完整資料,另產生條件清單供檢視。來源數字改動時,符合筆數可能增減,結果區需預留空間。同一條件在不同時間可能有不同結果,交付清單時應確認來源數字已更新,別把上次截圖當作目前庫存。

先準備範例資料

開啟空白活頁簿,依下表輸入。英文字母是欄,數字是列;例如 B2 就是 B 欄第 2 列。標題從 A1 開始,結果另外放在 E2。

列 A B
1 品項 庫存
2 筆 32
3 橡皮擦 12
4 尺 45
5 筆記本 8
6 膠帶 20
7 便利貼 15
8 剪刀 26
  • 原始資料為 A1:B8,A 欄品項、B 欄庫存;主公式讀 A2:B8,不含標題。B2:B8 請輸入純數字,不要加「件」。

  • 庫存依序是 32、12、45、8、20、15、26。B6 的 20 刻意設在門檻上,因條件為 >=20,所以仍會入選。

  • E1 輸入「符合品項」,F1 輸入「庫存」。主結果佔 E2:F5,共四列兩欄,只有左上角 E2 需要輸入公式。

  • 先讓 E2:F8 保持空白且不合併,公式放在一般工作表格線中,不放在 Excel 表格物件內;D 欄留白隔開資料與結果。主題目前只有四筆,但更換門檻後最多可能出現七筆,因此先預留到第八列,避免條件放寬時結果被下方備註擋住。

輸入這個公式

=FILTER(A2:B8,B2:B8>=20,"沒有符合資料")

輸入位置:E2  正確結果:E2:F5:筆/32;尺/45;膠帶/20;剪刀/26

建議順序:先照做並核對畫面,再看公式拆解,最後完成延伸用法與練習。所有練習各自從這一頁的原始資料開始。

照著做並核對畫面

名稱方塊在公式列左側,會顯示 A1 或 E2 等位置;公式列則是 fx 右邊顯示公式的長欄位。下列步驟都在工作表內操作。

  1. 在空白工作表 A1:B8 輸入原表,核對數字順序與品項對應,特別確認膠帶庫存 B6 是 20。

  2. 在 E1 輸入「符合品項」,F1 輸入「庫存」。選取 E2:F8 檢查沒有資料或合併格;若有自己的內容,先移開而非覆蓋。

  3. 只選 E2,輸入 =FILTER(A2:B8,B2:B8>=20,"沒有符合資料")。兩個範圍都從第 2 列到第 8 列,大小必須對得上。

  4. 按 Enter,觀察結果自動展開到 E2:F5。依序應為筆與32、尺與45、膠帶與20、剪刀與26,不需把公式向下填滿。

  5. 再選 E2 查看公式列與溢出範圍;對照原表四筆入選資料,確認名稱、數量仍配對。日後修改公式也回到 E2。

FILTER 範例資料及公式結果的 Excel 網頁版實際操作畫面

圖 1 Excel 網頁版實際操作畫面

Windows 桌面版的工具列外觀可能不同,儲存格位置、公式輸入及本例結果相同。

對照畫面確認結果

  • 左表七筆都保留,結果區只出現四筆符合資料;篩選公式沒有刪除或隱藏原表列。

  • E2:F5 為四列兩欄,E2 是公式起點,其餘格由同一個公式填入。

  • 膠帶的 20 也在清單裡,證明 >= 包含等於;橡皮擦12、筆記本8、便利貼15 未入選。

語法與引數

=FILTER(array,include,[if_empty])

引數就是交給函數處理的資料或設定。語法中的 [ ] 表示可以省略,輸入公式時不要打出方括號或省略號。

array 必要。要從中取出結果的資料範圍,本例 A2:B8 有七列兩欄,所以每個入選紀錄會一起回傳品項與庫存。

include 必要。決定哪些資料保留的真假條件,本例 B2:B8>=20 對每列比較庫存。縱向篩選時條件高度須與來源一致。

[if_empty] 選填。沒有任何符合紀錄時回傳什麼,本例填 "沒有符合資料"。若省略且無符合結果,可能出現 #CALC!;此參數不是用來掩蓋其他資料錯誤。

把主公式逐段拆開

= 開頭等號讓 Excel 把後面的內容視為計算公式。

FILTER 本課唯一使用的函數名稱,拼字須完整,不含空格。

( ) 成對半形括號包住所有參數;最後一定要有右括號。

A2:B8 兩欄資料範圍,決定結果保留哪些欄位。

B2:B8>=20 逐列比較庫存是否大於或等於 20;>= 是比較運算子,整個條件不用加引號。

"沒有符合資料" 沒有任何 TRUE 時顯示的文字。雙引號只包這段文字,不會跟著顯示。

, 半形逗號分開不同參數;引號裡的符號則是文字本身。

使用半形 = ( ) , : 及雙引號;文字使用直式雙引號 " "。部分地區設定以分號分隔引數,請依 Excel 的輸入提示調整。

Excel 如何得到這個答案

  1. 逐列將 32、12、45、8、20、15、26 與 20 比較,得到 TRUE、FALSE、TRUE、FALSE、TRUE、FALSE、TRUE。

  2. 保留 TRUE 所對應的原資料第 1、3、5、7 筆,分別是筆、尺、膠帶、剪刀;品項與庫存必須整列一起保留。條件範圍與來源範圍的第一筆必須對齊;若錯開一列,判斷用的庫存就可能配到另一個品項,清單雖有內容也不可靠。

  3. 四筆紀錄依來源順序排進 E2:F5,每筆佔一列。因有符合資料,第三參數的提示文字不會出現。

資料型態與邊界情況

  • 結果會隨指定範圍內數值改變而更新,但本課固定 A2:B8;若把新資料加在第 9 列,必須同時擴大來源與條件範圍。擴大範圍時也別誤把文字標題納入數字條件;先確認新增列的兩欄都是同一筆資料。

  • 只編輯左上角 E2,其他溢出格由它控制。直接改 E3 或 F2 可能被阻止;要改資料,回原始 A、B 欄,而不是覆寫輸出。

  • 本課保留來源順序,不會自動按庫存大小排序。沒有符合資料時顯示提示;條件本身有錯誤則須回來源修正。

同一個函數的延伸用法

以下例子彼此獨立。每做一題前,先還原上方的原始資料,再執行該題設定;不要沿用上一題的修改。

用法 1 改成嚴格大於

先恢復原始 A1:B8,刪除 E2 原公式以清空舊溢出,保持 E2:F8 空白,在 E2 輸入下式。

=FILTER(A2:B8,B2:B8>20,"沒有符合資料")

結果:筆、32;尺、45;剪刀、26

>20 不包含等於20,因此膠帶被排除。

剩下三筆,輸出 E2:F4:筆32、尺45、剪刀26,順序仍跟來源一致。

用法 2 查低於十五件

先恢復原始 A1:B8,刪除 E2 原公式,保持 E2:F8 空白,在 E2 輸入下式。

=FILTER(A2:B8,B2:B8<15,"沒有符合資料")

結果:橡皮擦、12;筆記本、8

12 與 8 小於15,15 本身不符合嚴格小於。

輸出佔 E2:F3,依序為橡皮擦12、筆記本8。

常見錯誤

  1. 顯示 #SPILL!

原因:結果預計填入的格子有內容、合併格,或公式放在表格物件內。 處理:選 E2 查看預計溢出區,移開阻擋內容並取消相關合併;將公式置於一般格線的 E2。

  1. 顯示 #VALUE!

原因:來源與條件列數可能不一致,例如 A2:B8 對 B2:B7。 處理:將兩者核對為 A2:B8 與 B2:B8,且確認庫存資料沒有錯誤值。

  1. 顯示 #CALC!

原因:沒有資料符合條件,且第三參數未提供無結果文字。 處理:在 E2 補回 "沒有符合資料" 作第三參數;若使用原門檻仍出錯,再檢查來源數字。

自己練習與完整解答

先遮住解答,試著自己輸入公式並預測結果。每題都從上方原始資料重新開始,結果放在題目指定的儲存格。

練習 1 至少三十件

先恢復原始 A1:B8,刪除 E2 原公式,保持 E2:F8 空白,在 E2 列出庫存至少30件的品項與數量。

答案公式:

=FILTER(A2:B8,B2:B8>=30,"沒有符合資料")

正確結果:筆、32;尺、45

解答 1 只有32與45大於或等於30,對應筆與尺。

解答 2 輸出 E2:F3,共兩列兩欄;26 不符合,不要將它留下。

練習 2 完全沒有符合資料

先恢復原始 A1:B8,刪除 E2 原公式,保持 E2:F8 空白,在 E2 查庫存至少100件。

答案公式:

=FILTER(A2:B8,B2:B8>=100,"沒有符合資料")

正確結果:沒有符合資料

解答 1 所有庫存都小於100,七個條件結果皆為 FALSE。

解答 2 E2 單格顯示沒有符合資料,不產生符合清單,F2 仍空白。

練習 3 一筆資料跨過門檻

先恢復原始 A1:B8,只把 B3 改成22;刪除 E2 原公式,保持 E2:F8 空白,再在 E2 輸入主公式。

答案公式:

=FILTER(A2:B8,B2:B8>=20,"沒有符合資料")

正確結果:筆、32;橡皮擦、22;尺、45;膠帶、20;剪刀、26

解答 1 橡皮擦從12變成22,現在符合至少20,加入結果。

解答 2 輸出擴大到 E2:F6,五筆依來源順序排列,不是把新增項目放在最後。

完成後的自我檢查

  • 來源範圍與條件範圍有相同列數,>= 包含門檻本身。

  • 只有 E2 輸入公式,預留的溢出區沒有其他資料。

  • 我能分辨無符合結果的提示與 #SPILL! 輸出阻擋。

版本與官方說明

  • Microsoft 365、Excel 2021、Excel 2024 與目前 Excel 網頁版支援本課動態陣列操作;Excel 2019、2016 永久授權版不支援 FILTER。

  • 只按 Enter 即可自動溢出。舊版可能顯示 _xlfn 或 #NAME?;這是相容性問題,不能靠 Ctrl+Shift+Enter 讓舊版取得 FILTER。

官方參考

Microsoft Support:FILTER 函數