Excel 数据合并到一列

Excel 数据合并到一列

我在一家慈善机构工作,对 Excel 不太熟悉。

数据从我们的网站导入到电子表格中,但订单没有像我希望的那样分成行和列。是否可以将多行数据排列到一列中?并非每行都有相同数量的条目。我已使用文本转列将 csv 数据转换为列。

谢谢

在此处输入图片描述

编辑

导入的内容在 csv 文件中的显示方式如下:

订单 产品名称 50, 30 水援助,食品包裹 5 普通 20 医疗 1, 5, 20, 100 普通,水援助,医疗,食品

这就是我希望它看起来的样子。

订单 产品名称 50 水援助 30 食品包裹 5 通用 20 医疗 1 通用 5 水援助 20 医疗 100 食品

真的不确定如何在这里导入 csv 格式,有人可以帮忙吗?

答案1

VBA 宏解决了该问题:

在此处输入图片描述

怎么运行的:

  • Alt+F11打开 VB 编辑器。
  • C奥皮&将此代码作为标准模块。

    Sub SplitData()

    Dim xRg As Range
    Dim xRg1 As Range
    Dim xCell As Range
    Dim i As Long
    Dim xAddress As String
    Dim xUpdate As Boolean
    Dim xRet As Variant

    On Error Resume Next

    xAddress = Application.ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select a column", "Split Data", xAddress, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

    If xRg Is Nothing Then Exit Sub

        If xRg.Columns.Count > 1 Then
            MsgBox "You can't select multiple columns", , "Split Data"
            Exit Sub
            End If

            Set xRg1 = Application.InputBox("Split to (select single cell):", "Split Data", , , , , , 8)
            Set xRg1 = xRg1.Range("A1")

            If xRg1 Is Nothing Then Exit Sub
                xUpdate = Application.ScreenUpdating
                Application.ScreenUpdating = False

                For Each xCell In xRg
                    xRet = Split(xCell.Value, ",")
                    xRg1.Worksheet.Range(xRg1.Offset(i, 0), xRg1.Offset(i + UBound(xRet, 1), 0)) = Application.WorksheetFunction.Transpose(xRet)
                    i = i + UBound(xRet, 1) + 1
                Next
                Application.ScreenUpdating = xUpdate
            End Sub

  • Alt+Q返回工作表。
  • 年代将文件保存为,acro 已启用 ( .xlsm)。
  • R联合国宏观。
  • 从 Col A 中选择所需的单元格。

在此处输入图片描述


  • 完成k.

在此处输入图片描述

  • 选择单个单元格进行输出并完成k.

在此处输入图片描述


  • R再次取消宏并对产品列重复该过程。
  • 您将获得最终输出。

在此处输入图片描述

注意: 此宏每次作用于一列。

相关内容