Excel公式:计算列表中的重复因子(Vlookup /间接帮助)

时间:2017-02-16 14:42:58

标签: excel excel-formula formula

道歉令人困惑的标题;我会在这里更清楚,更详细地解释我的问题。

所以我有一个包含重复模式的布尔列表,我试图计算它重复的因素。该列表在开始循环之前始终以未知数量的FALSE值开始,并且始终以TRUE结尾,后跟未知但大量的FALSE值。

示例列表:

  1. FALSE
  2. FALSE
  3. TRUE
  4. FALSE
  5. FALSE
  6. FALSE
  7. TRUE
  8. FALSE
  9. FALSE
  10. FALSE
  11. TRUE
  12. FALSE
  13. FALSE
  14. FALSE
  15. FALSE
  16. FALSE
  17. FALSE
  18. 在这种情况下,我想要的重复因子是4,因为模式每4行重复一次(不包括列表的开头和结尾)。

    我尝试了几种编写公式的方法来得出4作为答案,包括使用计数,一些简单的vlookup和一个偏移尝试。到目前为止,我一直无法获得有效的配方。我的猜测是间接功能可能在这里使用,但我还没有能够围绕使用它的逻辑。

    就一般策略而言,我猜测如果我能找到第一个和第二个TRUE值的行的索引,我可以简单地减去它们以找到重复因子。 (我可以轻松地在我的电子表格中实现行号或单元格引用列,如果这样做也会有所帮助。)

    提前感谢任何见解!

2 个答案:

答案 0 :(得分:3)

试试这个公式:

=AGGREGATE(15,6,ROW($A$1:$A$17)/($A$1:$A$17),2)-MATCH(TRUE,$A$1:$A$17,0)

MATCH找到存在TRUE的第一行。

AGGREGATE的工作方式与SMALL(IF())函数类似。当单元格为FALSE时,它将返回除以0的错误,函数中的6将忽略错误。因此,AGGREGATE将拉出第二个最低行数的数组位于单元格为TRUE的那些行上。

enter image description here

修改

这是一个非数组公式,也基于@GaryStudents回答:

=MATCH(TRUE,INDEX(A:A,MATCH(TRUE,A:A,0)+1):A1040000,0)

enter image description here

答案 1 :(得分:2)

获取连续两次 TRUE 之间的“距离”:

C1 中输入:

=MATCH("TRUE",A:A,0)

并在 C2

=MATCH("TRUE",INDIRECT("A" & C1+1 & ":A9999"),0)+C1

最后在 C3

=C2-C1

enter image description here