如何将单个单元格拆分为多行并添加另一行

How to Split a single cell into multiple rows and add another row

我有一个有两列的 table。日期和测试名称。 我想要发生的是将一个单元格中的文本字符串分成多行。此外,我需要将日期与每组文本相关联。我试过文本到列然后转置,但它一次只能处理一组字符串,而不是整个数据集。

这需要一些复制和粘贴操作,还需要使用 WORD,但这里有几个步骤应该可以帮助您。

  1. 复制有问题的单元格。
  2. 打开 Word
  3. 选择性粘贴(使用粘贴图标下方的下拉箭头)
  4. Select 选项 - 未格式化的 Unicode 文本(作为您的特殊粘贴选项)
  5. Select 全部
  6. 替换
  7. 查找内容:(输入 space)替换为:^p(创建新行)
  8. 将结果复制并粘贴回 excel

遍历 A 列然后遍历它旁边的字符串。

结果将在 D 列中

    Sub ChickatAH()
    Dim rng As Range, Lstrw As Long, c As Range
    Dim SpltRng As Range
    Dim i As Integer
    Dim Orig As Variant
    Dim txt As String

    Lstrw = Cells(Rows.Count, "A").End(xlUp).Row
    Set rng = Range("A2:A" & Lstrw)

    For Each c In rng.Cells
        Set SpltRng = c.Offset(, 1)
        txt = SpltRng.Value
        Orig = Split(txt, " ")

        For i = 0 To UBound(Orig)
            Cells(Rows.Count, "D").End(xlUp).Offset(1) = c
            Cells(Rows.Count, "D").End(xlUp).Offset(, 1) = Orig(i)
        Next i

    Next c

End Sub

公式解决方案接近您的要求。

单元格 H1 是分隔符。在这种情况下 space.

Helper E1:=SUM(E1,LEN(B1)-LEN(SUBSTITUTE(B1,$H,"")))+1

以上公式你必须多填一行

A8:=a1

把这个公式填到右边。

A9:=LOOKUP(ROW(1:1),$E:$E,A:A)

将此公式向右填写,然后向下填写。

B9:=MID($H&LOOKUP(ROW(A1),E:E,B:B)&$H,FIND("艹",SUBSTITUTE($H&LOOKUP(ROW(A1),E:E,B:B)&$H,$H,"艹",ROW(A2)-LOOKUP(ROW(A1),E:E)))+1,FIND("艹",SUBSTITUTE($H&LOOKUP(ROW(A1),E:E,B:B)&$H,$H,"艹",ROW(A2)-LOOKUP(ROW(A1),E:E)+1))-FIND("艹",SUBSTITUTE($H&LOOKUP(ROW(A1),E:E,B:B)&$H,$H,"艹",ROW(A2)-LOOKUP(ROW(A1),E:E)))-1)

往下填。

错误:

Date/time会转为数值,空白处补0。可以在A9B9的公式末尾加上&""来屏蔽值为 0,但 numbers/date/time 将被转换为文本。