免費軟體與線上工具1,417影音、圖片與 PDF9153C 開箱評測895生活、旅遊與遊戲798iPhone 與 Mac548LINE 與社群533Google 服務467Windows 與電腦455Office 教學427Android 手機402網路新知372AI 工具127
Office 教學

Excel FILTER 函數教學:依條件篩選資料,自動產生結果報表

FILTER 函數用於根據一個或多個條件,從指定的陣列或範圍中篩選資料。設定好條件後,符合標準的資料會自動顯示並溢出到相鄰的儲存格,適合用來製作動態報表或查詢系統。

Excel FILTER 函數語法

=FILTER(陣列, 包含條件, [若為空])
參數必填說明
陣列是要進行篩選的原始資料範圍或陣列。
包含條件是用來判斷的條件,通常是一個會傳回 TRUE 或 FALSE 的邏輯運算式陣列,其高度或寬度必須與「陣列」相同。
若為空選填當沒有任何資料符合條件時,要顯示的替代文字或數值。

回傳:傳回符合條件的資料陣列。

適用版本:Microsoft 365、Excel 2021 以上版本支援。

FILTER 函數範例

範例 1:單一條件篩選

篩選出特定部門的員工名單與業績。

姓名部門業績
王小明業務部50000
陳怡君行銷部45000
林志明業務部60000
張雅婷客服部30000

在 E2 輸入公式:

=FILTER(A2:C5, B2:B5="業務部", "無資料")

結果:王小明。公式判斷 B2:B5 中等於「業務部」的列,並傳回 A 到 C 欄的對應資料。結果會自動溢出到 E2:G3,E2 顯示第一筆符合條件的姓名「王小明」。

範例 2:數字條件篩選

找出業績達到指定標準的員工姓名。

姓名部門業績
王小明業務部50000
陳怡君行銷部45000
林志明業務部60000
張雅婷客服部30000

在 E2 輸入公式:

=FILTER(A2:A5, C2:C5>=50000, "無達標者")

結果:王小明。條件設定為 C2:C5 業績大於或等於 50000,只選取 A 欄的姓名作為傳回陣列。符合條件的有王小明與林志明,結果溢出至 E2:E3,E2 顯示「王小明」。

範例 3:多條件篩選 (AND 邏輯)

篩選出特定部門且業績達標的資料。

姓名部門業績
王小明業務部50000
陳怡君行銷部45000
林志明業務部60000
李建國業務部40000

在 E2 輸入公式:

=FILTER(A2:C5, (B2:B5="業務部")*(C2:C5>=50000), "無")

結果:王小明。使用星號 (*) 將兩個條件相乘代表 AND 邏輯,篩選出部門為業務部且業績大於等於 50000 的資料。結果溢出至 E2:G3,E2 顯示第一筆符合的姓名。

使用 FILTER 的技巧與注意事項

  • 若要設定「或 (OR)」的多條件篩選,可以使用加號 (+) 將條件括號相加,例如 (條件1)+(條件2)。
  • FILTER 傳回的結果是動態陣列,當原始資料更新時,篩選結果會自動重新計算並改變溢出範圍。
  • 可以將 FILTER 與 SORT 函數結合使用,讓篩選出來的資料自動按照指定的欄位進行排序。

FILTER 常見錯誤與解決方法

錯誤原因解決方法
#CALC!沒有任何資料符合篩選條件,且公式中省略了「若為空」這個第三參數。在公式的第三個參數加上替代文字,例如 =FILTER(A2:B5, B2:B5="X", "查無資料")。
#VALUE!「包含條件」陣列的列數或欄數與要篩選的「陣列」大小不一致。檢查並修正條件範圍,確保條件範圍的高度(或寬度)與資料範圍完全相同。
#SPILL!FILTER 函數傳回的資料需要多個儲存格來顯示,但目標範圍內已經有其他資料擋住。清除公式所在儲存格右方及下方阻擋溢出的資料,讓函數有足夠的空白空間顯示結果。

Google 試算表可以用 FILTER 嗎?

Google 試算表完全支援 FILTER 函數,語法與 Excel 相同,皆可處理動態陣列與多條件篩選。

下載 FILTER 範例檔

上面的範例都整理在這個檔案裡,每個範例一個工作表,黃色格子是公式,可以直接改資料看結果變化:FILTER 範例.xlsx(範例公式的結果經過兩個模型交叉核對)。

常見問題

可以同時設定多個條件來篩選嗎?

可以。要同時符合多個條件(AND),請將各條件用括號包住並用星號相乘,例如 (條件A)*(條件B);若只要符合其中一個條件(OR),則用加號相加,例如 (條件A)+(條件B)。

為什麼公式會出現 #SPILL! 錯誤?

這是因為 FILTER 函數需要將結果展開到相鄰的儲存格,但那些儲存格裡面已經有文字或數值了。只要把擋住公式展開範圍的資料刪除,結果就會正常顯示。

篩選出來的資料可以自動排序嗎?

可以。只要在 FILTER 函數外面包上一層 SORT 函數即可。例如 =SORT(FILTER(資料, 條件), 排序欄位, 順序),這樣就能同時完成篩選與排序。

相關函數

這篇收錄在「Excel 函數字典」。