我在excell中的列有格式A1 = a; b; c的数据,我想把它分成三个单元格,如B1 = a,C1 = b& D1 = c。请帮忙
答案 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
修改强> 在理解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
答案 2 :(得分:1)
选择您想要的细胞>转到数据菜单>文字到列>定界>选择分号> 完成
答案 3 :(得分:0)
将此公式写入B1并将其拖向右侧和下方行
=IF(COLUMN()=2,LEFT($A1,1),IF(COLUMN()=3,MID($A1,3,1),RIGHT($A1,1)))