【Excel Function】FILTER 多條件篩選-集合(Set theory):and、or、not、delta

  • Post author:
Home » 莫非工具 » Excel » 【Excel Function】FILTER 多條件篩選-集合(Set theory):and、or、not、delta

先前在介紹 FILTER文章中,我們提到多條件篩選,文中說明的多條件篩選是交集(Intersection),也就是「and」。實務中不僅會使用「A 且 B」,還有「A 或 B」、「A 非 B」這些情境,它們被統稱為集合論(Set theory)。

本篇文章主要介紹在集合論中不同條件下,像是:「A 且 B」、「A 或 B」、「非 A」、「A 非 B」、「非 A 非 B」……等篩選的使用方法。


Excel 範例檔案下載:Excel-FILTER-set_theory.xlsx


範例數據、條件介紹

參照數據為下列六人分別喜歡喝的茶類:

Raw Data

條件A、B分別為下:

  • 條件A:性別為男性(Male)
  • 條件B:喜歡喝奶茶(Milk Tea)

交集(Intersection)(and)

條件A 和條件B 同時成立的情況,在邏輯上會用「and」來表示
如下圖,兩個圓圈交疊的部分為同時符合兩個條件。

Intersection

=FILTER(資料範圍,(條件A)*(條件B))
=FILTER(A2:C7,(B2:B7="male")*(C2:C7="milk tea"))

這裡的篩選條件A、B,兩者需要同時成立:性別為男性、喜歡喝奶茶

這裡只要將兩個條件相乘(*)即可,記得要括號,「(條件A)*(條件B)」

在使用 FILTER 時要記得,資料範圍和條件的數量要相同:
資料範圍A2:C7,代表筆數(ROW)為 2~7,共6筆
因此判斷條件的地方也要相同:「B2:B7」、「C2:C7」,都是6筆資料


聯集(Union)(or)

只要條件A 或者條件B 其中一項成立,代表「或(or)」

Union

=FILTER(資料範圍,(條件A)+(條件B))
=FILTER(A2:C7,(B2:B7="male")+(C2:C7="milk tea"))

這裡只要將兩個條件相加(+)即可,記得要括號,「(條件A)+(條件B)」

可以想成條件A 成立的資料,加上(+)條件B 成立的資料,有種不管A還是B,全部加在一起的感覺


差集(Complement)(not)

差集分成兩種,使用情境也有所不同:

  • 絕對差集(Absolute Complement):不是A
  • 相對差集(Relative Complement):是B,卻不是A

絕對差集(Absolute Complement)

Absolute Complement

=FILTER(資料範圍,NOT(條件A))
=FILTER(A2:C7,NOT(B2:B7="male"))

這裡要呈現的絕對差集為:不是A

只需要用 NOT 函數,將條件A包起來即可:「NOT(條件A)」


相對差集(Relative Complement)

Relative Complement

=FILTER(資料範圍,NOT(條件A)*(條件B))
=FILTER(A2:C7,NOT(B2:B7="male")*(C2:C7="milk tea"))

這裡要呈現的相對差集為:是B,且不是A

「且」的概念就是兩者皆要符合,因此使用代表 and 的「乘(*)」

只要將兩個條件相乘(*)即可,「不是A 」乘以「是B」:「NOT(條件A)*(條件B)


差集:非A非B

非A非B如下圖,這種情況有兩種方式可以呈現:

  • 不是A,也不是B
  • 不是「A或B」
Complement of A∪B

非A且非B(Complement of A and Complement of B)

=FILTER(資料範圍,NOT(條件A)*NOT(條件B))
=FILTER(A2:C7,NOT(B2:B7="male")*NOT(C2:C7="milk tea"))

不是A也不是B,依照前面的例子

「不是」需要使用 NOT 函數。兩個條件都需要符合,使用乘號(*):「NOT(條件A)*NOT(條件B)」

這樣就可以符合非A非B的邏輯


非A或B(Complement of a∪b)

=FILTER(資料範圍,NOT((條件A or 條件B)))
=FILTER(資料範圍,NOT((條件A)+(條件B)))
=FILTER(A2:C7,NOT((B2:B7="male")+(C2:C7="milk tea")))

不是「A或B」,直接使用 NOT 函數把 「A或B」包起來:「NOT((條件A)+(條件B))


對稱差(Symmetric difference)(delta)

對稱差的概念為單獨符合A或者B:只符合條件A、B其中一個

Symmetric difference

=FILTER(資料範圍,(條件A)-(條件B))
=FILTER(A2:C7,(B2:B7="male")-(C2:C7="milk tea"))

Excel 在這個部分使用了很不直觀的符號來表示對稱差,就是減號(-)

減號比較直觀會以為是差集,但在 Excel 中,減號(-)並非差集

對稱差,只需要將兩個條件相減即可「(條件A)(條件B)」


Excel 範例檔案下載:Excel-FILTER-set_theory.xlsx


更多 Excel 文章請至 文章導覽 尋找,也可利用上方「搜尋(Search...)」功能
有任何莫非工具的問題,歡迎至「表單」提問

Excel 是不是很容易
和墨菲一起用 Excel 把工作變簡單

This Post Has 3 Comments

歡迎留言,與我們分享你的看法!