Google 工作表 - 如何计算一列上的非零数字条纹
Google Sheets - How to count streaks of non-zero numbers on one column
我有一个包含各种数字的字数列,但每个单元格都有一个公式。所以我只想计算具有非零数字的单元格并在它达到零时停止。换句话说,连续上垒。
100
200
400
100
200
0
200
300
0
本例中最长的连胜是 5。我可以用什么公式来计算?我已经试过了,但它正在寻找空白单元格而不是带有“0”的单元格
=ArrayFormula(match(TRUE,ISBLANK('Daily Count'!B2:B),0)-1)
尝试:
=ARRAYFORMULA(MMULT(SPLIT(FLATTEN(SPLIT(TRIM(QUERY(A1:A,,9^9)), " 0 ", )), " ")*1,
SEQUENCE(COLUMNS(SPLIT(FLATTEN(SPLIT(TRIM(QUERY(A1:A,,9^9)), " 0 ", )), " ")), 1, 1, )))
最长罢工时间:
=INDEX(COLUMNS(SPLIT(FLATTEN(SPLIT(TRIM(QUERY(A1:A,,9^9)), " 0 ", )), " ")))
列出所有警示:
=ARRAYFORMULA(LEN(QUERY(SUBSTITUTE(FLATTEN(SPLIT(TRIM(QUERY(
IF(A1:A<>0, 1, 0),,9^9))&" ", " 0 ", )), " ", ), "where Col1 <> '0'")))
经典方法(同样的方法适用于Excel)是使用频率:
=ArrayFormula(max(frequency(if(B2:B>0,row(B2:B)),if(B2:B<=0,row(B2:B)))))
我有一个包含各种数字的字数列,但每个单元格都有一个公式。所以我只想计算具有非零数字的单元格并在它达到零时停止。换句话说,连续上垒。
100
200
400
100
200
0
200
300
0
本例中最长的连胜是 5。我可以用什么公式来计算?我已经试过了,但它正在寻找空白单元格而不是带有“0”的单元格
=ArrayFormula(match(TRUE,ISBLANK('Daily Count'!B2:B),0)-1)
尝试:
=ARRAYFORMULA(MMULT(SPLIT(FLATTEN(SPLIT(TRIM(QUERY(A1:A,,9^9)), " 0 ", )), " ")*1,
SEQUENCE(COLUMNS(SPLIT(FLATTEN(SPLIT(TRIM(QUERY(A1:A,,9^9)), " 0 ", )), " ")), 1, 1, )))
最长罢工时间:
=INDEX(COLUMNS(SPLIT(FLATTEN(SPLIT(TRIM(QUERY(A1:A,,9^9)), " 0 ", )), " ")))
列出所有警示:
=ARRAYFORMULA(LEN(QUERY(SUBSTITUTE(FLATTEN(SPLIT(TRIM(QUERY(
IF(A1:A<>0, 1, 0),,9^9))&" ", " 0 ", )), " ", ), "where Col1 <> '0'")))
经典方法(同样的方法适用于Excel)是使用频率:
=ArrayFormula(max(frequency(if(B2:B>0,row(B2:B)),if(B2:B<=0,row(B2:B)))))