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

使用ARRAYFORMULA实现按产品自动递增序号,产品变更时重置为1

按产品ID生成重置式序列号的解决方案

可行公式(直接生成ID-序号格式)

在目标列首行(如B2)输入以下公式,即可自动为所有行生成符合要求的序列号:

=ARRAYFORMULA(IF(A2:A="", "", A2:A & "-" & COUNTIFS(A2:A, A2:A, ROW(A2:A), "<="&ROW(A2:A))))

公式逻辑拆解

  • IF(A2:A="", "", ...):过滤A列空单元格,避免生成无效内容
  • COUNTIFS(A2:A, A2:A, ROW(A2:A), "<="&ROW(A2:A)):核心逻辑——针对每行的产品ID,统计当前行及以上所有行中相同ID的出现次数,这个次数就是该ID对应的自增序列号(换ID时自动重置为1)
  • A2:A & "-" & ...:将产品ID与序列号拼接成「ID-序号」的格式(如101-1、102-2)

单独生成序列号的替代公式

如果只需要序列号数字(不拼接产品ID),使用这个公式:

=ARRAYFORMULA(IF(A2:A="", "", COUNTIFS(A2:A, A2:A, ROW(A2:A), "<="&ROW(A2:A))))

原公式失效原因

你之前使用的=ARRAYFORMULA(IF(A2:A="", "",IF(A2:A=A1:A, ROW(A2:A) - ROW(A2) + 1,1)))存在两个问题:

  1. ARRAYFORMULA中A2:A=A1:A的数组对比会因行错位导致连续相同ID的计数逻辑错误
  2. 用ROW差值计数无法针对不同产品ID单独重置计数器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 07:18:21