我在Mac OSX上使用excel 2011。我有一個包含約3000個條目的數據集。在包含名稱的字段中,許多名稱不分隔。名字和姓氏之間用空格分隔,但是單獨的名字聚集在一起。在excel中清理不良數據,按大寫字母拆分單詞
這裏是我的,(一個單元):
格蘭特MorrisonSholly甘草
本OliverCarlos阿爾韋託·費爾南德斯烏爾巴諾
本OliverCarlos阿爾韋託·費爾南德斯烏爾巴諾
本·奧利弗
本·奧利弗
這裏是我的想要完成,(一格,逗號後用逗號隔開):
格蘭特·莫里森,Sholly甘草,本·奧利弗,卡洛斯·阿爾貝託·費爾南德斯烏爾巴諾,本·奧利弗,卡洛斯·阿爾貝託·費爾南德斯烏爾巴諾,本·奧利弗,本·奧利弗
我已經找到了一些VBA腳本,將通過資本分開單詞信,但我已經試過將增加的空間,我不需要他們像這樣的的...
Function splitbycaps(inputstr As String) As String
Dim i As Long
Dim temp As String
If inputstr = vbNullString Then
splitbycaps = temp
Exit Function
Else
temp = inputstr
For i = 1 To Len(temp)
If Mid(temp, i, 1) = UCase(Mid(temp, i, 1)) Then
If i <> 1 Then
temp = Left(temp, i - 1) + " " + Right(temp, Len(temp) - i + 1)
i = i + 1
End If
End If
Next i
splitbycaps = temp
End If
End Function
還有另外一個,我發現這裏所使用的正則表達式,(原諒我,我我只是學習所有這些,所以我可能聽起來有點愚蠢),但是當我嘗試那個時,它根本不起作用,而且我的研究指出了一種添加對庫的引用的方法,所以我可以使用它的輔助工具。不幸的是,在我的生活中,我無法找到如何在我的mac版本的excel中添加對庫的引用......我可能做錯了什麼,但這是我無法工作的答案.. 。
Function SplitCaps(strIn As String) As String
Dim objRegex As Object
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Global = True
.Pattern = "([a-z])([A-Z])"
SplitCaps = .Replace(strIn, "$1 $2")
End With
End Function
我基本上是全新的直通Excel通過VBA添加自定義的功能,甚至有可能是一個更好的辦法做到這一點,但它似乎是每一個答案,那我來只是沒有完全得到數據正確。感謝任何答案!
這第一功能會爲你工作與編輯的一點點。我猜測你說什麼時候在不需要的位置增加空格必須與前一個字符是空格的名稱以及
部分相關。您可以簡單地添加另一個If語句或添加到現有的語句中,以捕捉這些字符並使其按您打算的方式執行。 – Tyeler
我進來的是,你幾乎已經在那裏,只是多一點,你已經得到它 – Tyeler
你總是有名字和姓氏的組合嗎?我問的是如果你總是有一串字符串,即使沒有被格式化爲你正在顯示的例子(對不起,但我不知道如何在評論中加粗) – RCaetano