You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Excel中提取单元格数据相似的文件并生成目标格式数据?

实现Excel数据分组格式化输出的三种方法

根据你的输入(按Item分组,合并对应Specification和Quantity为Spec (Qty)格式),以下是几种高效的实现方案:

方法一:Power Query(推荐,无公式/代码)

适合批量处理,操作可视化:

  1. 选中包含表头的数据区域,点击数据选项卡 → 从表格/区域(确认勾选「我的表格有标题」)。
  2. 在Power Query编辑器中,选中Item列,点击转换 → 分组依据:
    • 分组依据:选择Item
    • 新列名:输入Details
    • 操作:选择「所有行」,点击确定。
  3. 点击Details列右侧的双箭头,选择「提取值」:
    • 分隔符选「换行符」,高级选项中设置值格式为[Specification] ([Quantity]),确认。
  4. 点击主页 → 关闭并上载,结果会导出到新工作表。

方法二:公式法(Excel 365/2021适用)

无需额外工具,用函数快速生成:

  1. 提取唯一Item列表:在空白列(如E列)E2单元格输入=UNIQUE(A:A),下拉填充。
  2. 生成对应明细:在F2单元格输入公式,下拉填充:
    =TEXTJOIN(CHAR(10),TRUE,FILTER(B:B&" ("&C:C&")",A:A=E2,""))
    
  3. 选中F列,设置单元格格式为「自动换行」,明细会按分行显示。

方法三:VBA宏(适合重复批量处理)

按Alt+F11打开VBA编辑器,插入新模块,粘贴以下代码(记得替换工作表名):

Sub GenerateFormattedOutput()
    Dim wsInput As Worksheet, wsOutput As Worksheet
    Dim lastRow As Long, i As Long, j As Long
    Dim currentItem As String
    
    Set wsInput = ThisWorkbook.Worksheets("Sheet1") ' 替换为你的数据工作表名
    Set wsOutput = ThisWorkbook.Worksheets.Add
    wsOutput.Name = "FormattedOutput"
    
    lastRow = wsInput.Cells(wsInput.Rows.Count, "A").End(xlUp).Row
    currentItem = ""
    j = 1
    
    For i = 2 To lastRow
        If wsInput.Cells(i, "A").Value <> currentItem Then
            currentItem = wsInput.Cells(i, "A").Value
            j = j + 1
            wsOutput.Cells(j, "A").Value = currentItem
            j = j + 1
        End If
        wsOutput.Cells(j, "A").Value = wsInput.Cells(i, "B").Value & " (" & wsInput.Cells(i, "C").Value & ")"
        j = j + 1
    Next i
    
    wsOutput.Columns("A").AutoFit
End Sub

运行宏后会自动生成带目标格式的新工作表。

内容的提问来源于stack exchange,提问作者Jahidul Hasan Razib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:46:13