=ARRAYFORMULA(row(B6:INDIRECT(“B”&(COUNTA(C6:C)+COUNTBLANK(A1:A5))))–COUNTBLANK(A1:A5))
数式が長い!
1、2と入力してからのドラッグでオート入力の方が早い!
と、言わずに、是非この感動を分かち合いたいのです。あなたと。
ね?
感動でしょう?
しないです、か〜。
【解説】
B列の該当のセルからナンバーを振っていきたい。
それもC列の「機械設備」欄に記入されたところだけ。
しかも、もしかしたら途中でタイトルとリストの間に何か項目を(すなわち1行目〜5行目の間に)増やしたくなるかもで…。
行番号を出す関数row。ナンバリングを始めるセルはB6…
B6からBのいくつまでかの範囲をINDIRECT関数を使って数字を取得してBとくっつける…
ために、COUNTAでC列のC6以下に記入されているセル(空白以外のセル)の数を数える。
その数にC例の「機械設備」セルより上の行数をプラスすると、C6以下に記入された項目の最終行の数となるので…
自力でセルを数えて「+5」としてもいいが、
それだと上の方に行を増やしたときに5で固定されてしまうので、
ここも関数と相対参照で求めたい。
なので、COUNTBLANK関数でA1〜A5を数える。
ちなみにA列を空列にしてあるのは、レイアウト上、キツキツになるのが個人的に嫌だから。空列にしておけば、幅調整だけでレイアウトの融通が利く。必要なかったら幅を極狭にすれば目立たないし。
今回はこの空白セルが利用できた。
(COUNTは数値のみ、COUNTAは空白セル以外なので、C6より上を数えるには空列を数えるとよい。A列でなくてもG列以降でもいい。)
これがINDIRECT関数でBにくっついてrow関数の範囲になる。
row関数は行番号(1番上からの行数)を出すのでナンバリング始めより上の行数分だけマイナスする。その数ももちろんCOUNTBLANK関数で。
で、で、で、いよいよメインイベントのARRAYFORMULA関数で締める!!
ARRAYFORMULA関数はエクセルには無い、googleスプレッドシート独自の関数で、
ひとつのセルに入れるだけで、該当のセルに自動的に数式を反映させた数字を配列してくれる、頭では理解しがたい、でも成功すると興奮する関数です。
そう、興奮しちゃって、バレンタインにクズ野菜炒め。
でした。
(間違ってたらすいません。)
(もっと簡単な式あるかも?)
【追記】もっと簡単な数式を教えていただきました!!2020年6月17日
googleスプレッドシートで、直しに強い連番を振ってみろ。それも、ひとつのセルに数式をいれるだけで、だ。~最新版~SEQUENCE関数で超簡単だと教えていただきました。
ピンバック: 一年間のまとめ~ブログ開設から一周年の集計結果発表 | Shoeisilk Factory Report prepared by Sakurai
ピンバック: シンプルなアレイフォーミュラの使い方~何千行もドラッグしなくていいんだよ | Shoeisilk Factory Report prepared by Sakurai
これで同じことできますよ
=sequence(counta(c6:c))
いいねいいね: 1人
コメント頂きありがとうございます。
これすごいです!
こんな関数があったんですね!
ありがとうございます!
自分がわざわざ回りくどい考え方をしていたようで、この関数でスッキリしました!!
いいねいいね
ピンバック: googleスプレッドシートで、直しに強い連番を振ってみろ。それも、ひとつのセルに数式をいれるだけで、だ。~最新版~SEQUENCE関数で超簡単だと教えていただきました。 | 松栄シルク工場報