[試算表] 使用 ArrayFormula 製作動態篩選器 公式化條件式篩選功能-Google Sheets

什麼是 ArrayFormula 呢?ArrayFormula 其實就是試算表的陣列函數。一般我們使用的試算表公式都是一個來源對應一個結果,而 ArrayFormula 是一個來源對應多種結果,輸出的結果就會以陣列的方式來呈現。可以運用在重複的公式上,寫在其中一格儲存格中,就會自動將結果列在其他儲存格裡面了!

這一次不是來教如何基本的使用 ArrayFormula 函數的,而是來玩點進階一點的功能。不知道各位有沒有想過試算表所提供的篩選功能有點過於基本不是那麼夠用呢?由於都是一些基本的篩選功能所以內建的篩選器就無法做到條件式的篩選。當我們想要使用條件式公式化的篩選的話,這時就可以使用到 ArrayFormula 這個 函數來達到我們想要的功能,使用方法很簡單可以依照你要的條件來微調公式,讓我們開始吧!

第一步

為了方便教學以及理解,下面是這一次示範的教學資料。而這一次我要用這份資料來篩選某一個時間的間距中的資料並且呈現在另一頁當中。

第二步

由於我們主要的條件是時間,所以要將時間那一欄選取起來,並將它命名。在這邊就把它命名成”時間”

第三步

要先記住 A 這一欄,等一下下面的公式說明會先使用 A 這一欄當作範例來說明。

第四步

我們要開始來寫入公式了!下面就是這個公式的整體樣貌:

=ArrayFormula(IFERROR(OFFSET('銷售表'!$A$1,SMALL(IF(($C$1<=時間)*($C$2>=時間),ROW(時間),""),ROW(1:1))-1,0),""))

我來說明一下這個公式大致上的結構,詳細的單個函數使用方法還是要去網路上搜尋,比較可以知道詳細的使用方法。首先可以看到這是一個使用 ArrayFormula 以及 Offset 所組合的一個公式。而 OFFSET 主要是來指定銷售表中的 A1 欄,並且使用 IF 來篩選出我們要的時間區間的值。而這個公式裡面有一個重點是 ROW(1:1),當你要呈現下一筆資料時要改成 ROW(2:2) …以此類推。接著就利用 ArrayFormula 來呈現資料即可!

成果

可以看到調整上面開始時間以及結束時間就可以達到程式化篩選資料的結果了!雖然整體公式稍微複雜,要花一些時間來瞭解每個公式的使用方式,才可以將公式調整成你想要的功能!文章的最下面有這一次範例的試算表,雖然沒辦法動手操作,但可以看看公式是如何設定的,幫助大家更快速的理解以及使用。

範例

範例名稱-ArrayFormula Filter Example
範例網址-https://ppt.cc/fd8cax

有話大聲說!