この記事で分かること
- 長くネストした数式を、外側から順に分解して読む手順
- F9キーで数式の一部だけを検証する方法
- LET関数を使って、長い数式を読みやすく書き直す方法
前任者のファイルにある長いIFのネスト数式が読めず、直したいのに触れないという方に向けて書いています。
どんな場面で使うか
- ファイルを引き継いだが、既存の数式が何をしているか分からない
- 帳票を改修したいが、数式を壊すのが怖くて手を付けられない
- 不具合の原因が数式のどこにあるか調べたい
基本説明
長い数式が読みにくいのは、複数の判定が1つの式に詰め込まれているため、どこからどこまでが1つのまとまりか分からなくなることが原因です。
次のような数式を例に考えます。
=IF(C2>=100000,"A",IF(C2>=50000,IF(D2="優良","B+","B"),IF(C2>=10000,"C","D")))
いきなり全体を理解しようとせず、外側から1段ずつ剥がすことで読み解けます。
手順
ステップ1:括弧の対応を確認する
エディタ上でカッコにカーソルを合わせると、対応する閉じ括弧が分かります(Excelの数式バーでもハイライトされます)。まず「一番外側のIF」がどこからどこまでかを確認します。
上の例では、一番外側は次の3つの引数に分解できます。
- 条件:
C2>=100000 - 真の場合:
"A" - 偽の場合:
IF(C2>=50000, IF(D2="優良","B+","B"), IF(C2>=10000,"C","D"))
つまり「C2が10万以上なら”A”、そうでなければ次のIFへ」という構造です。
ステップ2:内側のIFを同じように分解する
偽の場合に入っていた数式をさらに分解します。
- 条件:
C2>=50000 - 真の場合:
IF(D2="優良","B+","B")(さらにもう1段IFがある) - 偽の場合:
IF(C2>=10000,"C","D")
ここまでで、「10万以上→A」「5万以上かつ優良→B+」「5万以上→B」「1万以上→C」「それ未満→D」という5段階のランク分けをしていることが読み取れます。
ステップ3:F9キーで一部だけを検証する
数式全体を読まなくても、気になる部分だけを選択してF9キーを押すと、その部分だけがその場で計算結果に置き換わって表示されます(Escキーでキャンセルすれば数式に戻ります)。
たとえば数式バーでC2>=50000の部分だけをドラッグして選択し、F9を押すとTRUEまたはFALSEが表示されます。これにより「この条件がどちらに転んでいるか」を数式を書き直さずに確認できます。
注意:F9を押した後に誤ってEnterで確定すると、選択した部分が計算結果の値に置き換わったまま保存されてしまいます。確認だけなら必ずEscでキャンセルしてください。
ステップ4:数式の検証ツールを使う
「数式」タブの「数式の検証」を使うと、数式を1ステップずつ評価しながら進める画面が表示されます。F9の一時確認よりも体系的に、どの部分がどう評価されて最終結果に至るかを追跡できます。
サンプルコードまたは例
LET関数で名前を付けて書き直す
Microsoft 365以降であれば、LET関数で各判定に名前を付けることで、数式そのものを読みやすく書き直せます。
=LET(
売上, C2,
優良, D2="優良",
IF(売上>=100000, "A",
IF(売上>=50000, IF(優良,"B+","B"),
IF(売上>=10000, "C", "D")))
)
構造自体(ネストの深さ)は変わっていませんが、C2が「売上」、D2="優良"が「優良」という名前になったことで、数式を読むときに元のセル参照へ戻って意味を確認する手間が減ります。LETの詳しい使い方は関連記事で解説しています。
よくあるエラー
- F9で確定してしまい数式が値に置き換わった:直後であれば
Ctrl+Zで元に戻せます。保存後に気づいた場合は、バックアップやOneDriveのバージョン履歴から復元します。 - 括弧の数が合わずエラーになる:分解した各部分をコピーして別のセルに貼り付け、
=を付けて単独で評価すると、どこで対応が崩れているか特定しやすくなります。 - 分解しても意味が分からない:セル参照(
C2やD2)が何の列かを、まず元データの見出し行で確認します。列の意味が分からないまま数式だけ読んでも理解できません。
まとめ
長い数式は、一番外側の構造から1段ずつ剥がして読むことで必ず分解できます。F9キーでの部分検証や数式の検証ツールを併用すれば、実際にどう評価されているかをその場で確認できます。読めるようになった数式は、LET関数で名前を付けて書き直すと、次に読む人(未来の自分を含む)の負担を減らせます。
関連記事
- 【Excel 関数】LET関数で長い数式を整理する — 読めて・直せる数式の書き方 — LET関数の詳しい使い方
