1
1
この記事誰得? 私しか得しないニッチな技術で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

【Excel】表のナンバリングが崩れにくい!!OFFSET関数を使って保守性の高いファイル作成!

Posted at

概要

皆さんは表とか作る際、左端にナンバーを振ってナンバリングとかしませんか?
IT業界で働いていると、テスト試験書だったり、QA表だったり、照会表だったり・・・
とにかく色々な所で表を作り、ナンバリングを行います。

image.png

上記の様に作った後、行を挿入しないといけない・・・
なんてことありませんが??
私は日常茶飯事です。。。

でも、普通に行挿入しちゃうと、下記の様に前のナンバーが残っていて、再度ナンバリングしないといけなくなり面倒くさいですよね??
image.png

そこで、エクセル関数を使うのですが、

=IF(ISNUMBER(A1),A1+1,1)

を使うと、最初の結果と同じになってしまいした。
image.png

=ROW()-1

を使うと、
image.png
となり、行数で考慮されるため、今までの行が「4」以降に変わり、新企業に改めて「=ROW()-1」を入力すればよいですが、
image.png
の様な歯抜けの番号をナンバリングするのには向きません。。。

ナンバリングはこれで決まり!!

歯抜けも考慮したナンバリング

上記のような悩みを一挙に解決してくれるのが、この式です!!

=MAX(OFFSET(INDIRECT(ADDRESS(1,COLUMN())),0,0,ROW()-1,1))+1

image.png
セルに数式を貼り付けるだけで、ナンバリングしてくれます!!
もちろん行を削除しても、自動で再度ナンバリングしてくれますので、超便利です!!
image.png

歯抜けの場合は「1」に戻したい場合のナンバリング

=N(OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-1,0))+1

image.png
連続した場合のみナンバリングを引き継ぎますので、歯抜けの場合は「1」からにしたい場合はこちらを使用しましょう!!

枝番を割り振りたい時

よく照会表とかQA表を作っていると、「1-1」とか「2-2」とか枝番管理をしたくなる時がありますよね??
↓↓↓こんな風に↓↓↓
image.png

そんな時はこれを使いましょう。

#親番セルの関数
=MAX(OFFSET(INDIRECT(ADDRESS(1,COLUMN())),0,0,ROW()-1,1))+1
#枝番セルの関数
=IF(ISBLANK(INDIRECT(ADDRESS(ROW(),COLUMN()-1))),INDIRECT(ADDRESS(ROW()-1,COLUMN()))+1,IF((INDIRECT(ADDRESS(ROW()-1,COLUMN()-1))<>INDIRECT(ADDRESS(ROW(),COLUMN()-1))),1,IF((INDIRECT(ADDRESS(ROW()-1,COLUMN()-1))=INDIRECT(ADDRESS(ROW(),COLUMN()-1))),INDIRECT(ADDRESS(ROW()-1,COLUMN()))+1,"error")))

※親番の空白や、同じ数値のセルは、セルを空にしたり、リテラルを入力して対応する必要が御座います。

最後に

はい、ということで、今回は連番のナンバリングについて、まとめました。
意外と使用頻度高いと思いますので、良ければ「いいね」やブックマークをお願い致します。

最後になりますが、この記事が皆さんの成長の少しでも手助けになることを祈って、この記事を閉めたいと思います。
最後までお読みいただきありがとうございました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1