小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2024年7月26日【ID:0】

メンバー限定

【Excel】条件を満たしたセルに連番を入力


以下の表の「作業内容」の項目に値を入力すると同時に「No」の項目に連番を表示する方法について解説していきます。


まずは準備段階として、「No」の項目の先頭に「1」のみを入力します。
次に、セルB6以降に「No」を表示する数式を入力していきます。

セルB6以降に入力する数式は、以下のような式になります。

・該当する行に関して、C列「作業内容」に値が入力されている場合に、B列「No」に連番を表示する
・「No」に表示する番号は、「No」を表示する行よりも上の範囲の最大値に1を加えた番号になる

この内容を満たした数式は、以下になります。

=IF(C6="","",MAX($B$5:B5)+1)
// セルB6に入力する数式

MAX関数で指定した範囲の最大値を取得することができるため、IF関数で該当する行のC列に値が入力されている場合に関してのみ、MAX関数で取得した値に1を加えた値を表示しています。

MAX関数の引数に設定している範囲($B$5:B5)は、該当する行よりの上の範囲になります。
セルB6の場合はセルB5~B5の範囲、セルB7の場合はセルB5~B6の範囲、セルB8の場合はセルB5~B7の範囲、という感じになります。

範囲の始まりのセル(B5)に関しては固定し、終わりのセル(数式を入力したセルの真上)に関しては相対的に変化させる必要があるため、「$B$5:B5」のように始まりのみを絶対参照($)にして終わりは相対参照にしています。

この数式を、連番を表示させたい範囲の最後までコピーすることで、「作業内容」の項目の値の有無に応じて連番を表示することができます。


この方法を活用する場合、行の挿入時に注意すべき点があります。
行を挿入した場合、挿入した範囲には数式が表示されません。
そのため、挿入した範囲内の「作業内容」の項目に値を入力してしまうと、間違った連番になってしまいます。

また、挿入したセルの次の行(B12)の数式に関しては、以下のように参照範囲がずれてしまいます。

=IF(C12="","",MAX($B$5:B8)+1)
// 理想はMAX($B$5:B11)となるべき

そのため、挿入した範囲にも数式を反映させる場合は、挿入した行の一つ上のセル(B8)の数式を、挿入した行の一つ下のセル(B12)までコピーする必要があります。

この数式の場合、上記の点が少しややこしいので、参照範囲がずれない別の数式についても解説していきます。


参照範囲がずれない数式とは、以下のような数式になります。


続きはIT予備メンバー限定です。

メンバー限定コンテンツになります。




IT予備メンバーページと連携することで内容を確認することができます。

メンバーとは


すでにメンバーの方は、
ログインして連携してから、こちらを更新すると閲覧できます。
※連携しても確認ができない場合は、少し時間を置いてご確認ください。

ログイン(新しいタブ)
※[ログイン]→[設定]→[IT予備-連携]で連携できます


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。


メンバー募集
ExcelVBA特別教材配布 ExcelVBA特別教材配布





リンクの共有はこちらから行えます。

  リンクコピー Twitter Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

4022307

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ