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使用 |