Quantcast
Channel: なんでもエクセル(Nandemo Excel)
Viewing all articles
Browse latest Browse all 45

数式/関数:空白行で仕切って連番を入れる

$
0
0

やってみて「あれ?」と思ったので記事にすることにしました。画像のように空白行で区切られたデータの横に連番を振りたい時、

先頭が必ず空白行で、範囲に予め数式を入れておけばいいのなら

=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スプレッドシートの場合はこれでもダメで、ちゃんと数値化の演算を入れる必要があります。

Googleスプレッドシートの場合

=SCAN(     "",     A1:A,     LAMBDA(x,y,IF(y="",,SUM(--(0&x),1))) )

横着するなという話ではあるんですが、通常と違う仕様になっていると若干とまどうものがあります。


Viewing all articles
Browse latest Browse all 45

Trending Articles