我要检查一个数组/行,
忽略非空白单元格(设置为""
),
将空单元格从0编号为n,
如果找到下一个非空白单元格,则将数字重置为0。
在最后一个单元格停止
所以,它看起来像这样:
A B
0 APPLE
1 0
2 1
3 BANANA
4 0
5 1
6 2
7 CHERRY
8 DURIAN
9 0
10 EGG
A 是原始功能, B 是要应用的功能。
答案 0 :(得分:1)
=ARRAYFORMULA(TEXT(ROW(A1:A11)-MATCH(ROW(A1:A11),IF(A1:A11<>"",ROW(A1:A11),),1)-1,"[<0];0"))
IF
将所有非空白行更改为其对应的行号1,,,4,,,,...
MATCH
可以使用近似匹配1,1,1,4,4,4,4,...
-1,0,1,-1,0,1,2,3,...
TEXT
将所有负数更改为“” 答案 1 :(得分:0)
=ARRAYFORMULA(IF(INDIRECT("A2:A"&MAX(IF(A:A<>"", ROW(A:A), )))="",
MMULT(N(ROW(A2:A)>=TRANSPOSE(ROW(A2:A))), N(A2:A=""))-
HLOOKUP(0, MMULT(N(ROW(A2:A)>TRANSPOSE(ROW(A2:A))), N(A2:A="")), MATCH(
VLOOKUP(ROW(A2:A), IF(N(A2:A<>A1:A), ROW(A2:A), ), 1, 1),
VLOOKUP(ROW(A2:A), IF(N(A2:A<>A1:A), ROW(A2:A), ), 1, 1), 0), 0)-1, ))