2016-06-01 143 views
1

我有excell中的數據格式爲A1 = a; b; c的數據列,我想將它分成三個單元格,如B1 = a,C1 = b & D1 = c。請幫助將excel單元格中的數據與分隔符分隔爲「;」

+2

使用數據功能區 –

+0

上的文本到列嚮導使用分隔設置並選擇;作爲你的分隔符。如果您不希望您的源代碼被寫入,請選擇B1或B列作爲您的目的地。 –

回答

1

如果你不斷地粘貼信息到A柱和你正在尋找一個公式的解決方案,你可以這樣做

=TRIM(MID(SUBSTITUTE($A1,";",REPT(" ",LEN($A1))),(COLUMNS($B:B)-1)*LEN($A1)+1,LEN($A1))) 

那假設你的數據的第一位開始在單元格A1和你將您的分隔值從列B中開始。將公式右側複製爲您所需的許多條目。

更簡單的方法是使用Excel's text to columns選項,前提是您可以像Ron Rosenfeld指出的那樣使用它。

+0

你的配方就像魅力一樣。它似乎比Text To Columns好得多,可能會讓很多使用VBA的人感到不舒服。 – skkakkar

1

如果你想有一個VBA解決方案。請試試這個:

Sub Transpose_Q8582() 
    Dim pasteRng As Range 
    Dim i As Long 

     With ActiveSheet 
     Set pasteRng = .Range("B1:D1") 
     With .Range("A1:A" & .Cells(.Rows.Count, "A").End(xlUp).Row) 
      For i = 1 To .Rows.Count Step 3 
       pasteRng.Offset(i - 1).Value = Application.Transpose(.Cells(i, 1).Resize(3)) 
      Next i 
     End With 
    End With 
End Sub 

Snapshot shows the results:

編輯 有了解OP要求的監督。我修改了VBA代碼以滿足OP要求。

Sub Test1() 
    Dim values As Variant 
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row 
     values = Split(Cells(i, 1).Value, ";") 
    Cells(i, 1).Offset(0, 1).Resize(1, UBound(values) + 1).Value = values 
    Next 
End Sub 

Snapshot showing results

+0

我想你錯過了這個問題的重要部分......'A1 = a; b; c',而不是'A1 = a','A2 = b','A3 = c'。 – OldUgly

+0

@OldUgly抱歉,這是疏忽。如何撤回他的答案? – skkakkar

+0

@skkakkar爲什麼退出,修復你的答案8)你可以做到!如果由於其他原因無法完成,請點擊刪除而不是編輯。稍後當您更新時,您可以隨時取消刪除您的答案。 –

1

選擇您想要的單元格>轉到數據菜單>文本到列>分隔>選擇分號> 完成

0

寫這個公式B1和將其向右拖動並在下方行

=IF(COLUMN()=2,LEFT($A1,1),IF(COLUMN()=3,MID($A1,3,1),RIGHT($A1,1))) 
相關問題