スプレッドシートのLET関数とは
LET関数は指定した名前に値式の結果を割り当て、その名前を使用して数式を計算した結果を返すスプレッドシート関数です。この関数では複数の名前と値の組み合わせを定義し、最後に指定した数式の中でそれらの名前を変数のように扱うことができます。
値式が後続の値式や最終数式で複数回使用されても、LET関数内では1回だけ評価されるという特徴があります。これにより複雑な計算処理において計算効率が向上し、数式の可読性も大幅に向上させることが可能です。
【PR】プログラミングや生成AIを無料で学べる「コードキャンプフリー」
基本構文とパラメータ仕様
LET関数の基本構文は「LET(name1, value_expression1, [name2, …], [value_expression2, …], formula_expression)」で記述します。最初のパラメータname1は後続の値式と最終数式で使用する識別子であり、大文字小文字を区別せずに使用できます。
=LET(avg, AVERAGE(B2:D2), IF(avg>=4, "Great", IF(avg>=3, "Good", "Poor")))
value_expression1は事前に宣言された名前で後から参照可能な数式結果を定義します。formula_expressionは最終的に計算される数式であり、LET関数内で定義された全ての名前を使用することができます。
オプションパラメータのname2とvalue_expression2は繰り返し追加が可能で、複数の変数を同時に定義できます。左から右への順序で名前が宣言されるため、後で宣言する値式では既に定義済みの名前を参照することが可能です。
実践的な使用例とエラー回避
製品評価の平均値カテゴライズでは、AVERAGE(B2:D2)の結果をavgという名前で定義し、IF文でその値を再利用します。LET関数を使わない場合はAVERAGE(B2:D2)を複数回記述する必要がありますが、LET関数なら1回の計算で済みます。
=LET(criteria, "Fred", range, FILTER(A2:D8, A2:A8=criteria), ARRAYFORMULA(IF(ISBLANK(range), "-", range)))
データフィルタリングの例では、criteriaに"Fred"を格納し、rangeにFILTER関数の結果を定義してからARRAYFORMULAで活用します。識別子には範囲参照や数字開始の名前、スペース・特殊文字を含む名前は使用できないという制約があります。
左から右への宣言順序を守らないと「宣言前の変数使用エラー」が発生するため、変数の依存関係を考慮した順序で定義する必要があります。内部LET関数では外側で既に宣言された変数を使用できますが、逆方向の参照は不可能という点に注意が必要です。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
- Canvaとは?使い方やアカウント登録などを初心者向けに解説
- git configで設定情報を確認・表示する方法
- 「Pythonはやめとけ」と言われる理由と学習するメリット
- Ubuntuのversionを確認する方法
- Geminiで画像を生成する方法|ChatGPTとの比較結果も紹介