我有这个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 = a的重复,因为B9属于块3而B1属于块1.但B1是B4的副本,它们在同一块上,因此B1和B4都应该标有x。
我在动态测距/组合方面遇到了困难:
基本上我需要在D列中找到范围(从A中的位置开始,首先不是A中的空字段,首先不是A中的空字段) 。例如:在D4中我需要在A中第一个非空是A1,在A中第一个非空是A5,并将范围构造为A1:A5-1。
答案 0 :(得分:3)
使用辅助列来避免使用数组公式:
在d2中:
=IF(A2="",D1,A2)
这将填写缺失的A列值:
然后在E2:
=IF(COUNTIFS(D:D,D2,B:B,B2)>1,"x","")
如果你想要数组公式:
=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","")