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

基于SKU前缀(第二个分隔符前)的递增计数器函数优化需求

解决方案

针对Excel 365/2021(支持LET函数,公式更简洁)

在Y2单元格输入以下公式,下拉填充即可:

=LET(
    raw, A2,
    norm, SUBSTITUTE(raw, "-", "_"),
    first_pos, FIND("_", norm),
    second_pos, IFERROR(FIND("_", norm, first_pos + 1), LEN(norm) + 1),
    sku, LEFT(raw, second_pos - 1),
    SUMPRODUCT(--(LEFT(A$2:A2, IFERROR(FIND("_", SUBSTITUTE(A$2:A2, "-", "_"), FIND("_", SUBSTITUTE(A$2:A2, "-", "_")) + 1) - 1, LEN(A$2:A2))) = sku))
)

针对旧版Excel(无LET函数支持)

在Y2单元格输入以下公式,下拉填充即可:

=SUMPRODUCT(--(LEFT(A$2:A2,IFERROR(FIND("_",SUBSTITUTE(A$2:A2,"-","_"),FIND("_",SUBSTITUTE(A$2:A2,"-","_"))+1)-1,LEN(A$2:A2)))=LEFT(A2,IFERROR(FIND("_",SUBSTITUTE(A2,"-","_"),FIND("_",SUBSTITUTE(A2,"-","_"))+1)-1,LEN(A2)))))

公式说明

  1. 统一分隔符:用SUBSTITUTE(A2,"-","_")把单元格中的-全部替换为_,避免同时处理两种分隔符的麻烦。
  2. 定位第二个分隔符:
    • FIND("_", norm)找到第一个_的位置;
    • FIND("_", norm, first_pos + 1)从第一个_的下一位开始找第二个_,用IFERROR处理没有第二个分隔符的情况(此时取字符串长度+1,确保提取到整个有效内容)。
  3. 提取SKU标识:LEFT(raw, second_pos - 1)截取到第二个分隔符之前的内容,作为计数的唯一标识。
  4. 累计计数:SUMPRODUCT(--(...))对比当前行以上(含当前行)所有单元格的SKU标识,统计与当前标识一致的数量,实现相同标识递增、不同标识重置为1的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:18:14