【问题标题】:EXCEL How do I split text into different cells and arrange them vertically?EXCEL 如何将文本拆分为不同的单元格并垂直排列?
【发布时间】:2014-03-02 14:45:26
【问题描述】:

我想处理大量数据。手动操作是不可能的。 我想将源(例如 1)变成类似(例如 2)的形式。

[例如 1]
a1;a2;a3
b1;b2;b3;b4
c1;c2

[例如 2]
a1
a2
a3
b1
b2
b3
b4
c1
c2

但是,我只能将它转换成这种形式。
a1 a2 a3
b1 b2 b3 b4
c1 c2

================================================ ================================= 非常感谢你。我还有另一件事要做。 我想更进一步。

让 x 为任意 # 这里是 21

[例如 1]
a1;a2;a3
b1;b2;b3;b4
c1;c2

[例如 2]
21 a1
21 a2
21 a3
22 b1
22 b2
22 b3
22 b4
23 c1
23 c2

空格表示它们在不同的单元格中。

谢谢~~

【问题讨论】:

标签: excel text split cell


【解决方案1】:

假设 a1;a2;a3 在单元格 A1 中,试试这个小宏将结果放在 B 列中:

Sub ReArrange()
    Dim N As Long, i As Long, BigString As String
    N = Cells(Rows.Count, 1).End(xlUp).Row
    BigString = Range("A1").Value
    For i = 2 To N
        BigString = BigString & ";" & Cells(i, 1).Value
    Next i
    i = 1
    ary = Split(BigString, ";")
    For Each a In ary
        Cells(i, 2).Value = a
        i = i + 1
    Next a
End Sub

编辑#1

根据您对额外列的需要,此宏会询问初始值并将结果放在列 AB 中:

Sub ReArrangeII()
    Dim N As Long, i As Long, BigString As String
    Dim M As Long, j As Long
    N = Cells(Rows.Count, 1).End(xlUp).Row
    M = Application.InputBox(Prompt:="enter initial value", Type:=1)
    j = 1
    For i = 1 To N
        BigString = Cells(i, 1).Value
        ary = Split(BigString, ";")
        u = UBound(ary) + 1
        For Each a In ary
            Cells(j, 2).Value = M
            Cells(j, 3).Value = a
            j = j + 1
        Next a
        M = M + 1
    Next i
End Sub

【讨论】:

  • 非常感谢。我还有另一个问题,但我不能在这里提交另一个帖子。请看上面
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多