本教學由作者茂伯編寫,並由作者在 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 右邊顯示公式的長欄位。下列步驟都在工作表內操作。
在空白工作表 A1:B8 輸入原表,核對數字順序與品項對應,特別確認膠帶庫存 B6 是 20。
在 E1 輸入「符合品項」,F1 輸入「庫存」。選取 E2:F8 檢查沒有資料或合併格;若有自己的內容,先移開而非覆蓋。
只選 E2,輸入 =FILTER(A2:B8,B2:B8>=20,"沒有符合資料")。兩個範圍都從第 2 列到第 8 列,大小必須對得上。
按 Enter,觀察結果自動展開到 E2:F5。依序應為筆與32、尺與45、膠帶與20、剪刀與26,不需把公式向下填滿。
再選 E2 查看公式列與溢出範圍;對照原表四筆入選資料,確認名稱、數量仍配對。日後修改公式也回到 E2。

圖 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 如何得到這個答案
逐列將 32、12、45、8、20、15、26 與 20 比較,得到 TRUE、FALSE、TRUE、FALSE、TRUE、FALSE、TRUE。
保留 TRUE 所對應的原資料第 1、3、5、7 筆,分別是筆、尺、膠帶、剪刀;品項與庫存必須整列一起保留。條件範圍與來源範圍的第一筆必須對齊;若錯開一列,判斷用的庫存就可能配到另一個品項,清單雖有內容也不可靠。
四筆紀錄依來源順序排進 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。
常見錯誤
- 顯示 #SPILL!
原因:結果預計填入的格子有內容、合併格,或公式放在表格物件內。 處理:選 E2 查看預計溢出區,移開阻擋內容並取消相關合併;將公式置於一般格線的 E2。
- 顯示 #VALUE!
原因:來源與條件列數可能不一致,例如 A2:B8 對 B2:B7。 處理:將兩者核對為 A2:B8 與 B2:B8,且確認庫存資料沒有錯誤值。
- 顯示 #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。