FILTER 函數

FILTER 函數讓您根據自定義的準則來篩選資料範圍。

Surface Book 裝置相片

附註: 目前通道中 Microsoft 365 訂閱者可以使用此函數。 從2020年7月開始,Semi-Annual 企業版頻道中的 Microsoft 365 訂閱者都可以使用。 如需如何將功能推出至 Microsoft 365 訂閱者的詳細資訊,請參閱如何 取得 Microsoft 365 中的最新功能

在下列範例中,我們使用了公式 = FILTER (A5: D20,C5: C20 = H2,"" ) 以傳回 Apple 的所有記錄,如儲存格 H2 中所選,如果沒有任何蘋果,則傳回空字串 ( "" ) 。

FILTER 函數 - 按照產品 (蘋果) 篩選地區

FILTER 函數會根據布林 (真/假) 陣列來篩選陣列。

=FILTER(array,include,[if_empty])

引數

說明

array

必要

要篩選的陣列或範圍

include

必要

布林陣列的高度或寬度必須與該陣列相同

[if_empty]

選用

若所包含陣列中的全部值均為空時要傳回的值 (篩選沒有傳回任何項目)

附註: 

  • 您可以將陣列想成是一列的值、一欄的值,或是一列值以及一欄值的組合。 在上例中,用於我們的 FILTER 公式的來源陣列是源自於範圍 A5:D20。

  • FILTER 函數將傳回一個陣列,若其為公式的最終結果則會溢出。 這表示,當您按 ENTER 時,Excel 將動態建立適當大小的陣列範圍。 如果支援資料是在 Excel 表格,而您使用了結構化參照,則您從陣列範圍新增或移除資料時,陣列會自動調整大小。 如需詳細資料,請參閱溢出陣列行為

  • 如果您的資料集可能傳回空值,請使用第 3 個引數 ([if_empty])。 否則,因為目前 Excel 不支援空陣列,這將導致 #CALC! error

  • 如果 include 引數的任何值是錯誤 ( # N/A、#VALUE 等。 ) 或無法轉換為 BOOLEAN,FILTER 函數將會傳回錯誤。  

  • Excel 對活頁簿之間的動態陣列提供有限支援,只有同時開啟活頁簿時才支援這種情況。 如果您關閉來源活頁簿,當您重新整理時,任何連結的動態陣列公式均會傳回 #REF! 錯誤

範例

FILTER 用於傳回多個準則

在此例中,我們使用乘號運算子 (*) 以傳回 (A5:D20) 陣列範圍中,擁有 Apples AND 且在 East 區域的所有值:=FILTER(A5:D20,(C5:C20=H1)*(A5:A20=H2),"")

使用 FILTER 搭配乘號運算子 (*) 以傳回 (A5:D20) 陣列範圍中,擁有 Apples AND 且在 East 區域的所有值。

FILTER 用於傳回多個準則和排序

在此例中,我們使用之前的 FILTER 函數搭配 SORT 函數,以傳回 (A5:D20) 陣列範圍中,擁有 Apples AND 且在 East 區域的所有值,然後用遞減順序排序 Units:=SORT(FILTER(A5:D20,(C5:C20=H1)*(A5:A20=H2),""),4,-1)

使用 FILTER 搭配 SORT 函數以傳回陣列範圍 (A5:D20) 中,擁有蘋果且在東部地區的所有值,然後按照遞減順序來排序單位。

在此例中,我們使用 FILTER 函數搭配加號運算子 (+) 以傳回陣列範圍 (A5:D20) 中,擁有蘋果在東部地區的所有值,然後按照遞減順序來排序單位:=SORT(FILTER(A5:D20,(C5:C20=H1)+(A5:A20=H2),""),4,-1)

合併使用 FILTER 和 SORT – 按照 Product (Apple) OR 也按照 Region (East) 篩選

請注意,因為這些函數只存在於一個儲存格,且會將它們的結果溢出至鄰近儲存格,所以都不需要絕對參照

需要更多協助嗎?

您可以隨時詢問 Excel 技術社群中的專家、在 Answers 社群取得支援,或是在 Excel User Voice 上建議新功能或增強功能。

另請參閱

RANDARRAY 函數

SEQUENCE 函數

SORT 函數

SORTBY 函數

UNIQUE 函數

Excel 中的 #SPILL! 錯誤

動態陣列與溢出陣列行為

隱含交集運算子:@

讓您充分利用時間的訂閱

需要更多協助?

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×