Chapter 7. 函式 (二):查詢與篩選 › 7.6 篩選函式:UNIQUE / SORT / SORTN
7.6 篩選函式:UNIQUE / SORT / SORTN
若想要對資料進行移除重複資料或排序資料時,可以使用第 3.4 節之方式完成,但如果不想動到原始資料,而是另一個地方進行移除重複資料或排序時,可以使用 UNIQUE / SORT / SORTN 這三個函式完成,函式說明如下:
- UNIQUE:取得不重複的列 / 欄:
語法 | UNIQUE (範圍, [根據欄], [只出現一次]) |
輸入 |
|
輸出 | 範圍 中的不重複資料列 / 欄,會根據第一次出現的順序排序。 |
- SORT / SORTN:排序所選範圍:
語法 | |
輸入 |
|
輸出 | 範圍 根據 排序欄_n 進行 遞增_n 排序的結果,SORTN 則顯示前 n 個值。 |
以下使用第 1 章的會員資料檔並搭配五個範例說明各函式的用法:
- 取得不重複的婚姻狀態
公式
=UNIQUE(婚姻狀態)
解說
會輸出婚姻狀態、已婚、未婚三種,若將 只出現一次 設為 TRUE,即 =UNIQUE(婚姻狀態,,TRUE),則會刪除所有有重複出現過的資料,只會出現表頭 (婚姻狀態) 一列。
- 取得不重複的婚姻狀態與性別
公式
=UNIQUE({婚姻狀態,性別})
解說
- 在此使用陣列自由連接想要輸出的欄位,前提是各欄位列數必須相同。
- 若 UNIQUE 要篩選的資料範圍有多欄,會篩選所有資料都不重複的列,因此前者會輸出表頭、2 種婚姻狀態 × 2 種性別五列。若將 只出現一次 設為 TRUE,即 =UNIQUE({婚姻狀態,性別},,TRUE) 則只會輸出表頭。
- 取得所有不重複的家庭月收入選項,並將其遞減排序
公式
- =UNIQUE(SORT(家庭月收入,家庭月收入,FALSE))
- =SORT(UNIQUE(家庭月收入),UNIQUE(家庭月收入),FALSE)
解說
篩選函式之間可以一起使用,在此提供兩種做法:
- 先將所有 家庭月收入 排序,再使用 UNIQUE 移除重複項目。
- 將先篩選出不重複的 家庭月收入,再根據字串進行排序,但此方式需要用到兩次 UNIQUE(家庭月收入)。
- 將資料以生日遞減排序,並顯示前 5 筆資料的所有欄位
公式
=SORTN(會員資料,5,,2,FALSE)
解說
- 在此已知生日在第 2 欄,可使用 MATCH 尋找生日在表頭的位置替換。
- TRUE / FALSE 可代換成 1 / 0。
- 顯示前三筆會員編號、婚姻、性別,其排序依據為婚姻、性別,皆為遞增排序
公式
=SORTN({會員卡號,婚姻狀態,性別},3,X,2,0,3,0)
解說
其中 X (顯示所有和局) 選擇 0~3 會有不一樣的結果,如完成檔案所示,說明分別如下:
- X = 0:直接選擇前三筆資料。
- X = 1:原本的第三筆資料為未婚 + 男,因此會輸出所有未婚 + 男的資料。
- X = 2:會篩選不重複的婚姻狀態 + 性別,會篩選未婚 + 男、未婚 + 女、已婚 + 男的資料,並輸出這三種類別的第一筆資料。
- X = 3:會輸出未婚 + 男、未婚 + 女、已婚 + 男的所有資料。
本節的函式非常適合用於儲存格有多列且有可能重複的輸出時,而下一節將介紹篩選器函式 FILTER 的用法,其可以在不動到原始資料的情況下完成想要的篩選與排序,更能完成一些使用 SUMIFS 等函式無法達成的計算。