2013-09-25 178 views
0

我有两列数据:HOWTO为每个唯一行添加一个唯一的ID?

a 1 
a 1 
a 2 
b 3 
b 4 

在列表中有4个独特的行。我想为每个唯一的行添加一个唯一的ID。 像这样:

1 a 1 
1 a 1 
2 a 2 
3 b 3 
4 b 4 

当然,我有更多的行和列和日期比这个例子中更复杂。

无论如何要做到这一点,我擅长? MVH Kresten布赫

+1

您是否需要对数据进行排序或移动它? ID是否需要永久保留该行? – bushell

回答

1

假设你的数据在B2:C6请尝试在A2 =IF(AND(B1=B2,C1=C2),A1,A1+1),抄下来

+0

这只适用于数据排序正确的情况吗? – bushell

+0

@bushell'Fraid so - 在两栏上(例如!) – pnuts

1

如果您的数据没有排序,它更复杂... ...但你可以使用这样的事情在A2 :

=IF(COUNTIFS($B$1:B2,B2,$C$1:C2,C2)>1,INDEX($A$1:A1,IFERROR(MATCH(B2&"-"&C2,$B$1:B1&"-"&$C$1:C1,0),1)),MAX($A$1:A1)+1) 

我假设没有头和你已经把1在单元格A1的第一条记录。

它基本上检查公式上方的整列,如果已经有类似的记录,它会分配先前给定的唯一ID,如果不是,它会给出一个新的ID。

这是一个数组的功能,因此将工作,如果你使用按Ctrl ++输入不单独输入

IFERROR()是否存在,是因为MATCH(B2&"-"&C2,$B$1:B1&"-"&$C$1:C1,0)会在第2行(要检查的第一条记录)时返回错误。

一旦你把它放在第一个单元格中,你可以填写公式。

+1

相当痛苦的索引方式,但无疑有用+1。 – pnuts

+0

这可能是值得分开隐藏的列。一列要计算它出现了多少次,另一列要在每次遇到1时打勾。 – bushell

2

我有同样的问题,我已经制定了三个公式的方法。我可以连接它,如果我嵌套它们,但无论如何,这个工作。

假设您想要'数'的数据在列A中,并且该表的第一行是第3行。 第一列(在列B中)计算'值'的出现次数,范围从随着表的增长,表的顶端向下: = COUNTIF($ A $ 3:A3,A3)

第二列的公式也随着行数的增加而扩展,并且每次将事务计数加1 (B3 = 1,MAX($ C $ 2:C2)+1,“”) 即使在第一列中,我也能找到这个工作表(即第一次出现一个新的唯一值) =表btw - 我期待着不得不手动输入1来启动列表。让它在没有手动输入的情况下工作是件好事,这意味着即使您将表格数据转换为不同的顺序,formmulas也能正常工作。

D列中的第三个使用vlookup来查找值。请注意,当vlookup找到多个数字时,它总是拉出第一个数字。 = VLOOKUP(A3,$ A $ 3:C3,3,FALSE)

请注意,如果您确实要求整个事情,则会动态重新编号所有数据结果。即公式都可以工作,但是指派给一组特定数据的数字可能会不同,因为它可以从项目列表中的任何顺序起作用。

这些公式的用例假定每个月我将一组新数据粘贴到表格的底部,其中一些项目是前几个月的重复项目 - 即已在表格中,其中一些是新的。

如果动态重新编号是一个问题,请使用“行键”,以便您可以在最后恢复原始顺序。

相关问题