Excel 数式の結果に任意の名前を付ける (LET関数)

2024年3月18日

English version.

LET関数は2020年9月にMicrosoft365(Office365)のExcelに追加された新機能で、

数式を読みやすくしたりブックの計算速度を改善するための関数です。

何らかのプログラミング言語やマクロの経験者の方には、

数式に変数を利用できるようになったと考えると理解しやすいでしょう。

この記事では、その仕様と使い方を紹介します。

仕様

=LET(名前1,値1, ~ 名前126,値126,数式)
引数省略時の値説明
名前1~126省略不可任意の命名を行います。
数字以外で始まる必要があります。
名前と値のセットは最低1つ指定する必要があります。
2以降は126まで指定可能です。
値1~126省略不可名前に対応する内容を指定します。
数値、文字列、数式のどれでも構いません。
数式省略不可最後(奇数個め)の引数が、
これまで定義した名前を使用する数式になります。
引数の詳細

使い方

使用例

基本ケース

単純な使用例です。引数は以下の通りです。

=LET(a,25,a)
引数設定値
名前1a
値125
数式a

最後の数式でaという名前が25として扱われます。aは文字列ではないので"は付けません。

範囲に名前を付けるのと同じ扱い)

単純な使用例

値に文字列

値を"で囲めば文字列を指定可能です。

=LET(a,"ABC",a)
引数設定値
名前1a
値1"ABC"
数式a
値に文字列

複数の名前を定義

複数の名前を定義するパターンです。

数式が長くなる場合は、名前と値のセット毎にセル内改行すると読みやすくなります。

また値2~126には、より左側で既に定義した名前を使用可能です。

=LET(
  a,3,
  b,a+2,
  a+b
)
引数設定値
名前1a
値13
名前2b
値2a+2
数式a+b

この場合、a=3、b=5で結果が8になります。

複数の名前を定義

注意点

LET関数は有用な関数ですが新しい関数で知られておらず、

これまでのExcelの数式とは性質がかなり異なる関数です。

よって他の人が数式を見る可能性がある場合はLET関数について

説明しておく方が良いでしょう。

LET関数が有効なケース

意図なく使用すると数式が理解しにくくなってしまうため適切かを判断する必要があります。

同一の数式を複数回指定(冗長な数式)

例えば下の数式では同じVLOOKUP関数が2つあります。

VLOOKUP関数で結果が0になる場合の対処方法の例)

=IF(VLOOKUP(C2,B6:C8,2,FALSE)="","",VLOOKUP(C2,B6:C8,2,FALSE))

このような場合は次のようにすると重複を除外して改善可能です。

=LET(vl,VLOOKUP(C2,B6:C8,2,FALSE),IF(vl="","",vl))

同一の数式を一つの名前にまとめることが出来るので、

関数を変更する際に1つだけで変えて、他の同一部分を変え忘れるようなことがなくなります。

単純なセル参照でも同じ場所への参照が多量にあれば効果があります。

これは中間セルを作って数式を省略するようなケースでも有効です。

また計算結果を格納するため関数の実行が1回で済むようになり計算速度が向上します。

(先ほどの例では2回のVLOOKUP関数実行が1回で済む)

特にFIND関数XLOOKUP関数、VLOOKUP関数のような動作の重くなりがちな関数を

大量に使用している場合は特に計算速度の改善効果が高くなります。

数式が重いブックの場合、こちらと合わせてLET関数が改善のための検討候補になるでしょう。

複雑な数式を簡略化

複雑に入り組んだ数式を一定のかたまりで名前を付けて

簡略化することも有効です。(読みやすいかは命名や個人差あり)

次の特定の文字列以前・以降・間の文字を抽出する例では

重複除外と合わせて効果があります。

=MID(B3,FIND(C3,B3)+LEN(C3),FIND(D3,B3)-FIND(C3,B3)-LEN(C3))

C列の文字ととD列の文字の間の文字をMID関数で文字列を切り出すのがメインですが、

切り出し位置を決めるためのFIND関数LEN関数が入り組んでいます。

また重複した数式も存在します。(背景色で色付けしている個所)

〇〇と△△の間を抽出するキャプチャ

まず重複除外のみを行うと次の数式になります。

=LET( 
  前文字の開始位置,FIND(C3,B3), 
  前文字数,LEN(C3), 
  MID(B3,前文字の開始位置+前文字数,FIND(D3,B3)-前文字の開始位置-前文字数)
)

意味のある数式のかたまりに名前を付けて明確にすると以下のようになります。

=LET( 
  前文字の開始位置,FIND(C3,B3),
  前文字数,LEN(C3),
  切り出しの開始位置,前文字の開始位置+前文字数,
  切り出し文字数,FIND(D3,B3)-前文字の開始位置-前文字数,
  MID(B3,切り出しの開始位置,切り出し文字数)
)

これによりMID関数の数式の構造が明確になります。

Excel完全マスター: 関数・テクニック・新機能を網羅した決定版ガイド

本書は、Excelの基礎から応用まで、包括的に学べるガイドブックです。当サイトの豊富な情報を、電子書籍向けに最適化し、読みやすく再構成しました。

【本書の特徴】

  • 情報量:Word-A4サイズ換算で1,400ページ相当
  • 基本操作から高度なテクニックまで、段階的に学習可能
  • 140種類の関数を詳細に解説
  • 109種類の実用的なテクニックと具体例を紹介
  • 最新機能(XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピル等)を徹底解説

【対象読者】

  • Excel初心者からプロフェッショナルまで
  • 体系的にExcelスキルを向上させたい方
  • 業務効率化を目指すビジネスパーソン
  • データ分析や可視化のスキルを磨きたい方

【本書の強み】

  • 実務に即した例題と解説
  • 視覚的な図表やスクリーンショットで理解を促進
  • 最新のExcelバージョンに対応した内容
  • 著者の長年の経験に基づく、実践的なTipsを多数収録

【更新とサポート】

  • 常に最新の情報を反映するため、定期的に内容を更新
  • 最新版の入手方法:Amazonカスタマーサポートへお問い合わせください

【入手方法】

  • 買い切り:950円
  • Kindle Unlimited:読み放題プランで利用可能

Excelマスターを目指す方、業務効率を劇的に向上させたい方に、自信を持っておすすめできる一冊です。この1冊で、Excelの可能性を最大限に引き出す力が身につきます。

関連記事

活用例

値の存在する行のみ抽出する数式

スピルでクロス集計(データ更新が自動反映)を行う数式

URLパラメータの値を抽出する数式

URLパラメータを削除、またはURLパラメータのみにする数式

VLOOKUP関数で結果が0になる場合の対処方法

特定の文字列以前・以降・間の文字を抽出する方法

関数の仕様と使い方の記事一覧