【问题标题】:Excel - How to count streaks of non-zero numbers on one columnExcel - 如何计算一列上非零数字的条纹
【发布时间】:2022-03-04 23:12:21
【问题描述】:

我有一个包含各种数字的字数列,但每个单元格都有一个公式。所以我想只计算具有非零数字的单元格,并在它达到零时停止。换句话说,连胜。

Daily session count
100
200
400
100
200
=IF(C9<>"",SUM(C9-C8),"")
200
300
=IF(C9<>"",SUM(C9-C8),"")
=IF(C9<>"",SUM(C9-C8),"")
=IF(C9<>"",SUM(C9-C8),"")
=IF(C9<>"",SUM(C9-C8),"")

本例中最长的连击数为 5。我可以使用什么公式?我将它用于 Google 表格,但我需要它才能用于 EXCEL。

=INDEX(COLUMNS(SPLIT(FLATTEN(SPLIT(TRIM(QUERY('Daily Count'!B2:B,,9^9)), " 0 ", )), " ")))

编辑:因此,带有 0 的单元格实际上有一个公式(意味着它们不是空的),但是它们仅在使用每日字数更新相邻单元格时才会填充,因此每日会话计数也会更新。

如果我错过了一天的写作,我仍然会添加每日字数,这意味着每日会话数为“0”。同样,我正在寻找的是计算一列中的单元格,作为大于 0 的最长整数条纹。谢谢:)

【问题讨论】:

标签: excel excel-formula


【解决方案1】:

使用 ms365,尝试:

B1中的公式:

=MAX(SCAN(0,A1:A9,LAMBDA(a,b,(a+(b<>0))*(b<>0))))

或者,LET() 嵌套:

=MAX(SCAN(0,A1:A9,LAMBDA(a,b,LET(x,b<>0,(a+x)*x))))

【讨论】:

  • 所以这行得通,但我在单元格中有公式,所以它正在计算那些。我需要它来只计算其中包含数值的单元格。
  • @Kinglouie,你能用更好的样本数据集更新你的问题吗?
  • 已更新。谢谢
  • 嘿@JvdV 你有机会更新你的答案吗?感谢您花时间帮助我。
【解决方案2】:

=MAX(FREQUENCY(IF(A1:A9,ROW(A1:A9)),IF(A1:A9=0,ROW(A1:A9))))

【讨论】:

    【解决方案3】:

    你可以在excel中试试这个:

    =MAX(FREQUENCY(IF(A1:A9<>0,ROW(A1:A9)),IF(A1:A9=0,ROW(A1:A9))))
    

    这是一个数组公式,所以请按Ctrl+Shift+Enter

    A1:A9 被假定为您的范围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-24
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多