2013-02-07 163 views
0

我有一個帶有地址單元格的excel文件。Excel中的分割地址字段

3點不同的數據的例子:

123 Main Street/n Apartment2 /n New York, NY 10001 
123 Main Street/n New York, NY 10001 
123 Main Street 

我想將其分成三個獨立的字段。但是,正如上面的數據所顯示的那樣,有些會出現0次/ n,有些會出現2次。有些會發生3次。

我可以處理一次出現,有: = LEFT(E6,SEARCH( 「/ N」,E6,1)-2) = RIGHT(出口E6,LEN(出口E6) - SEARCH(」!/N」,出口!E6,1)-1)

然而,我的公式開始打破時,也有可變數量/ N

有什麼建議?

+0

你不需要公式 - 文本到列將完美地完成這項工作) –

+0

不幸的是,我無法獲得文本到列的工作,它只接受字符不是兩個「/ n」請記住,/ n實際上是兩個字符而不是新的換行符。 – user2012677

+1

將「/ n」替換爲不在數據中的任何單個字符,例如@#$ ^〜 - 並轉到上面)全部替換通過Ctrl-H可用。 –

回答

5

解決方案值得回答:

替換「/ n」來任何單個字符這是不是在你的數據,例如@#$^~ - 並使用Text to Columns

全部替換可通過按CTRL + H^

如果您不確定角色是否在您的數據中 - 請在替換前通過搜索進行檢查。

+0

+ 1爲非VBA方法:) –

1

下面是使用VBA

Option Explicit 

Sub Sample() 
    Dim MyArray() As String 
    Dim ws As Worksheet 
    Dim lRow As Long, i As Long, j As Long, c As Long 

    '~~> Change this to the relevant sheet name 
    Set ws = ThisWorkbook.Sheets("Sheet1") 

    With ws 
     lRow = .Range("A" & .Rows.Count).End(xlUp).Row 

     For i = 1 To lRow 
      If InStr(1, .Range("A" & i).Value, "/n", vbTextCompare) Then 
       MyArray = Split(.Range("A" & i).Value, "/n") 
       c = 1 
       For j = 0 To UBound(MyArray) 
        .Cells(i, c).Value = MyArray(j) 
        c = c + 1 
       Next j 
      End If 
     Next i 
    End With 
End Sub 

SCREENSHOT(之前)

enter image description here

SCREENSHOT(後)

enter image description here

的另一種方法
+0

+1爲VBA))將書籤,因爲它是我的日常需要 - 準備巨大的數據數組進行測試,並不總是這樣簡單如上。 –