第1个回答 2019-06-14
假如数据在A1单元格,在B1单元格输入公式=IFERROR(LOOKUP(12^12,--MID(";"&A$1,FIND("@",SUBSTITUTE(";"&A$1,";","@",ROW(A1)))+1,ROW($1:$1000))),"")
下拉公式。 如图:
第2个回答 2019-06-14
这种数据,用VBA实现最方便,代码如下:
Sub 单元格拆分()
Dim arr1, x
'对当前活动工作表进行操作
With ActiveSheet
'从数据最后一行开始执行循环
For x = .Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If .Cells(x, 1) <> "" Then
'去掉最后一个分号
If Right(Cells(x, 1), 1) = ";" Then Cells(x, 1) = VBA.Mid(Cells(x, 1), 1, Len(Cells(x, 1)) - 1)
'将A¥B列单元格内容拆分成数组
arr1 = Split(.Range("a" & x), ";")
'如果拆分出来的内容多于1个
If UBound(arr1) >= 1 Then
'根据拆分出来的数据项的数量向下插入空行
Rows(x + 1 & ":" & UBound(arr1) + x).Insert Shift:=xlDown
'在当前行C、D列转置存放拆分出来的数据项
.Range("b" & x).Resize(UBound(arr1) + 1, 1) = Application.Transpose(arr1)
Else
.Range("b" & x) = arr1
End If
End If
Next
End With
End Sub