Excel 自动递增ID号(用于排序)

Excel 自动递增ID号(用于排序),excel,excel-formula,Excel,Excel Formula,早上好 我正在构造一个表,我想为每个条目分配一个唯一的ID号,当新值输入到表中时,该ID号会自动递增。下面是一个示例表,可以直观地显示: +----+------------+-----------+ | ID | First Name | Last Name | +----+------------+-----------+ | 1 | John | Smith | | 2 | Steve | Wozniak | | 3 | Steve | J

早上好

我正在构造一个表,我想为每个条目分配一个唯一的ID号,当新值输入到表中时,该ID号会自动递增。下面是一个示例表,可以直观地显示:

+----+------------+-----------+
| ID | First Name | Last Name |
+----+------------+-----------+
|  1 | John       | Smith     |
|  2 | Steve      | Wozniak   |
|  3 | Steve      | Jobs      |
+----+------------+-----------+
在上表中,如果输入第四个人,我希望自动生成ID(在本例中为4)。我尝试过一种细胞内配方,例如:

=Row([@ID])-1

在对表进行排序之前,这种方法一直有效,在这种情况下,ID号都会被打乱。我想计算行号应该是多少,但要保持该值不变。有什么想法吗?

如果您想要一个静态增量键,您应该在输出工作表中使用这样的代码

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 2 Then
    Target.Offset(0, -1).Value = Target.Row - 1
End If

End Sub

如果您只需要一个唯一的键,而该键并没有在前一个键的基础上实际递增,那么可以在A2单元格中使用类似于
=SUM(code(MID(B2&C2,ROW(INDIRECT(“1:”&LEN(B2&C2))),1))
的公式(用CSE结束)并下拉。但是,如果公式扩展太多,则会影响工作表的性能。

需要vba为插入指定新的编号,以便该值保持静态。公式是活动的,在排序时不会保留值。我想可能是这样的。谢谢你的快速回复!根据上下文的不同,您可以使用MS access表来存储数据,它有一个自动编号数据类型,它还有一个额外的优点,即删除分配的ID时不会重复使用(在VBA中,这可能需要一些努力)。还可以从Excel创建到表的连接。