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

如何在Excel或SQL中实现物料UOM与Qty的行转列操作?

物料UOM与Qty单行整合实现方案

Excel 快捷实现方法

1. 数据透视表法(快速生成结构化结果)

  • 选中数据源区域,点击「插入」→「数据透视表」,指定放置位置。
  • 透视表字段配置:
    • 物料字段拖至「行」区域
    • UOM字段拖至「列」区域
    • Qty字段拖至「值」区域,值计算方式设为「求和」(若同一物料+UOM有多条记录)
  • 调整格式后,自动生成每个物料对应各UOM数量的单行展示表。

2. TEXTJOIN 函数法(自定义拼接格式)

假设物料列是A列,UOM列B列,Qty列C列,在D2单元格输入公式(Excel 365/2021直接回车,旧版本按Ctrl+Shift+Enter确认):

=TEXTJOIN(", ", TRUE, IF(A$2:A$100=A2, B2&":"&C2, ""))
  • 逻辑:匹配当前行物料,将对应UOM和Qty拼接为「UOM:Qty」格式,再用逗号分隔合并到同一单元格。
  • 下拉填充公式完成所有物料的整合。

3. Power Query法(适配大数据量)

  • 选中数据源,点击「数据」→「从表格/区域」进入Power Query编辑器。
  • 选中物料列,点击「转换」→「分组依据」,分组列选物料,新列名设为UOM_Qty,操作选「所有行」。
  • 添加自定义列,输入公式:
Text.Combine(List.Transform([UOM_Qty], each [UOM] & ":" & Text.From([Qty])), ", ")
  • 删除冗余列,关闭并上载数据,得到单行整合结果。

SQL 快捷实现方法

根据不同数据库的字符串聚合函数,对应写法如下:

MySQL/MariaDB

SELECT 
    material_code,
    GROUP_CONCAT(CONCAT(uom, ':', qty) SEPARATOR ', ') AS uom_qty
FROM 
    your_table
GROUP BY 
    material_code;

SQL Server 2017+

SELECT 
    material_code,
    STRING_AGG(CONCAT(uom, ':', qty), ', ') AS uom_qty
FROM 
    your_table
GROUP BY 
    material_code;

Oracle 11g+

SELECT 
    material_code,
    LISTAGG(CONCAT(uom, ':', qty), ', ') WITHIN GROUP (ORDER BY uom) AS uom_qty
FROM 
    your_table
GROUP BY 
    material_code;

PostgreSQL

SELECT 
    material_code,
    STRING_AGG(CONCAT(uom, ':', qty), ', ') AS uom_qty
FROM 
    your_table
GROUP BY 
    material_code;

内容的提问来源于stack exchange,提问作者MAN2022

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:15:01