googleスプレッドシートで、直しに強い連番を振ってみろ。それも、ひとつのセルに数式をいれるだけで、だ。

gs_renban1.jpg

=ARRAYFORMULA(row(B6:INDIRECT(“B”&(COUNTA(C6:C)+COUNTBLANK(A1:A5))))COUNTBLANK(A1:A5))

数式が長い!

1、2と入力してからのドラッグでオート入力の方が早い!

と、言わずに、是非この感動を分かち合いたいのです。あなたと。

 

GS_renban2

 

ね?

感動でしょう?

 

しないです、か〜。

 

 

【解説】

 

B列の該当のセルからナンバーを振っていきたい。

それもC列の「機械設備」欄に記入されたところだけ。

しかも、もしかしたら途中でタイトルとリストの間に何か項目を(すなわち1行目〜5行目の間に)増やしたくなるかもで…。

 

 

行番号を出す関数row。ナンバリングを始めるセルはB6…

 

B6からBのいくつまでかの範囲をINDIRECT関数を使って数字を取得してBとくっつける…

 

ために、COUNTACのC6以下に記入されているセル(空白以外のセル)の数を数える。

 

その数にC例の「機械設備」セルより上の行数をプラスすると、C6以下に記入された項目の最終行の数となるので…

 

自力でセルを数えて「+5」としてもいいが、

それだと上の方に行を増やしたときに5で固定されてしまうので、

ここも関数と相対参照で求めたい。

 

なので、COUNTBLANK関数でA1〜A5を数える。

ちなみにA列を空列にしてあるのは、レイアウト上、キツキツになるのが個人的に嫌だから。空列にしておけば、幅調整だけでレイアウトの融通が利く。必要なかったら幅を極狭にすれば目立たないし。

 

今回はこの空白セルが利用できた。

(COUNTは数値のみ、COUNTAは空白セル以外なので、C6より上を数えるには空列を数えるとよい。A列でなくてもG列以降でもいい。)

 

これがINDIRECT関数でBにくっついてrow関数の範囲になる。

row関数は行番号(1番上からの行数)を出すのでナンバリング始めより上の行数分だけマイナスする。その数ももちろんCOUNTBLANK関数で。

 

 

で、で、で、いよいよメインイベントのARRAYFORMULA関数で締める!!

ARRAYFORMULA関数はエクセルには無い、googleスプレッドシート独自の関数で、

ひとつのセルに入れるだけで、該当のセルに自動的に数式を反映させた数字を配列してくれる、頭では理解しがたい、でも成功すると興奮する関数です。

 

 

そう、興奮しちゃって、バレンタインにクズ野菜炒め。

でした。

(間違ってたらすいません。)

(もっと簡単な式あるかも?)

googleスプレッドシートで、直しに強い連番を振ってみろ。それも、ひとつのセルに数式をいれるだけで、だ。」への5件のフィードバック

  1. ピンバック: 一年間のまとめ~ブログ開設から一周年の集計結果発表 | Shoeisilk Factory Report prepared by Sakurai

  2. ピンバック: シンプルなアレイフォーミュラの使い方~何千行もドラッグしなくていいんだよ | Shoeisilk Factory Report prepared by Sakurai

  3. コメント頂きありがとうございます。
    これすごいです!
    こんな関数があったんですね!
    ありがとうございます!
    自分がわざわざ回りくどい考え方をしていたようで、この関数でスッキリしました!!

    いいね

  4. ピンバック: googleスプレッドシートで、直しに強い連番を振ってみろ。それも、ひとつのセルに数式をいれるだけで、だ。~最新版~SEQUENCE関数で超簡単だと教えていただきました。 | 松栄シルク工場報

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中