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

时间:2017-08-04 13:19:20

标签: excel increment

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

我想要做的是在列ID处获取父ID并添加一个两位数的数字,该数字将递增01.例如,我们有10只父ID为1的猫。我想在列ID中取得父母身份" 1"然后添加" 01"对于第一只猫," 02"对于第二只猫等等。因此,在列ID中,我将使用一个自动递增值101,102,... 110。 然后狗开始,所以它将采取父母的身份,即" 2"并再次开始foreach dog确实添加增量值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

列名不受关注,我只是为了让您更好地了解它。

我不熟悉visual basic,我试图用公式来完成这个但没有运气。

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

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

并将公式拖到下方。如果您的数据包含10个以上的唯一记录,请将其设为=C2&RIGHT("00"&COUNTIF($C$1:C2,C2),3)

答案 1 :(得分:2)

将其放入A2并复制/向下拖动:

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

enter image description here

答案 2 :(得分:0)

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

 Row  A    B      C          D            E          F
 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")))

然后我将这些细胞复制到了我想要去的柱子上。您可以将“正在运行”列设置为非常浅灰色的文本颜色,以使其不会分散用户的注意力。

希望这有助于激发您制定适合您的解决方案。