我想计算列中是否有 N 个具有特定值的后续元素(在本例中为 1)。因此,对于下面的示例,它应该为 A 返回 true,而为 B 返回 false。应忽略空单元格。
A B
+---+---+
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |
| | |
| 1 | 2 |
| | 1 |
+---+---+
| Y | N | <-- RESULT
+---+---+
理想情况下,如果我可以标记所有这 4 个或更多后续单元格。
答案 0 :(得分:3)
也看看这个——你需要把它拉到 B、C 列等处。
=ArrayFormula(max(frequency(if(filter(A:A,A:A<>"")=1,sequence(count(A:A)),""),if(filter(A:A,A:A<>"")<>1,sequence(count(A:A)),"")))>=4)
那么这是如何工作的呢?一直追溯到@Barry Houdini,据我所知,他是第一个发布 this elegant method 以在 Excel 范围内查找重复值的最长序列的人。
它使用频率。频率计算落在由切割点定义的一系列 bin 内的值的数量
Frequency(<Values>,<Cut points>)
因此,如果您的切点是 10、20、30,而您的值是 12、15、25、35、36、37,您会期望计数为 2,1 和 3。
@Barry 的洞察力是意识到,如果您将不想计算的值的行号设为切割点和所做的值的行号 em> 想要计数(在本例中为 1)是值,那么您可以使用频率来计算感兴趣的连续值的数量。这导致他使用这个公式(在他的例子中寻找以 1 为界的连续零):
=MAX(FREQUENCY(IF((A2:A100=0)*(A2:A100<>""),ROW(A2:A100)),IF(A2:A100=1,ROW(A2:A100))))
这很容易适应目前的情况,只需将 0 改为 1,将 1 改为 <>1,过滤掉空白并使用 Sequence 而不是行号。
答案 1 :(得分:0)