无需VBA:按日期、供应商及交货日期合并订单产品的方法咨询
无需VBA合并订单数据的两种最优方法
针对你的订单表格(包含日期、描述、产品编号、数量、供应商、交货日期字段),以下是两种无需VBA的高效合并方案,分别适配小数据量和大数据量场景:
一、公式法(适合小数据量,Excel 365/2021及以上版本)
示例数据
假设你的原始数据位于A2:F6区域:
| 日期 | 描述 | 产品编号 | 数量 | 供应商 | 交货日期 |
|---|---|---|---|---|---|
| 2024/5/1 | 办公耗材 | ITEM001 | 10 | 供应商A | 2024/5/10 |
| 2024/5/1 | 办公耗材 | ITEM002 | 5 | 供应商A | 2024/5/10 |
| 2024/5/2 | 电子配件 | ITEM003 | 3 | 供应商B | 2024/5/15 |
| 2024/5/1 | 办公耗材 | ITEM001 | 2 | 供应商A | 2024/5/10 |
| 2024/5/2 | 电子配件 | ITEM004 | 8 | 供应商B | 2024/5/15 |
操作步骤
提取唯一分组
在空白单元格(如G2)输入以下公式,自动生成「日期+供应商+交货日期」的唯一组合:=UNIQUE(CHOOSECOLS(A2:F6,1,5,6))公式解释:
CHOOSECOLS提取第1、5、6列(日期、供应商、交货日期),UNIQUE返回这三列的唯一值组合。合并对应产品信息
在H2(对应第一个分组的合并列)输入以下公式,下拉填充即可:=TEXTJOIN("; ", TRUE, IF((A$2:A$6=G2)*(E$2:E$6=H2)*(F$2:F$6=I2), B$2:B$6&"("&C$2:C$6&") x"&D$2:D$6, ""))公式解释:
(A$2:A$6=G2)*(E$2:E$6=H2)*(F$2:F$6=I2):匹配当前分组的日期、供应商、交货日期B$2:B$6&"("&C$2:C$6&") x"&D$2:D$6:拼接描述、产品编号和数量为统一格式TEXTJOIN将匹配到的所有产品信息用分号分隔合并
二、Power Query法(适合大数据量,全版本Excel通用)
Power Query是Excel内置的ETL工具,批量处理效率远高于公式,操作步骤如下:
导入数据到Power Query
选中原始数据区域,点击「数据」选项卡 → 「从表格/范围」,确认数据包含表头,点击「确定」进入Power Query编辑器。分组合并数据
- 选中「日期」「供应商」「交货日期」三列,点击「转换」选项卡 → 「分组依据」
- 在弹出的对话框中选择「高级」模式:
- 添加三个分组列:分别选择「日期」「供应商」「交货日期」,操作均为「分组依据」
- 添加新列,列名设为「合并产品」,操作选择「自定义」,输入以下公式:
Text.Combine(List.Transform([数据], each [描述] & "(" & [产品编号] & ") x" & Text.From([数量])), "; ")
- 点击「确定」,即可看到分组后合并好的产品信息。
导出结果
点击「主页」选项卡 → 「关闭并上载」,处理后的表格会自动加载到新工作表中。
最终示例结果
两种方法最终都会生成如下格式的合并数据:
| 日期 | 供应商 | 交货日期 | 合并产品 |
|---|---|---|---|
| 2024/5/1 | 供应商A | 2024/5/10 | 办公耗材(ITEM001) x10; 办公耗材(ITEM002) x5; 办公耗材(ITEM001) x2 |
| 2024/5/2 | 供应商B | 2024/5/15 | 电子配件(ITEM003) x3; 电子配件(ITEM004) x8 |
内容的提问来源于stack exchange,提问作者jynxy
相关产品推荐
相关产品推荐

