Microsoft、プログラミングの“変数”に似た「Excel」の「LET」関数を発表:パフォーマンスや数式の読みやすさが向上
Microsoftは、「Excel」の新しい関数「LET」を発表した。現在はβ機能であるこの関数では、計算結果に名前を割り当てることができる。
Microsoftは2020年3月17日(米国時間)、「Excel」の新しい関数「LET」を発表した。LET関数は現在、β機能であり、「Office Insider」のInsiderチャネルに参加する「Office 365」契約者が利用できる。2020年中に他のチャネルのユーザーも利用できるようになる。
LET関数は、計算結果に“名前”を割り当てるものだ。これらの名前は、LET関数のスコープ内だけで適用できる。プログラミングの“変数”に似ているが、Excelネイティブの数式構文を使って実現するという。
LET関数を使用するには、名前と値のペア、およびそれらを使用する計算を定義する。名前と値のペアは少なくとも1つ定義する必要がある。LETは最大126個のペアをサポートする。
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人の担当者の実績を表示し、空白のセルに「―」(ダッシュ)を追加したいとする。
上の処理は、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)
例2を試したい場合は、次の表を空のワークシートのセルA1にコピーするといいだろう。
営業 | 地域 | 製品 | 利益 |
---|---|---|---|
さん | 東部 | りんご | $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.
関連記事
Excelの「名前の定義」でセルの範囲に名前を付ける
Excelの「名前の定義」を使って、セルの範囲に「名前」を付ける方法を紹介する。「名前」を付けると、関数内でセルの範囲を参照する際などに簡単かつ分かりやすく指定できる。セル範囲に名前を定義する方法とその管理方法などを紹介する。ExcelのIndirect関数は「参照の参照」ができて、お利口さんなんだ
本連載では、書籍『子どもの“プログラミング的思考”をグングン伸ばす本』の中から、Excelの機能を使って作ったゲーム(VBAではない)を通じて、コンピュータがどう考えているのかを学べる章を厳選して転載する。「Excelの機能を使う」こと自体も「プログラミング」に通じていることを体感してほしい。今回は、Excelが持つ「座標」の概念(行と列)と「参照」の考え方について。マクロが動かない原因の見つけ方とVBAの変数、データ型
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。今回は、VBEのデバッグ方法としてステップイン実行とブレークポイントの設定を紹介し、エラー対処法やプログラムに重要な変数、データ型などについて解説します【Windows 10、Excel 2016に対応】。