Excel根据ID自动编号

4

给定以下表格:

No. ID
HA
PA
PA
PA
HA
PA
HA
PA
PA
HA
我想为第一列创建一个公式,以创建自动编号,其中当ID="HA"时,主要数字始终递增,当ID="PA"时,次要数字始终递增,如下所示:
No. ID
1 HA
1.1 PA
1.2 PA
1.3 PA
2 HA
2.1 PA
3 HA
3.1 PA
3.2 PA
4 HA
如果有帮助的话,我目前所得到的是:
=IF(B2="HA",COUNTIF($B$2:B2,"HA"),CONCAT(A1,".",COUNTIF(INDIRECT("B"&XMATCH("HA",$B$2:B2)),"PA")))

正如你所看到的,我在第二部分遇到了困难,也许有人可以从这里帮助我。


你使用的是哪个版本的Excel? - Ike
说实话,我现在使用的是WPS Office,但是可以考虑切换到Excel 365。 - pato
1
应该是文本3.2还是英文写法的数字3.2?如果是后者,如果ID是PA,可以将0.1添加到前一个单元格;如果是HA,则对前一个单元格进行“向下取整”+1操作。对于文本,您可以使用类似MID/LEFT这里所示的函数。 - Notus_Panda
1个回答

4

使用 Microsoft-365,您可以尝试使用 SCAN() 函数。

=SCAN(0,B2:B11,LAMBDA(a,x,IF(x="HA",a+1,a)))+SCAN(0,B2:B11,LAMBDA(aa,xx,IF(xx="HA",0,aa+1)))/10

根据评论区@VBasic2008的建议,以下公式更简单、更优雅。

=SCAN(0,B2:B11,LAMBDA(a,x,IF(x="HA",INT(a)+1,a+0.1)))

enter image description here


2
@Ike 可能吧。我没有在德国系统上工作过。 - Harun24hr
3
=SCAN(0,B2:B11,LAMBDA(a,x,IF(x="HA",INT(a)+1,a+0.1)))有什么问题吗? - VBasic2008
2
@VBasic2008 这更加优雅。我已经将这个公式添加到我的答案中。 - Harun24hr
2
也许还可以添加第三个(否则)选项,=SCAN(0,B2:B11,LAMBDA(a,x,IF(x="HA",INT(a)+1,IF(x="PA",a+0.1,a)))) - VBasic2008
2
好答案。我在想如果需要将系列扩展到(比如)2.10、2.11、2.12等,你会怎么做 - 我猜你需要回到使用两个扫描并将它们连接起来的方法。 - Tom Sharpe
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接