2016-11-09 1 views
4

Mac OSX에서 Excel 2011을 사용하고 있습니다. 약 3000 개의 항목으로 구성된 데이터가 있습니다. 이름이 들어있는 필드에는 많은 이름이 구분되지 않습니다. 성과 이름은 공백으로 구분되지만 별도의 이름은 함께 묶습니다. 여기 Excel에서 잘못된 데이터 정리, 대문자로 단어 분할

내가, (하나의 셀)가 무엇 :

이 이

그랜트 MorrisonSholly 피셔
벤 OliverCarlos 알베르토 페르난데스 URBANO
벤 OliverCarlos 알베르토 페르난데스 URBANO이
벤 올리버
벤 올리버

다음

무엇을의

I 달성하고 싶습니다 (하나의 셀, 쉼표 뒤에 하나의 공백으로 구분 된 쉼표).

그랜트 모리슨, Sholly 피셔, 벤 올리버, 카를로스 알베르토 페르난데스 URBANO, 벤 올리버, 카를로스 알베르토 페르난데스 URBANO, 벤 올리버, 벤 올리버

나는 자본 단어를 분할하는 몇 가지 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 

그냥이 모든 것을 배우기 때문에 조금 바보가 들릴지도 모릅니다.)하지만 그 중 하나를 시도했을 때 전혀 작동하지 않을 것이고, 저의 연구에 따르면 라이브러리에 참조를 추가하여 essary 도구를 사용하여 사용할 수 있습니다. 불행히도, 내 인생을 위해, 내 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 

나는 엑셀을 통해 VBA를 통해 사용자 정의 함수를 추가로 새로운 기본적으로 브랜드입니다, 심지어이 할 수있는 더 좋은 방법이있을 수 있지만 난 그냥 꽤하지 않습니다 와서 모든 대답처럼 보인다 데이터 권리. 어떤 답변 주셔서 감사합니다!

+0

(그렇다면 작은 팅겨이 필요합니다). 당신이 원하지 않는 위치에 공간을 추가하는 것이 이전 문자가 공백 인 이름과
부분이있는 이름과 관련이 있다고 말했을 때 나는 추측합니다. 단순히 다른 If 문을 추가하거나 기존 문에 추가하여 해당 문자를 잡아내어 원하는대로 수행되도록 할 수 있습니다. – Tyeler

+0

나는 무엇을지고, 너는 거의 이미 거기에있어, 조금만 더있어. 너 – Tyeler

+0

항상 성과 이름의 조합이 있니? 내가 묻는 것은 여러분이 보여주고있는 예제로 포맷되지 않은 상태에서도 항상 한 쌍의 문자열을 가지고 있다면 (미안하지만 대문자로 쓰는 방법을 모르겠다.) – RCaetano

답변

1

내 기능이 Split Uppercase words in Excel 인 경우 추가 문자열 일치를 위해 udpdating이 필요합니다.

할 않는 클렌징 사람들이 두 개의 이름을 가지고있다 enter image description here

한 가정을 다음과 같이 A1에서 텍스트를 셀 B1에서이 기능을 사용

, 그래서

벤 OliverCarlos 알베르토

은 (는)

으로 표시됩니다.

벤 올리버
카를로스 알베르토

실제로 어떤 일이 일어날해야한다는 것입니다?첫 번째 함수는 편집의 조금으로 당신을 위해 일한다고

코드

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(.Replace(strIn, "$1, $2"), "<br>", ", ") 
End With 
End Function 
+1

'vbscript.regexp 'lib는 MacOSX에서 사용 가능합니다. 그렇지 않으면 이것이 더 우수하고 유연한 솔루션이었습니다. – AutomatedChaos

+0

@AutomatedChaos 지난 번에 내 솔루션을보고 Mac OSX 참조를 놓쳤습니다. – brettdj

+0

감사합니다. 함수를 시도하고 # VALUE 만 반환합니다! 나는 이것이 정규 표현식의 OSX 문제라고 가정하고있다. 그렇다면 해결 방법이 있는가? 당신이 아는 어떤 종류의 패치 또는 무언가 ?? – LVPoker