excel表格同一單元格里剔除重複詞怎麼做?

同一個單元格里只保留一個詞怎麼做,請大神賜教!


思考再三, 老衲承認, 沒啥簡單的辦法. 只好祭出自定義函數了. (其他法子這個更麻煩)

首先, 如果你看過老衲的Excel教程, 應該還記得怎麼創建一個自定義函數. 忘了? 沒關係, 老衲再演示一遍.

1. 首先調出"開發工具"這個菜單. 在選項裡面.

2. 點開VBA, 進入VBA界面

3. 插入一個模塊, 處女座可以對這個模塊起個好名字. 老衲是水瓶座, 那就哈哈哈哈啦.

4. Coding: 時間緊就不逐一細說了. 還是非常簡單的. 老衲的注釋率超過20%啦~

Public Function deduplicate(duplicateWords As String)

"declaim some vars
Dim wArray As Variant

"Split the long string and Write in and deduplicate with dictionary

wArray = Split(duplicateWords, ",")

Set dic = CreateObject("scripting.dictionary")
For i = 0 To UBound(wArray)
dic(Trim(wArray(i))) = "" "Trim the string in case of irragular text
Next

"Reconstruct the long string
Dim result As String

For Each wItem In dic
result = result + "," + wItem
Next

deduplicate = Right(result, Len(result) - 1) "remove the extra comma and return

End Function

5. 這時候你已經有一個新公式了

6. 這個函數只需要把左邊的列選中, 然後拖動一下, 問題解決. 完美~~

如果還有更多問題, 請關注老衲在知乎的專欄~~從點滴開始做更好的自己 - 知乎專欄


簡單寫了下,利用字典去重

Function duplicate_removal(ByVal str As String, ByVal sign As String)

Dim strArr, strDic
Set strDic = CreateObject("Scripting.Dictionary")

strArr = Split(str, sign)
For i = 1 To UBound(strArr)
strDic.Item(strArr(i)) = strArr(i)
Next i

For Each Key In strDic
duplicate_removal = duplicate_removal + strDic(Key) + sign
Next

duplicate_removal = Left(duplicate_removal, Len(duplicate_removal) - Len(sign))

End Function

使用例子:
對A1單元格去重,分隔符是中文逗號
=duplicate_removal(A1,",")


給一個不用VBA的方法吧,題主要是會VBA也不會來問了。

但是,純公式是不可能的,數據量小的話,不如手動,數據量大的話,肯定就VBA了。

另外,樓上貼VBA的各位,好像都不知道Join()這個內置函數。


下面正文

假設你這個單元格數據是

先選中,然後進行如下操作:

1、數據-分列(逗號)

2、複製-粘貼(轉置)

3、數據-刪除重複項

4、在a的右邊單元格輸入公式,行列號根據你具體情況變化,反正就是把頭頂上單元格和左側單元格連接起來,然後加一個逗號

輸入完,回車

5、然後往下拉

6、然後用Left或者手動刪除掉最後的逗號

7、...Done!


分列,複製區域,選擇性粘貼,選轉置粘貼為列,刪除重複項,再合併文本


分列,選擇全部,選擇空值,刪除,然後逐列去重,合併成一列再去重,前提是excel2007上版本簡單。


首先把這個文檔保存為txt,然後打開,逗號替換成英文逗號,擴展名改成csv,打開以後每個詞都會處於單個單元格里,然後選中數據區域,開始菜單選條件格式,新規則,第五項,選重複值,顏色調成紅色,然後繼續選中數據區域,數據頁面選篩選,按紅色篩選,把這些都刪掉,取消排序,其他數據就顯示出來了,無論多列還是單列都可以用這個方法刪掉重複數據。再保存為csv文件,改成txt,打開後複製內容到excel文檔里,每行內容又合併到單個單元格里了。


這個需要重新做一個大的表格一點一點進行刪除,首先使用FIND函數定位每一個漢子,分別寫入不同單元格中,然後再使用INDEX和Match的函數嵌套把相同項進行刪除,最終在重新匯總至一個單元格中。


推薦閱讀:

如何用Excel的vlookup索引玩數據表?
有哪些好用或者高大上的excel插件(或者office辦公插件也可以)可以推薦的?
如何用excel畫樓梯?

TAG:MicrosoftExcel | Excel公式 | Excel使用 |