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予備-連携]で連携できます