excel单元格中的数据与分隔符分隔为“;”

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

select您想要的单元格>转到数据菜单>文本到列>分隔符>select分号>完成

如果您不断地将信息粘贴到A列中,而您正在寻找配方解决scheme,则可以执行此操作

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

这假定您的第一个数据位在单元格A1中开始,并且您将从列B中开始分隔值。将公式向右复制,就像您拥有的条目一样多。

如果罗恩·罗森菲尔德(Ron Rosenfeld)指出的,可以使用Excel的文本列选项,那么更简单的方法就是使用它。

如果你想有一个VBA解决scheme。 请试试这个:

 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 

快照显示结果:

编辑在了解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 

快照显示结果

在B1中写下这个公式,然后向右和向下拖动它

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