愛伊米

Excel中不用VBA也能實現:去掉重複資料,生成下拉選單

需要實現這麼一個功能,針對一張部門、崗位表,要取出部門名稱,做成下拉選單。

Excel中不用VBA也能實現:去掉重複資料,生成下拉選單

圖1:需要去掉重複資料

可以看到,在這張表中“部門”這一列的資料有許多重複,如果直接取這一列的資料作為下拉選單,也不是不能用,但估計用的人都會很糾結。如果嫌VBA程式設計太麻煩,有沒有什麼辦法能實現呢?

嘗試1:簡單去重

可以用一個很簡單的公式:

=IF(B3=B2,“”,B3)

就能去掉部門中的重複資訊。

Excel中不用VBA也能實現:去掉重複資料,生成下拉選單

圖2:簡單去重

經過處理的“E列”儘管去掉了重複資料,但也留下了很多空白,如果我們直接呼叫圖中的“E列”作為下拉選單的話,這些空白會原封不動地保留,顯然不好用。

嘗試2:字串拼接

我們可以將“E列”的資料拼接成字串,然後就能去掉空白資料,從而取出幾個部門的資料。但在拼接前,需要增加分隔符,以便於字串操作。

Excel中不用VBA也能實現:去掉重複資料,生成下拉選單

圖3:增加分隔符

1、要增加分隔符很簡單,在“E列”基礎上使用公式:

=IF(E3“”,E3,IF(AND(E3=“”,E4=“”),“”,IF(AND(E3=“”,E4“”),“,”)))

就得到了“F列”。

2、接下來是拼接,在excel中有一個函式PHONETIC可以很方便地將一列資料快速拼接起來,公式如下:

=PHONETIC(B3:B12)

然而很不幸的是,該函式對於由公式生成的單元格無效。

3、可以採用以下公式:

=CONCATENATE(E3,E4,E5,E6,E7,E8,E9,E10,E11,E12)

當然也可以用更簡單的公式:

=E3&E4&E5&E6&E7&E8&E9&E10&E11&E12

4、其實還有一種方法,可以不用生成“F列”,而直接在“E列”基礎上生成:

=TEXTJOIN(“,”,TRUE,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12)

5、這樣我們就得到了字串“財務部,銷售部,綜合部”,有很多方法可以將其中的三個部門資料分割出來,把他們排在一列(挨在一起),就能作為下來選單的資料來源了。

完美方案:序號法

接下來就要隆重介紹完美方案,見下圖。

Excel中不用VBA也能實現:去掉重複資料,生成下拉選單

圖4:完美方案

1、首先給“B列”的資料編上序號,得到“E列”。

2、由於“E列”的序號未區分重複的資料,因此我們需要對序號進行去重,用以下公式:

=IF(B3B2,F2+1,F2)

需要注意的是,F2要填入“0”,作為序號的初始值。

這樣就實現了序號與部門資料的一一對應,即部門相同則序號也相同。

3、接下來就可以根據去重後的序號,得到去重的部門資料,公式如下:

=INDEX(B:B,MATCH(E3,F:F,0))

其中MATCH函式用於查詢從1開始的序號在“F列”中的位置,INDEX函式用於從“B列”選取對應的部門資料。

不過用這個公式從G6開始會報錯,可以改造一下:

=IF(ISNA(MATCH(E3,F:F,0)),“”,INDEX(B:B,MATCH(E3,F:F,0)))

即如果是無效資訊,則填入空白資料。

設定下拉選單

至此,部門資料中的重複資料就被去掉了,而且剩餘的資料挨在一起顯示。

1、接下來就可以設定下拉選單了,考慮到原始資料有可能再有增加,也就是說“B列”、“C列”會增加行,為了讓下拉選單能夠適應,可以將下拉選單的來源設為:

=$G:$G

Excel中不用VBA也能實現:去掉重複資料,生成下拉選單

圖5:設定下拉選單

這樣無論原始資料增加多少,下拉選單都能夠及時捕捉到了。但這樣操作也帶來一個問題,就是最後一個數據的下面會有大量空白行,需要在下拉選單的來源中“加點料”。

Excel中不用VBA也能實現:去掉重複資料,生成下拉選單

圖6:增加統計資料H列

2、我們需要自動數出“G列”中有效資料的個數,但COUNTA函式會把空白資料“”也納入統計,COUNT函式則不識別字符串。我們需要增加“H列”,將“G列”中有效資料識別為數字,然後再用COUNT函式就能統計出“H列”的個數了,而這就是部門的個數。

3、我們再將下拉選單的來源改造一下:

=OFFSET(G3,,,COUNT(崗位列表H:H))

就能去掉下拉選單中的空白行了。

完美!

更多應用

本文介紹的方法還有許多其他用途,這裡再介紹一種。

Excel中不用VBA也能實現:去掉重複資料,生成下拉選單

圖7:商品合併統計

圖中左半部分是原始銷售列表,同樣的商品在不同日期都有銷售,我們可以處理成圖中右半部分的資料,這就實現了商品合併統計。

實際應用中我們可以將灰色的兩個輔助列隱藏,就不會影響使用了。

需要更多實用教程,請關注“四句話管理”。

(關注我後發私信“去重工具”,可獲得文中用到的excel原始表)