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

Excel中如何基于订单号统计对应唯一商品编号数量?

订单号下唯一商品编号统计方案(保留所有原行)

针对你无法删除重复行、需要在每个订单首行统计唯一商品数的需求,提供两种可行方案:

一、Excel公式法(支持实时更新)

1. 适用于Excel 365/2021(动态数组版本)

在第一个「商品计数」单元格(对应示例的C2)输入以下公式,下拉填充即可:

=IF(COUNTIF($A$2:A2,A2)=1,COUNTA(UNIQUE(FILTER($B$2:$B$19,$A$2:$A$19=A2))),"")
  • 逻辑:用COUNTIF($A$2:A2,A2)=1判断当前行是否为该订单的第一行;
  • 是首行则通过FILTER筛选该订单所有商品编号,UNIQUE去重后用COUNTA统计数量;
  • 非首行返回空值,和示例格式完全匹配。

2. 适用于旧版Excel(无动态数组支持)

使用数组公式,在C2输入后按Ctrl+Shift+Enter确认,再下拉填充:

=IF(COUNTIF($A$2:A2,A2)=1,SUMPRODUCT(($A$2:$A$19=A2)/COUNTIFS($A$2:$A$19,$A$2:$A$19,$B$2:$B$19,$B$2:$B$19)),"")
  • 逻辑:通过SUMPRODUCT结合COUNTIFS计算每个订单下唯一商品的数量,避免重复统计。

二、Power Query法(适合大型数据集,高效处理每日更新)

如果数据集规模很大,公式计算卡顿,推荐用Power Query批量处理,不破坏原数据:

  1. 选中数据区域,点击「数据」>「自表格/区域」导入Power Query编辑器;
  2. 点击「转换」>「分组依据」:
    • 分组列选择「订单号(Order no.)」;
    • 新列名设为「唯一商品数」,操作选择「所有行」;
  3. 添加自定义列,公式为:
    List.Count(List.Distinct([所有行][商品编号(Item no.)]))
    
  4. 删除「所有行」列,回到原数据表,点击「合并查询」,按「订单号」将原表和分组后的表合并;
  5. 添加条件列:判断当前行是否为该订单的第一行(可先添加索引列,再按订单号分组标记首行),仅在首行填充「唯一商品数」,其余行留空;
  6. 点击「关闭并上载」,将结果加载回Excel。后续每日更新数据后,右键刷新即可自动更新统计结果。

内容的提问来源于stack exchange,提问作者Scooby don't

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:00:56