Excel - 检查两列的值是否在列表中是新的并为它们分配新的 ID

Excel - Check if Value of Two Columns are new in a List and Assing a new ID to them

早上好,

我正在尝试在 Excel 中制定一些内容,使我们能够检查列表中两列的值是否是新的,如果是,则为它们分配一个新的 ID。如果不是,让它“空白”或分配之前分配的相同ID任何一种方法都适合我)。

我正在尝试将某些东西与 Count.if 一起使用,但它不适合。由于我考虑了一段时间,我决定寻求帮助。

我想做的是求解下面“公式”列的公式:

Space|Name|*Formula*
  1  | AB |  1
  1  | AB |  1
  1  | AB |  1
  1  | CA |  2
  2  | DD |  3
  2  | EE |  4
  2  | EE |  4
  3  | SS |  5
  3  | SS |  5
  1  | ZZ |  6
  1  | AB |  1

如果您不介意 non-sequential 编号,您可以 return 找到的第一个匹配项的索引作为您的标识符:

Copy into C2, then fill down as necessary. The match row stop may need alteration based on how much data you have

=MATCH(A2&"#"&B2, A:A0&"#"&B:B0,0)

或者作为数组公式(只需要放在C2);

=MATCH(A2:A11&"#"&B2:B11, A2:A11&"#"&B2:B11,0)

数据组的顺序编号

在单元格C2中使用下面的数组公式(Ctrl,Shift+Enter):

=IF(COUNTIFS(A:A2,A2,B:B2,B2)=1,MAX(C:C1)+1,
INDEX(C:C1,MATCH(1,(A:A1=A2)*(B:B1=B2),0)))

然后从 C3 复制 C2 并粘贴到最后一个单元格。

如果您对仅对第一次出现的事件进行编号感到满意,请使用以下公式:

=IF(COUNTIFS(A:A2,A2,B:B2,B2)=1,MAX(C:C1)+1,"")

两种解决方案都使用 headers 即 headers 不能是数字。