2013-09-25 173 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)

請注意,如果您確實要求整個事情,則會動態重新編號所有數據結果。即公式都可以工作,但是指派給一組特定數據的數字可能會不同,因爲它可以從項目列表中的任何順序起作用。

這些公式的用例假定每個月我將一組新數據粘貼到表格的底部,其中一些項目是前幾個月的重複項目 - 即已在表格中,其中一些是新的。

如果動態重新編號是一個問題,請使用「行鍵」,以便您可以在最後恢復原始順序。

相關問題