残業を減らす!Officeテクニック
エクセルの「消えない数式」でメンテナンスしやすい表にする ~LET関数の活用も
2026年3月9日 06:55
既存の表のデータだけを消去して再利用することがありますよね。例えば、月次の売上表をコピーして翌月分を作るような運用です。その際、「ジャンプ」の機能を利用して、数式だけを残して使い回すかもしれません。
しかし、ファイルを共有した場合などでは、Excelに不慣れな人が意図せずに数式を消してしまう可能性や、既存の数式をコピーし間違えることも考えられます。間違いに気付かずに運用するのは事故の原因になります。
数式を保つために「スピル」を利用する方法が考えられますが、“元の数式”が消されてしまえば意味がありません。
そこで今回は、数式の結果を「スピル」で表示させる際に、表のメンテナンスを楽にする考え方を紹介します。
見出しに数式を埋め込む
単純にスピルを使うと、元のセルを消した時点で以降の結果もすべて消えてしまいます。見出し行に数式を埋め込んで集約することで、表の再利用時の事故を減らすことができます。
今回は、100行目までデータが入力されることを想定してセル参照します。ROW関数を使って、1行目が見出し行かどうかを判別して、2行目以降の売上を評価するIFS関数の数式を続けます。読みやすいように折り返していますが、続けて1行で記述して構いません。
=IF(ROW(B1:B100)=ROW(B1),
"評価",
IFS(B1:B100="","",
B1:B100>=200000,"A",
B1:B100>=100000,"B",
B1:B100>=50000,"C",
TRUE,"D"))
外側のIF関数の条件式「ROW(B1:B100)=ROW(B1)」で、セルB1~B100の行番号が「1」(セルB1)かどうかを、つまり見出し行かどうかを判定して、1行目なら「評価」と表示します。内側のIFS関数は、売上が入力されていなければ空白(B1:B100="","")を入力、その後に条件と評価を記述しています。最後の「TRUE」は「それ以外」を意味します。
見出しに数式を入力したので、データの入力範囲をまとめて消去しても大丈夫になりました。運用も簡単になりますよね。ただし、数式の結果はスピルで表示されるため、スピルの結果が表示されるセル範囲(ここでは、セルC2~C100)にデータが入力されていると「#スピル!」エラーとなることに注意してください。
LET関数でセル参照の列記を避ける
上記の数式で運用する場合、101行目以降に対応できません。「B:B」のように列全体を参照しても動作しますが、更新を前提とする表では、末尾に備考などを入力することもふまえて、セル範囲を特定しておくことが多いでしょう。
その際、「B1:B200」のようにセル参照を書き換えることになりますが、複数の「B1:B100」を修正するのは面倒です。LET関数で数式を整理して、さらにメンテナンスしやすくしてみましょう。
LET関数では、引数[名前]に変数となる値を指定し、[計算]に処理を記述します。[名前]に「A1」や「B1」といったセル番地は付けられません。また、先頭に数字は使えません。
ここでは、「uriage」という[名前]にセル範囲(B1:B100)、[計算]にIF関数とIFS関数の数式を指定します。数式内で[名前]に指定した「uriage」を利用します。
=LET(
uriage,B1:B100,
IF(ROW(uriage)=ROW(B1),
"評価",
IFS(uriage="","",
uriage>=200000,"A",
uriage>=100000,"B",
uriage>=50000,"C",
TRUE,"D")))
LET関数を使うことで、将来的にセル範囲を修正する際には、2行目の「B1:B100」の部分だけ修正すれば済みます。
Excelの表を使い回す場面では、数式を短く書くことよりも「壊れにくい設計」にしておくといいでしょう。スピルで数式をまとめて、さらにLET関数で参照を整理しておけば、後々のメンテナンスが楽になりますよ。

























![【Amazon.co.jp限定】1冊ですべて身につくHTML & CSSとWebデザイン入門講座[第2版] (特典:「Webデザイナーのポートフォリオの作り方入門講座」データ配信) 製品画像:4位](https://m.media-amazon.com/images/I/51skMJ-OVcL._SL160_.jpg)





