當前位置:首頁 > 教育 > 正文

Excel中特别有用的函數之Filter

今天繼續介紹Excel中的新函數系列:FILTER。

就在準備這篇文章時,我又一次感受到了Excel新函數的威力,不得不說,包括我們前面介紹過的SORT,UNIQUE,今天介紹的FILTER在内的Excel新函數,讓以前必須寫很複雜的公式才能解決的問題變得輕而易舉。

閑言碎語不多談。直接來看這個函數吧!

語法




FILTER函數的語法如下:

這個函數有3個參數:

  • 數組
    這個參數就是準備進行篩選的整個數據區域(或數組)

  • 包括
    這個參數的名稱有點奇怪,其實是英文的直譯(include,這個英文名字也不是那麼直觀)。這個參數是一個返回邏輯值TRUE/FALSE的判斷,用來判斷“數組”參數中的值是否滿足條件,如果是TRUE,在結果中就會返回“數組”參數中對應的行(或列)

  • [if_empty]
    如果第二個參數的所有返回值都為FALSE,表示“數組”參數中并沒有需要返回的行(或列),這時,就返回這個參數。如果這個參數被省略了,就返回空值。

用法




結合實例來看這些參數,理解的更清楚一些。

假設我們的數據如下:

如果我們希望在其中查找所有開發部參加的項目,就可以使用下面的公式:

=FILTER(B3:F9,C3:C9="開發部","未找到")

結果返回了兩個項目。值得提醒的是,這個函數返回的是個動态數組。

如果我們将第二個參數的“開發部”寫成了“開發1部”,結果就會返回第三個參數:

多個條件




FILTER函數的第二個參數實際上就是一個條件表達式,類似于IF函數的第一個參數。因此,就有多個條件的問題。我們下面通過兩個例子來看看如何在FILTER函數中使用多個條件。

例1 兩個同時成立的條件篩選

例如,我們希望返回項目名稱是“李甯訂貨會項目”,并且由"咨詢部"參加的項目

可以使用公式:

=FILTER(B3:F9,(B3:B9="李甯訂貨會項目")*(C3:C9="咨詢部"),"未找到")

這個多個條件的寫法我們在IF和SUMPRODUCT等函數中經常見到。

例2 一個條件成立即可的多條件篩選

例如,我們希望返回所有的“李甯訂貨會項目”和所有“咨詢部”參加的項目。可以使用公式:

=FILTER(B3:F9,(B3:B9="李甯訂貨會項目")+(C3:C9="咨詢部"),"未找到")

找不到時返回多項




在前面的例子中,我們看到,如果第二個參數返回值都是FALSE,篩選不出任何結果,就會返回第三個參數:

但是這個返回值容易造成誤解:好像這個函數的返回值隻占這一個單元格似的。實際上,正常情況下,這個函數返回一個區域,這個區域的寬度跟第一個參數的寬度是一緻的。

為了避免這種情況,我們可以使用下面的方法讓第三個參數返回多個值:

=FILTER(B3:F9,C3:C9="開發1部",{"項目未找到","部門未找到",0,0,0})

總結




FILTER函數還有一些很重要的應用。其中部分應用以前也可以實現,就是得用非常複雜的方法。現在,我們可以利用FILTER函數(和其他新函數)來簡化這些應用。具體内容我們後面陸續為大家介紹。

你可能想看:

有話要說...

取消
掃碼支持 支付碼