当单元格更改值时,Excel自动将ID增加1

我有一个文件,有三列。 ID为空,名称有一些名称,PARENT_ID存储名称的父ID。

我想要做的是在列ID获取父ID,并添加一个两位数字,将增加01.例如,我们有10只猫与父ID 1.我想在列ID取父母ID“ 1“,然后为第一只猫添加”01“,为第二只猫添加”02“,依此类推。 所以在列ID我会有foreach猫自动递增值101,102,… 110。 然后,狗开始,所以它将采取“2”的父母的身份,并再次开始foreach狗增加incrementig值201,202等等。然后鱼301,302

这是我正在尝试做的一个例子。

ID NAME PARENT_ID 101 cat 1 102 cat1 1 103 cat2 1 104 cat3 1 105 cat4 1 106 cat5 1 107 cat6 1 108 cat7 1 109 cat8 1 110 cat9 1 111 cat10 1 201 dog 2 202 dog1 2 203 dog2 2 204 dog3 2 205 dog4 2 206 dog5 2 301 fish 3 302 fish 3 

这个专栏的名字不用担心,我只是把它放在你身上才能更好地理解。

我不熟悉视觉基础,我试图用公式来完成,但没有运气。

感谢您的任何帮助。

把它放在A2中,并复制/下拉:

 =IF(C2<>C1,C2*100+1,A1+1) 

在这里输入图像说明

将下面的公式粘贴到“A2” =C2&RIGHT("00"&COUNTIF($C$1:C2,C2),2)

并将公式向下拖动。 如果你的数据有超过10个独特的logging,那么就像=C2&RIGHT("00"&COUNTIF($C$1:C2,C2),3)

不是VBA的方法,而是一个公式的方法 – 如果这是你想要的东西:

  Row ABCDEF 1 ID NAME PARENT_ID RunningName RunningID NewID 2 101 cat 1 cat 0 cat 3 102 cat1 1 cat 1 cat01 4 103 cat2 1 cat 2 cat02 5 104 cat3 1 cat 3 cat03 6 105 cat4 1 cat 4 cat04 7 106 cat5 1 cat 5 cat05 8 107 cat6 1 cat 6 cat06 9 108 cat7 1 cat 7 cat07 10 109 cat8 1 cat 8 cat08 11 110 cat9 1 cat 9 cat09 12 111 cat10 1 cat 10 cat10 13 201 dog 2 dog 0 dog 14 202 dog1 2 dog 1 dog01 15 203 dog2 2 dog 2 dog02 16 204 dog3 2 dog 3 dog03 17 205 dog4 2 dog 4 dog04 18 206 dog5 2 dog 5 dog05 19 301 fish 3 fish 0 fish 20 302 fish 3 fish 1 fish01 

…然后我用下面的公式:

 D2: =if(a2="","",if(sum(C2)<>sum(C1),trim(B2),trim(D1))) E2: =if(a2="","",if(sum(C2)<>sum(C1),0,sum(E1)+1)) F2: =if(a2="","",trim(D2)&if(sum(E2)=0,"",text(E2,"00"))) 

然后,我把这些细胞按照我关心的方式复制到列中。 您可以将“正在运行”列设置为非常浅灰色的文本颜色,以使其不会分散用户的注意力。

希望这可以帮助激发你制定一个适合你的解决scheme。