Microsoft、プログラミングの“変数”に似た「Excel」の「LET」関数を発表パフォーマンスや数式の読みやすさが向上

Microsoftは、「Excel」の新しい関数「LET」を発表した。現在はβ機能であるこの関数では、計算結果に名前を割り当てることができる。

» 2020年03月25日 08時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Microsoftは2020年3月17日(米国時間)、「Excel」の新しい関数「LET」を発表した。LET関数は現在、β機能であり、「Office Insider」のInsiderチャネルに参加する「Office 365」契約者が利用できる。2020年中に他のチャネルのユーザーも利用できるようになる。

 LET関数は、計算結果に“名前”を割り当てるものだ。これらの名前は、LET関数のスコープ内だけで適用できる。プログラミングの“変数”に似ているが、Excelネイティブの数式構文を使って実現するという。

 LET関数を使用するには、名前と値のペア、およびそれらを使用する計算を定義する。名前と値のペアは少なくとも1つ定義する必要がある。LETは最大126個のペアをサポートする。

LET関数の構文と使用例(出典:Microsoft)

 Microsoftは、LET関数の利点として下記を挙げている。

  • パフォーマンスの向上
    1つの数式で同じ式を複数回記述した場合、その式の計算は複数回行われる。LETでは、式を名前で呼び出し、その計算を1回で済ませることができる
  • 数式の読みやすさ、作成しやすさ
    LETを使えば、「特定の範囲/セル参照が何を参照しているか」「自分が記述した計算が、どのようなものか」「同じ式のコピー/貼り付け」を覚えておく必要がない。変数を宣言して名前を付けることができるため、自分自身にも、自分の数式を使う人にも有意義なコンテキストを提供できる

LET関数の構文

= LET (name1, value1, calculation)
= LET (name1, value1, name2, value2, calculation)
= LET (name1, value1, name2, value2, name3, value3, calculation)
:
:

 引数の説明は、下記の通り。

  • name1:必須。割り当てる最初の名前。文字で始まる必要がある。数式の出力は使えず、範囲構文と競合してはならない
  • value1:必須。name1に割り当てられている値
  • calculation:必須。LET関数内の全ての名前を使用する計算。これはLET関数の最後の引数でなければならない
  • name2:省略可能。2番目のvalueに割り当てる2番目の名前。名前を指定した場合、value2も必須になる
  • value2:省略可能。name2で2番目の名前を指定した場合に指定する値
  • name3:3番目のname_valueに割り当てる3番目の名前。名前を指定した場合、value3も必須になる
  • value3:省略可能。name3で3番目の名前を指定した場合に指定する値
  • ……以降、name126とvalue126まで指定可能

 注意点は、下記の通り。

  • 最後の引数には、結果を返す計算(calculation)を指定する必要がある
  • 変数の名前は、Excelの「名前マネージャー」で使える、有効な名前と同じ規則に従う。例えば、「a」は有効だが、「c」は有効ではない。「R1C1」のような参照と競合するからだ

LET関数の使用例

例1

 「SUM(x, 1)」のようなシンプルな式を例にする。この式の「x」は、いわば名前を付けられた変数であり、値を割り当てることができる(この例では、「5」という値が割り当てられている)。

=LET(x, 5, SUM(x, 1))

 この式をセルに入力すると、「6」という値が返される。

例2

 生の販売データがあり、それをフィルター処理して1人の担当者の実績を表示し、空白のセルに「―」(ダッシュ)を追加したいとする。

フィルター処理前のデータ(出典:Microsoft)
フィルター処理後のデータ(出典:Microsoft)

 上の処理は、LETを使わなくても実行できるが、LETを使えば、式の読みやすさが改善され、LETを使わない場合と比べて計算速度が2倍に向上するという。

= IF (ISBLANK (FILTER (A2: D8, A2: A8 = "Fred")), "-", FILTER (A2: D8, A2: A8 = "Fred"))
元の数式
= LET (filtercriteria、 "Fred"、 filteredRange、FILTER (a2: D8、a2: A8 =filtercriteria)、IF (isblank (filteredRange)、"-"、 filteredRange)
LETを使用した数式

 例2を試したい場合は、次の表を空のワークシートのセルA1にコピーするといいだろう。

サンプルデータ(Excelファイルの表)
営業 地域 製品 利益
さん 東部 りんご $1.33
Fred 南部 バナナ $0.09
さん 西部 Mango $1.85
Fred 北部 $0.82
Fred 西部 バナナ \125
さん 東部 りんご $0.72
Fred 北部 Mango $0.54
LET関数(サポートドキュメント)」から引用

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。