【Googleスプレッドシート】LET関数で数式を読みやすく整理!変数定義の書き方と利点

【Googleスプレッドシート】LET関数で数式を読みやすく整理!変数定義の書き方と利点
🛡️ 超解決

複雑な数式が長くなり、どこで何を計算しているのか分からなくなった経験はありませんか。GoogleスプレッドシートのLET関数を使えば、数式内に変数を定義し、同じ計算を繰り返し参照できます。数式の可読性が向上し、修正も容易になります。この記事では、LET関数の基本的な書き方から実際の活用例までを解説します。

【要点】LET関数で数式を整理する3つのポイント

  • 変数名と値をセットで定義: 数式の先頭で「変数名, 値」のペアを指定し、後続の計算でその名前を使えます。
  • ネスト数式を簡潔に: 複数回使う中間結果を変数化することで、数式全体の長さを短縮し修正を容易にします。
  • デバッグが楽になる: 変数の値を変更するだけで結果を確認できるため、トラブルシューティングが効率化します。

ADVERTISEMENT

LET関数の仕組みと基本構文

LET関数は、数式内で変数に値を代入し、その変数を後続の式で利用できるようにする関数です。従来は同じ計算を何度も書く必要があった部分を、一度定義して使い回せるため、数式が短くなり読みやすくなります。基本的な構文は次のとおりです。

=LET(変数名1, 値1, 変数名2, 値2, ..., 計算式)

変数名には英字またはアンダースコアで始まる名前を付けます。値には数値、セル参照、他の関数の結果などが指定できます。最後の引数が実際の計算式で、ここで定義した変数を使って結果を計算します。変数はカンマで区切り、偶数個の引数として指定します。

たとえば、売上から消費税(10%)を差し引いた金額と税額を同時に求めたい場合、次のように記述できます。

=LET(price, A2, tax, price*0.1, total, price - tax, total)

この例では、priceにセルA2の値を代入し、taxにpriceの10%を計算、totalにpriceからtaxを引いた値を代入し、最終的にtotalを返します。数式が何をしているか一目で分かるようになります。

LET関数の具体的な書き方と手順

それでは、実際にGoogleスプレッドシートでLET関数を使う手順を説明します。以下の例では、商品の単価と数量から割引後の金額を計算する数式を作成します。

  1. セルを選択して数式を入力開始
    結果を表示したいセルをクリックし、半角の「=」に続けて「LET(」と入力します。
  2. 変数名を定義する
    まず最初の変数名を入力し、カンマで区切って値を指定します。たとえば「unit_price, B2, quantity, C2」とすると、unit_priceにB2、quantityにC2の値が代入されます。
  3. 割引率を変数化する
    続いて「discount_rate, 0.1」と入力します。これで割引率10%を変数として保持できます。
  4. 計算式を記述する
    最後に、定義した変数を使って計算します。「subtotal, unit_price * quantity, final_price, subtotal * (1 – discount_rate), final_price」とします。subtotalは割引前の合計、final_priceが割引後の金額です。
  5. 数式を確定する
    括弧を閉じてEnterキーを押します。数式の最終結果としてfinal_priceが返されます。

実際のセルに入力する数式は以下のようになります。

=LET(unit_price, B2, quantity, C2, discount_rate, 0.1, subtotal, unit_price * quantity, final_price, subtotal * (1 - discount_rate), final_price)

この数式は、同じ計算を繰り返すことなく、各ステップを変数で表現しているため、後から割引率を変更したい場合も、変数定義の部分だけを修正すれば済みます。

複数のセルをまとめて処理する応用

LET関数は単一セルの計算だけでなく、ARRAYFORMULAと組み合わせて配列演算にも利用できます。たとえば、列全体の税込金額を計算する場合、次のように記述できます。

=ARRAYFORMULA(LET(prices, A2:A10, tax_rate, 0.1, prices * (1 + tax_rate)))

この数式は、A2:A10の各セルに1.1を掛けた結果を一度に返します。変数pricesで範囲を指定しているため、数式が読みやすくなります。

LET関数を使用する際の注意点とよくあるミス

便利なLET関数ですが、いくつか注意すべき点があります。ここでは代表的な3つを紹介します。

変数名の重複や予約語との衝突

変数名は大文字小文字を区別しませんが、関数名(SUM, IFなど)と同じ名前は避けるべきです。たとえば「IF」を変数名にしようとするとエラーになります。また、同じ名前の変数を複数回定義すると、後から定義した方が優先されます。

変数のスコープはLET内部のみ

LET関数内で定義した変数は、そのLET関数の最後の引数の計算式の中でしか使えません。他のセルや別の数式から参照することはできないため、値を共有したい場合はセルに直接出力する必要があります。

長すぎる数式は可読性が逆に低下

変数を使いすぎると、逆に数式が長くなり理解しにくくなることがあります。目安として、変数は3〜5個程度に抑え、複雑なネストが必要な場合は別のセルに中間結果を出力する方法も検討してください。

ADVERTISEMENT

LET関数と従来のネスト数式の比較

項目 従来のネスト数式 LET関数を使用
可読性 低い(括弧の対応が複雑) 高い(変数名で意味を表現)
修正の容易さ 低い(同じ値を複数箇所変更) 高い(変数定義を変更するだけ)
デバッグしやすさ 低い(部分結果の確認が困難) 高い(変数の値を一時的に返して確認)
数式の長さ 長くなりがち 短縮できる(重複除去)

この比較からも分かるように、LET関数は特に複数回同じ計算を参照する数式で威力を発揮します。単一の計算だけならネストでも構いませんが、可読性と保守性を重視するならLET関数を積極的に使うとよいでしょう。

まとめ

LET関数を使うと、数式内で変数を定義し、可読性と保守性を大幅に向上できます。基本構文は「変数名, 値」のペアを繰り返し、最後に計算式を記述するだけです。特に同じ値を何度も使う数式や、複数ステップの計算が必要な場合に効果を発揮します。ぜひ、今までネストが複雑だった数式をLET関数に書き換えてみてください。ARRAYFORMULAとの組み合わせや、条件分岐を含む数式でも活用できます。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。