2016-11-14 59 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