FILTER 函數是 Microsoft 365 Excel 提供的 動態陣列函數,用來 篩選符合條件的數據,並返回篩選後的結果。它可以用來處理大量數據,根據條件動態顯示符合需求的資料,並且支持多條件篩選,靈活性非常高。
? FILTER 函數語法
FILTER(array, include, [if_empty])
- array:要篩選的範圍或陣列。
- include:篩選條件,通常是布林值陣列(
TRUE或FALSE)。 - if_empty(可選):當沒有數據符合篩選條件時,顯示的結果(默認為
#CALC!)。
? 作用:篩選出 array 中符合 include 條件的數據,並返回篩選後的陣列。
? FILTER 函數應用範例
1️⃣ 基本篩選:篩選大於 50 的數據
=FILTER(A2:B10, B2:B10 > 50)
? 效果:從範圍 A2:B10 中,篩選出 B2:B10 中大於 50 的數據,並返回符合條件的整行資料。
2️⃣ 篩選多條件:篩選大於 50 且小於 100 的數據
=FILTER(A2:B10, (B2:B10 > 50) * (B2:B10 < 100))
? 效果:篩選出 B2:B10 中大於 50 且小於 100 的數據,並返回符合條件的整行資料。
? 注意:多條件篩選時,使用 * 來代表邏輯 “AND”(兩個條件同時滿足)。
3️⃣ 篩選空白單元格
=FILTER(A2:B10, B2:B10 <> "")
? 效果:從 A2:B10 中篩選出 B2:B10 不是空白的行。
4️⃣ 當篩選結果為空時顯示自定義訊息
=FILTER(A2:B10, B2:B10 > 100, "無符合資料")
? 效果:從 A2:B10 中篩選出 B2:B10 大於 100 的數據,若沒有符合條件的數據,則顯示 “無符合資料”。
5️⃣ 篩選特定文字:篩選包含 “蘋果” 的數據
=FILTER(A2:B10, A2:A10 = "蘋果")
? 效果:篩選出 A2:A10 中為 “蘋果” 的行,並返回符合條件的整行資料。
6️⃣ 篩選並返回多列範圍
=FILTER(A2:C10, B2:B10 > 50)
? 效果:篩選出 B2:B10 大於 50 的行,並返回範圍 A2:C10 中符合條件的整行資料。
7️⃣ 篩選包含多種條件的複雜範圍
=FILTER(A2:C10, (B2:B10 > 50) * (C2:C10 = "已完成"))
? 效果:篩選出 B2:B10 大於 50 且 C2:C10 等於 “已完成” 的行,並返回符合條件的整行資料。
? FILTER 函數與其他函數結合使用
1️⃣ 搭配 SORT 排序篩選結果
=SORT(FILTER(A2:C10, B2:B10 > 50))
? 效果:篩選出 B2:B10 大於 50 的行,再對篩選結果進行 排序。
2️⃣ 搭配 UNIQUE 去除重複項
=UNIQUE(FILTER(A2:B10, B2:B10 > 50))
? 效果:篩選出 B2:B10 大於 50 的行,並對篩選結果去除重複項。
3️⃣ 搭配 AND 和 OR 篩選更複雜條件
=FILTER(A2:C10, (B2:B10 > 50) + (C2:C10 = "完成"))
? 效果:使用 + 來進行 邏輯 “OR”,篩選出 B2:B10 大於 50 或 C2:C10 等於 “完成” 的數據。
? 總結
✅ FILTER 函數是篩選資料的強大工具,支持多條件篩選,並且能返回動態範圍。
✅ 可以與其他函數(如 SORT、UNIQUE、AND、OR)結合使用,實現複雜數據處理。
✅ 當篩選條件不符合時,可以自定義返回結果,避免顯示錯誤提示。