Chapter 7. 函式 (二):查詢與篩選 › 7.7 篩選函式:FILTER
7.7 篩選函式:FILTER
FILTER 用於想要在另一個工作表或範圍篩選資料時,其使用方法如下:
語法 | FILTER (範圍, 條件_1, [條件_2,...]) |
輸入 |
|
輸出 | 符合所有 條件_n 的 範圍,若都不符合則會輸出 #N/A。 |
以下使用第 1 章的會員資料檔並搭配三個範例由淺入深說明 FILTER 的用法:
- 輸出所有子女人數 2 位以上的會員卡號
公式
=FILTER(會員卡號,子女人數>=2)
解說
在此會發現輸出中包含表頭「會員卡號」,是因為在試算表中將字串與數字比大小時,會認為字串比較大。
補充:若要排除表頭,以下提供兩種方式,大家也可以參考完成檔案中有其他三種方式,並自行思考有哪些函式 / 方式可以做到,增加自己對 Google Sheets 的熟悉程度:
- 直接使用儲存格範圍:即 =FILTER('會員資料檔'!A2:A,'會員資料檔'!H2:H>=2)。
- 增加子女人數的上限值:在此可增加一個條件 子女人數<=MAX(子女人數),在篩選時就不會包含字串。
- 輸出所有家庭月收入 9 萬以上且子女人數 2 位以上的會員卡號
公式
=FILTER(會員卡號,家庭月收入="9萬以上",子女人數>=2)
解說
若有兩個以上的條件,各條件之間使用逗號分隔即可。
- 輸出所有家庭月收入 9 萬以上或子女人數 2 位以上的會員卡號
公式
=FILTER(會員卡號,(家庭月收入="9萬以上")+(子女人數>=2)>=1)
解說
若要表示多個條件之間是「或」的關係,可以使用第 6.1 節介紹到的將 TRUE / FALSE 轉換成 1 / 0 的概念。在此將兩個條件使用括號及加號連接,並判斷是否 >=1,即至少有一個是 TRUE。
FILTER 在 Google Sheets 的使用時機也非常廣,除了可以搭配上一節的其他篩選函式一起使用外,也能搭配第 6.6、7.2~7.4 節的值或範圍使用。
學習完第 6~7 章的內容後,已經足以解決 80% 以上工作上的問題,但仍有其他重要的函式如日期、文字相關的處理,以及如何將公式寫得更簡潔易懂,將會是後續幾章強調的重點。