如何分配增量数字,但前提是另一列是不同的值

How to assign incremental numbers but only if another column is different value

我正在尝试为我拥有列表的公司分配一个唯一 ID。这些公司有多种产品,因此公司名称出现在多行中。

=ARRAYFORMULA(IF($B2<>"",IF((COUNTIF($B:$B1,$B2)>0),INDEX($A:$R2,MATCH($B2,$B:$B1,0),12),CONCATENATE("C00",ROW($C2))),""))

上述类型的工作,但它会分配 C001,然后它会看到 C 列的行值匹配并跳过,但如果下一个公司名称向下 8 行,它会分配 C009,而不是将 C002 分配给下一个公司。

=ARRAYFORMULA(IF($B2<>"",IF((COUNTIF($B:$B1,$B2)>0),INDEX($A:$R2,MATCH($B2,$B:$B1,0),12),CONCATENATE("RET00",ROW($B2))),""))

我希望每个不同的公司名称都有一个递增的唯一 ID 输入到公司 ID 列行。

这是我的数据和预期结果:

试试这样:

=ARRAYFORMULA(IFERROR(VLOOKUP(B2:B, 
  {UNIQUE(INDIRECT("B2:B"&COUNTA(B2:B)+1)), 
 TEXT(ROW(INDIRECT("B1:B"&COUNTUNIQUE(B2:B))), "C0#")}, 2, 0)))