やってみて「あれ?」と思ったので記事にすることにしました。画像のように空白行で区切られたデータの横に連番を振りたい時、
先頭が必ず空白行で、範囲に予め数式を入れておけばいいのなら
=IF(A1="","",SUM(INDEX(B:B,ROW()-1),1))
数式を下方向にコピー
これでいいです。ただオートフィルコピーではなく、スピルで表現した場合はどうでしょうか。試しにやってみたら……「#VALUE!」エラーが出てしましました。
失敗例=SCAN( "", TAKE(A:A,XMATCH("*?",A:A,2,-1)), LAMBDA(x,y,IF(y="","",SUM(x,1))) )
原因を調べてみると、「SUM(x,1)」で初期値の「""」が数値化されていないことが分かりました。なんででしょうね。
「=SUM(A1,1)」とした時は、「A1」に文字列が入っていてもちゃんと「1」と答えを返します。疑問に思いつつも、「SUM(x,1)」を「SUM(0&x,1)」としたら上手くいきました。
因みに Googleスプレッドシートの場合はこれでもダメで、ちゃんと数値化の演算を入れる必要があります。
横着するなという話ではあるんですが、通常と違う仕様になっていると若干とまどうものがあります。