【Excel】数式で簡単に枝番を振る方法

Excel表の中に数字で連番を振る際、グループやカテゴリで枝番を設けたい場合があります。数が多くなければ手作業で一つ一つ入力していくのも有りですが、ケアレスミスを防ぐ目的でも数式で簡単に入力できると便利です。

完成イメージ

サンプルとして、各都道府県の地方区分別に枝番を振ることとしています。

枝番を振る方法

関数の組み合わせ次第では様々な方法で実現可能です。

IF関数

地方区分が一つ上の行と一緒のであれば上の行+1した値を枝番とし、一つ上の行と異なる場合は1を振りなおしています。条件付き書式で表内のデータを塗り分ける際によく使う数式です。

COUNTIF関数 × INDIRECT関数

INDIRECT関数は「セルの参照を文字列で指定することが出来る関数」になります。セルの参照というとやや分かりにくいので以下例を参照ください。

C3セルに入力した数式は「=INDIRECT(A1)」となっています。INDIRECT関数は指定されたA1セルを見に行きますが、A1セルに入力された「"A3"」という文字列をセル番地として扱うため、最終的な数式の結果としてはA3セルの値「あいうえお」が表示されています。

最終的に表示される「A3に入力された値」を変更すると、元のINDIRECT関数の数式はそのままに結果のみを差し替えることが可能です。これだけではやや伝わりにくい部分があるので続けます。

INDIRECT関数は引数の文字列をセル番地と読み替えることが出来るため、カッコ内に"A1"と入力すればA1セルの値を読みにくことが出来ます。

上記では「"A" & 2*2」 →「"A4"」という文字列がINDIRECT関数のカッコ内に含まれており、最終的にA4セルの"たちつてと"が表示されています。どんなやり方をしてもExcel上で存在するセル番地をINDIRECT関数に渡してあげればセル番地指定で値を引っ張ってくることが出来るのが特徴です。

話を戻しますが、サンプル数式内のINDIRECT関数では、"D3:D"にROW関数を用いた現在行を付与することで範囲を開始行~現在行までに絞り込んでいます。

INDIRECT関数に動的な範囲を指定することで、現在行までの範囲における数の合計を表示することが出来ます。

ROW関数 × MATCH関数

Excelの現在行から「地方区分が最初に出現する表内の行番号」をマイナスしています。上記例では「D2:D48」の範囲で最初に"東北地方"がヒットするのはD3セルとなり表内では2番目となります。現在のExcel行番号「3」に対しMATCH関数の結果「2」をマイナスすることで最終的に「1」が表示されます。完全に整列された表でなければ使用できませんが、動くことは動くということでご紹介でした。

当サイトで使用しているWPテーマ

<初心者でも簡単に利用することが可能な高品質高機能ワードプレステーマ>

品質・機能共に非常にハイスペックなWordPressテーマでありながら、HTMLやCSSといった知識が無くとも画面操作のみで美しいデザインのブログを簡単に構築することが可能となっています。カスタマイズ性に富んでいる為、同じテーマを使っているサイトと似たようなデザインにもなりにくく、オリジナリティ溢れるサイトデザインを作り上げる事が出来ます。

デザインのみならず、Googleの規約に準拠したSEO対策、無期限・無制限で利用可能なメールサポート、継続的な機能追加(バージョンアップ)等々、サイト構築・運営にひとしきり必要なサポートが非常に手厚いのも特徴です。

また、Diver開発にはアフィリエイトプログラムの開発に携わっていた技術者が思考をこらした工夫が盛り込まれており、収益化を目指すブログに最適なテーマとなっています。更に一度購入すれば自身が所有する複数サイトに追加料金なしで適用できるというお値打ち仕様も魅力の一つとなっています。

Twitterでフォローしよう

おすすめの記事