连续数生成器

连续数生成器

我有一个数据编码项目。

图像

我将在 A 列(设备类型)中输入我的数据,而公式化的单元格将位于 B 列。B 列包含一个以 A 列中的值开头的字符串,并在其后附加一个特定于设备的计数器。

A 列中的不同设备类型可以按任意顺序排列。计数器需要在设备类型内递增。

每当我在 A 列的一行中输入新数据时,B 列的值就会自动创建,并将该设备类型的计数器增加 1。

示例中,列表以两个类型 A 开始,其计数器为001002。四行之后,有更多类型 A,其计数器递增为003004

在这中间,在第 3、4 和 5 行,有类型 B、D 和 C。每个类型都有一个从 开始的计数器001。再往下,有第二种类型 D 和 C,每个类型的计数器都增加 1。然后是第二种和第三种类型 B,这些计数器增加到002003

我如何生成 B 列中的值?

答案1

解决方案图像

B2中的公式:

=IF(ISBLANK(A2),"",A2&"-"&TEXT(COUNTIF($A$2:A2,A2),"000"))

您可以将 B 列公式预填充到任意大范围,并且它将显示一个空白单元格,直到您在 A 列中输入值。

它通过将 A 列值、连字符和计数器附加到一起来构建显示值。格式为“000”的 TEXT 函数根据需要为三位数计数器提供前导零。

COUNTIF 计算从头到当前行中与当前 A 列值匹配的 A 列值。

答案2

如果您的目的是取 A 列数据的最后一个字符,然后添加数字,那么最好的办法是使用如下基本公式:

RIGHT(A1,1)&"-"&TEXT(ROW(),"000")

问题是,如果您不使用 A1,则只需扣除达到 1 的行数作为起始数字。因此,如果您的数据从第 10 行开始,则代码应该是:

RIGHT(A1,1)&"-"&TEXT(ROW()-9,"000")

答案3

重视A1

x-001

B1.然后在B2进入:

=IF(A2="","",IF(LEFT(B1,1)="x","y"&RIGHT(B1,4),"x-"&TEXT(1*(RIGHT(B1,3)+1),"000")))

并向下复制:

在此处输入图片描述

如您所见,列中的前缀将在X后缀将根据需要增加。

相关内容