使用分隔符将excel单元格中的数据分离为&#34 ;;"

时间:2016-06-01 02:47:48

标签: excel excel-formula

我在excell中的列有格式A1 = a; b; c的数据,我想把它分成三个单元格,如B1 = a,C1 = b& D1 = c。请帮忙

4 个答案:

答案 0 :(得分:1)

如果您不断将信息粘贴到A栏中,并且您正在寻找配方解决方案,那么您可以这样做

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

假设您的第一位数据在单元格A1中开始,并且您将从B列开始放置分隔值。将公式复制到右侧,就像您拥有的条目一样。

如Ron Rosenfeld所指出的那样,更简单的方法是使用Excel's text to columns选项。

答案 1 :(得分: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

答案 2 :(得分:1)

  

选择您想要的细胞>转到数据菜单>文字到列>定界>选择分号>   完成

答案 3 :(得分:0)

将此公式写入B1并将其拖向右侧和下方行

=IF(COLUMN()=2,LEFT($A1,1),IF(COLUMN()=3,MID($A1,3,1),RIGHT($A1,1)))