2016-11-14 64 views
0

我有這樣的Excel表格例如:重複,每塊

 A B C D 
-------------- 
1 | 1 a 1 x 
2 | b 1 
3 | c 2 
4 | a 3 x 
5 | 2 r 4 x 
6 | r 4 x 
7 | t 1 
8 |  4 
9 | 3 a 1 
10| b 3 x 
11| c 3 
12| b 6 x 

我需要找到重複的(標有在列d x)的每一個每一個塊,但只有在它自己的塊的情況下(一塊是在A1和A4之間找到的 - 對於1,另一個塊從A5到A8 - 對於2,等等)。 B1 = a因爲B9屬於塊3而B1屬於塊1,所以它不是重複的。但是B1對於B4是重複的,它們在同一個塊上,因此B1和B4都應該用x標記。

我與動態測距/組合物鬥爭:

基本上我需要在列d到找到範圍(開始用甲起來d第一不爲空場的位置,和第一不在A下空場)。例如:在D4中,我需要首先在A中得到非空,A1中的第一個非空,並且A中的第一個非空是A5,並將範圍構造爲A1:A5-1。

+0

除非你不介意一個輔助列,這將需要一個數組公式。你可以用輔助列還是你想要數組公式? –

+0

我不介意,兩種方式都很好。我嘗試了範圍,但我沒有任何好的解決方案。 – danielpopa

回答

3

使用輔助柱,以避免數組公式的需要:

在D2的說:

=IF(A2="",D1,A2) 

將在缺少列中的值填寫:

enter image description here

然後在E2中:

=IF(COUNTIFS(D:D,D2,B:B,B2)>1,"x","") 

enter image description here


如果你想在數組公式:

=IF(COUNTIF(INDEX(B:B,AGGREGATE(14,6,ROW($A$1:INDEX(A:A,ROW()))/($A$1:INDEX(A:A,ROW())<>""),1)):INDEX(B:B,IFERROR(AGGREGATE(15,6,ROW(INDEX(A:A,ROW()+1):INDEX(A:A,MATCH("zzz",B:B)))/(INDEX(A:A,ROW()+1):INDEX(A:A,MATCH("zzz",B:B))<>""),1)-1,MATCH("zzz",B:B))),B2)>1,"x","") 

enter image description here

+0

謝謝!我明白你做了什麼。現在我知道功夫:P – danielpopa