スキップしてメイン コンテンツに移動

Excelで作成した質疑応答書の質問番号の数式

質疑応答書の質問番号は、数式で設定しておくと、途中で追加や削除をしても連番が維持できて便利です。


では、実際にはどのような数式にすればいいか考えてみます。
上の画像のセルB5に設定する数式を考えます。
 =MAX(B$1:B4)+1
セルB1からB5の最大数値に1を加算する数式です。

B1の1の前に「$」を付けて絶対参照にしてあるので、この数式をコピーして、次の行以降に貼り付けても、B$1は変化しません。
(B4の方は、B5・B6・B7・・・と変化します)
このように設定することで、コピー・貼り付けで一気に連番を作ることができます。

この計算式はかなり使えるのですが、質疑応答書を編集していると問題が発生することがあります。
例えば、間に一つ質問を追加したい場合、行を選択して「コピー」→「コピーしたセルの挿入」で行を追加して、質問を加えると思いますが、これが上手くいきません。
挿入した行の計算式が一つ上の行と全く同じになって、同じ番号が2つ続く状態になってしまいます。
挿入した行の一つ下の行も、挿入した行の一つ上までの範囲の最大値を参照してしまいます。
また、行削除を行うと削除した行より下の計算式が、「#REF!」エラーになってしまいます。

これを防ぐために、OFFSET関数を使います。
OFFSET関数は、基準セルから縦と横にいくつずれた位置かでセルを指定するもので、これを使うことで、上のような行挿入・行削除での問題が起きなくなります。

書式は以下のとおり。
 =OFFSET(基準となるセル, 行のずれ, 列のずれ, 行範囲, 列範囲)

実際の計算式(B5セルの計算式)は、このようになります。
 =MAX(B$1:OFFSET(B5,-1,0))+1

一つ上のセル(B4)を表わすのに「OFFSET(B5,-1,0)」としています。
計算式を入力する基準セル(B5)の一つ上のセルなので、行のずれが「-1」、列は同じなので、列のずれが「0」となっています。
OFFSETの引数のうち行範囲と列範囲については、今回の場合は一つのセルを指定する(セル範囲ではない)ので、省略しています。
おそらく、この計算式が最も質問書の番号に適していると思います。

コメント

共有する


関連コンテンツ