【问题标题】:Unique identifier for each line - excel每行的唯一标识符 - excel
【发布时间】:2018-07-10 21:22:19
【问题描述】:

我在 excel 中有一个文件。对于每一行,我必须创建一个唯一标识符。它必须永久创建。例如,问题是:我在计算机 A 和 B 上有相同的文件。我在每个文件中填写相同的行。但是这些行的标识符应该不同。请帮我。如果你知道怎么做,请给我一个宏或公式的例子

【问题讨论】:

  • 你为什么不简单地在文件 A 中添加一个带有 ID 的计数器,例如 A001,然后是 A002 等……并对另一个文件做同样的事情,但不是以 A 为前缀,而是前缀与 B,所以它将是 B001、B002 等...
  • 它必须是自动化的。这个文件会被很多不合作的人填写。他们不知道其他人会输入什么,所以他们不知道是使用前缀 A 还是 B 等

标签: excel excel-formula excel-2007 vba


【解决方案1】:

试试这个。

=CONCATENATE(DEC2HEX(RANDBETWEEN(0,4294967295),8),"-",DEC2HEX(RANDBETWEEN(0,65535),4),"-",DEC2HEX(RANDBETWEEN(16384,20479),4),"-",DEC2HEX(RANDBETWEEN(32768,49151),4),"-",DEC2HEX(RANDBETWEEN(0,65535),4),DEC2HEX(RANDBETWEEN(0,4294967295),8))

这是How can I generate GUIDs in Excel? 的副本,其中分号替换为逗号。您正在寻找的是全局唯一标识符或 GUID。如果您搜索 excel 和 GUID,您可以获得更多选择。

如果您希望能够从中获取行和/或列的引用,以便比较两个文件,您可以追加

& "-" & ROW()&COLUMN() 

到上面的结尾。这将有效地为您提供被引用的行和列的地址。

【讨论】:

    【解决方案2】:

    不是最优雅的做事方式,但我相信这在一定程度上回答了您的问题。

    如果您可以确保两个文件都启用了宏,则用户不需要知道如何为它们添加前缀,只需使用类似下面的方法将 ID 添加到您想要的任何列中,因为新数据输入到 B 列中在下面的示例中:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ws As Worksheet: Set ws = Sheets("Sheet1")
    'declare and set your worksheet, amend as required
    LastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
    'get the last row with data on Column A
    If Target.Address = "$B$" & LastRow Then
        For i = 2 To LastRow
            ws.Cells(i, 1).Value = "A" & Format(i, "000")
        Next i
    End If
    End Sub
    

    在另一个文件中做同样的事情,只需将“A”更改为“B”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-30
      • 2016-08-05
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-08
      相关资源
      最近更新 更多