UNIQUE函數(shù)是Excel新版本中才推出的函數(shù),它可以極大的簡化我們的數(shù)據(jù)處理和分析工作。
01
語法
UNIQUE函數(shù)的作用是返回一個區(qū)域(或數(shù)組)的唯一值:
它的語法是這樣的:
它有3個參數(shù):array,by_col,exactly_once,它們的含義分別是:
array,表示源數(shù)據(jù)區(qū)域或者數(shù)組,例如:A1:F30
by_col指示返回唯一列或者唯一行,用TRUE/FALSE表示,TRUE=唯一列,F(xiàn)ALSE=唯一行。這個參數(shù)可以省略,缺省情況是FALSE,表示返回唯一行
exactly_once指示返回的數(shù)據(jù)內(nèi)容,用TRUE/FALSE表示,TRUE=返回所有只出現(xiàn)一次的數(shù)據(jù),F(xiàn)ALSE=返回所有數(shù)據(jù),但是每個數(shù)據(jù)只返回一次。缺省是FALSE
這個函數(shù)是動態(tài)數(shù)組函數(shù)。返回的是數(shù)組,可以“溢出”。
具體用法可以參考下面的例子:
在這個例子中,第二個參數(shù)是FASLE,表示返回表2的唯一行,第三個參數(shù)是FASLE,表示返回所有的不重復的行數(shù)據(jù)(重復的數(shù)據(jù)只返回一次)。需要注意的是,這里判斷重復的條件是所有列的數(shù)據(jù)都相同。
這個公式的第2,3個參數(shù)可以省略,因此可以寫成:
=UNIQUE(表2)
下面的例子展示了返回所有不重復的數(shù)據(jù)行:
在這里,最后一個參數(shù)是TRUE,返回的是所有不重復行。因此,源數(shù)據(jù)中的產(chǎn)品a由于兩行中名稱和數(shù)量都一樣,就沒有出現(xiàn)在返回結(jié)果中。
下面的例子展示了返回唯一列的行為
這個公式的第二個參數(shù)是TRUE,因此需要比較的是各列是否重復,在返回值中C,E兩列由于重復,就返回了其中第一列的數(shù)據(jù)。
02
UNIQUE函數(shù)的兩個具體應用
這個函數(shù)幫助我們輕松獲得原來很難獲得(或者比較麻煩)的結(jié)果。比如,假設我們有下面的數(shù)據(jù):
我們想得到有多少種不同的產(chǎn)品在銷售,即獲得產(chǎn)品的不重復計數(shù)。
以前,我們介紹過通過其他方法獲得不重復計數(shù)的方法(見文章:不重復計數(shù)),主要有兩種方法,一種是加輔助列,寫一個比較難以理解的公式,另外一種是通過Power Pivot的DISTINCTCOUNT來解決。
現(xiàn)在有了UNIQUE函數(shù),這個事情輕而易舉,只要使用下面的公式就可以了:
=COUNTA(UNIQUE(表1[產(chǎn)品]))
還可以使用下面的公式統(tǒng)計一下只出現(xiàn)一次 的產(chǎn)品個數(shù):
=COUNTA(UNIQUE(表1[產(chǎn)品],,TRUE))
除了不重復計數(shù)外,還有一個典型的應用場景:下拉列表。
假設我們想建立一個動態(tài)圖表,根據(jù)選擇的產(chǎn)品來展示該產(chǎn)品的銷售趨勢。就需要使用數(shù)據(jù)驗證建立下拉列表。具體方法我們以前也介紹過。不過比較麻煩,首先,我們需要復制C列(產(chǎn)品列)數(shù)據(jù),然后通過刪除重復項得到不重復列表,將這個不重復列表作為數(shù)據(jù)來源。
這是一個比較麻煩的過程,并且得到不重復列表的過程是個手動操作,不是一個自動化的過程。如果源數(shù)據(jù)改變了,增加了或減少的產(chǎn)品,就必須手動重復這個過程,效率很低。
我們也可以使用Power Query來實現(xiàn)這個過程。不過Power Query在一些簡單場景中顯得過于“重”了。其實,我們可以使用UNIQUE函數(shù)來實現(xiàn)這個過程。
首先,使用公式:
=UNIQUE(表1[產(chǎn)品])
得到產(chǎn)品的不重復列表。
然后選中需要設置數(shù)據(jù)驗證的單元格,點擊數(shù)據(jù)驗證,:
在其中選擇“序列”,將來源設置為:
=$F$3#
其中F3是輸入UNIQUE公式的單元格,#是一個標志,表示整個“溢出”區(qū)域。下拉列表就做好了:
大功告成!
今天的分享就到這里!