UNIQUE 函數是 EXCEL 在 2021 年新增的必學函數之一,新增之後讓「提取所有出現過的值」變得方便許多,而且還會隨著資料變動。
本文將會用 5 分鐘的時間,完整介紹 UNIQUE 函數的用法、進階用法、常見錯誤等等。
如果你還不熟 UNIQUE 函數,建議可以仔細看過一次,把 UNIQUE 的用法徹底搞懂,進而提升工作效率。
那麼我們就開始吧!
UNIQUE 函數用法
以下是 FILTER 的函數說明:
UNIQUE ( array , [by_col] , [exactly_once] )
引數名稱 | 解釋 |
---|---|
array | 選定資料範圍 |
[by_col] | 0:以欄為主 / 1:以列為主(選填) |
[exactly_once] | 0:提取所有出現過的值 / 1:提取只出現過 1次的值(選填) |
使用範例:A 欄是每一年的年份,B 欄是該年的總冠軍隊伍。如果我們要抓出「得過總冠軍的隊伍」,UNIQUE 函數可以這樣寫:
=UNIQUE ( B2:B11 , 0 , 0 )
引數名稱 | 解釋 | 範例 |
---|---|---|
array | 選定資料範圍 | B2:B11 |
[by_col] | 0:以欄為主 / 1:以列為主(選填) | 0:以欄為主(垂直方向) |
[exactly_once] | 0:提取所有出現過的值 / 1:提取只出現過 1次的值(選填) | 0:提取所有出現過的隊伍 |
接下來,我們來看看 UNIQUE 的3個引數的規則與限制。
一、array(選定欲比較範圍)
首先,UNIQUE 函數要拉一個資料範圍,接下來 UNIQUE 只會在這個範圍去做運算。
接續前面的範例,我想要知道得過總冠軍的隊伍。因此,欲比較範圍就是 B2 : B11。
二、[by_col](欄/列)
第 2 個引數要選擇以「欄」為主還是以「列」為主。
- 以「欄」為主(垂直的):輸入 0 / False
- 以「列」為主(水平的): 輸入 1 / True
在範例中,我們的資料範圍是垂直的,也就是要以「欄」比較,因此我們在第 2 個引數中輸入 0 (或 FALSE)。
如果資料範圍是水平的(如下圖),那麼就要以「列」比較,第 2 個欄位就要輸入 1(或 TRUE)。
三、[exactly_once](提取所有出現過的值 / 只出現過1次的值)
第 3 個引數,要選擇 UNIQUE 的運算方式。
- 提取所有出現過的值:輸入 0 / False
- 提取只出現過 1次的值:輸入 1 / TRUE
提取所有出現過的值( 0 / False)
這個範例中,我們要提取「所有得過總冠軍的隊伍」,因此要在第 3 個引數中輸入 0(或 FALSE)
如此一來,我們就可以提取到 B 欄中所有出現過的值,也就是所有得過總冠軍的隊伍名單了!
提取只出現過1次的值(1 / TRUE)
假設我想要知道「十年間只得過 1次冠軍」的隊伍,那麼第 3 個引數就要輸入 1(或 TRUE)
我們就可以提取到 B 欄中只出現過 1 次的值,也就是 10 年間只得過一次總冠軍的隊伍名單了!(統一QQ)
UNIQUE 進階用法 – 配合 FILTER 達成自動化
正如文章開頭所說,UNIQUE 非常方便的地方是會隨著資料變動而自動更新。
因此,為了日後更新資料後不用再調整一次函數,選取的範圍建議可以超出目前的資料範圍。
如此未來補上 2024、2025、2026 的資料時,右邊也會自動更新。
但這樣就會出現「0」的值,因為空白格也算是一筆「0」的資料,因此只要 UNIQUE 範圍拉到空白格就會顯示「0」。
如果要將「0」去掉,則需要搭配 FILTER 函數。
我們可以想像 FILTER 函數是一個篩選器,會將符合設定條件的值給保留下來,不符合條件的就篩選掉。
而 FILTER 函數也非常簡單:第 1 個引數選擇範圍,第 2 個引數設定篩選條件。
在這個例子中,我們要將「0」,也就是把「空白格」給篩選掉,因此 FILTER 函數可以這樣寫:
=FILTER ( B2:B14 , B2:B14<>“” , )
引數名稱 | 解釋 | 範例 |
---|---|---|
array | 選取欲回傳資料的範圍 | B2:B14 |
include | 設定篩選條件 | B2:B14<>””(保留 B2 到 B14 中「不等於空白格」的資料) |
篩選條件中的「<>」在 EXCEL 中代表「不等於」,而「””」代表空白格。這個 FILTER 函數的意思就是:將 B2 到 B14 中,保留有資料的格子,並去除掉空白格。
去除掉空白格後,再將整個 FILTER 函數放進 UNIQUE 函數裡,就會發現「0」已經不見了。
=UNIQUE ( FILTER(B2:B14, B2:B14<>“”) , 0 , 0 )
UNIQUE 常見錯誤
- #NAME!:代表目前的 EXCEL 版本不支援 UNIQUE 函數,無法正常顯示
- #溢出!:代表函數下方未預留足夠的格子(如下圖),請盡量讓 UNIQUE 函數下方保持空白