2017-09-25 37 views
1

我的數據是這樣的非空行的計數:用10k行和26分東西列]EXCEL - 通過獨特的列值

FID Year I1 I2 I3 I4 I5 
1 2009 a b c  
1 2010 a d e g 
1 2011 g f h  
1 2011 h f j i k 
1 2013 h t g k m 
1 2014 a b c d 
1 2014 e d f c l 
1 2014 h i j k d 
1 2014 a b d  

我想的唯一「我對每年數。這樣的輸出:

FID Year Count(Unique) 
1 2009 3 
1 2010 4 
1 2011 6 
1 2013 5 
1 2014 11 

我已經試過至今:

  • 我想這=COUNTIF("$C2:$G2,"*"),然後求和同年。直到我意識到'我正在重複。
  • 然後我嘗試連接所有我的同一年。失敗。
  • 然後我試着將數據轉換成以[FID + Year]作爲關鍵字的長格式。這樣我可以刪除重複項。但由於'沒有足夠的記憶'來執行任務而失敗。

任何幫助將不勝感激如何解決這個問題。謝謝。

回答

0

這是您需要下式:

=SUM(IF(COUNTIF(A1:E1;A1:E1)=1;1;0)) 

它是一種陣列式,從而需要Ctrl鍵 + + 輸入來執行它。

如果你的值是數字,它會更容易。像這樣:

=SUM(IF(FREQUENCY(A1:E1,A1:E1)>0,1)) 

這不是一個數組公式。

+0

對不起,我無法理解你的答案。 1)應該有','而不是';'對嗎? 2)'COUNTIF'中的'range'是什麼?我假設它是'C2:G2'。正確? 3)在標準中有一個範圍是什麼意思? 4)公式如何考慮年份和FID。 5)我也得到不正確的輸出。 – urwaCFC

+0

@urwaCFC - 它不需要輸入年份,但它只是計算給定範圍內的唯一值。因此範圍應該是相同的。嘗試一下。 – Vityata

0

我想出了這個給你,這裏是結果的截圖:

這裏是公式,你可以從cell K2嘗試拖下來:

=IFERROR(SUMPRODUCT((OFFSET($C$1,MATCH(J2,$B$2:$B$10,0),0,COUNTIF($B$2:$B$10,B2),5)<>"")/COUNTIF(OFFSET($C$1,MATCH(J2,$B$2:$B$10,0),0,COUNTIF($B$2:$B$10,B2),5),OFFSET($C$1,MATCH(J2,$B$2:$B$10,0),0,COUNTIF($B$2:$B$10,B2),5)&"")),0) 

說明:

這是做什麼用這兩個基本的f ormulas。

=SUMPRODUCT((range<>"")/COUNTIF(range,range&"")),這是找到一個獨特的範圍和值也忽略空白

=OFFSET(reference,rows,cols,height,width),這是找到你要評估

希望這能解決你的問題的範圍。