Excel新関数「LET」は便利なのか? それとも“初心者お断り”なのか?:“脱Excel”か“活Excel”か
「Excel 2021」に追加された全く新しい関数「LET」を使うと、ネスト構造の複雑な式をシンプルな記述に改善できます。ただしLETは初心者向きとは言えない可能性があります。
Microsoftの表計算ソフトウェア「Excel 2021」に加わった新しい関数は、「XLOOKUP」の他、「LET」「XMATCH」があります。本稿はLETの使用例を解説し、そのメリットを考察します。
LETはどのような関数か
XLOOPUPが「VLOOKUP」の上位互換であるのとは異なり、LETは全く新しい関数です。
併せて読みたいお薦め記事
連載:“脱Excel”か“活Excel”か:Excel 2021の新関数「XLOOKUP」解説
「Teams」のトラブルシューティング
ExcelのヘルプやMicrosoftのサポートサイトによると、LETの機能について以下の説明があります。
LET関数は、計算結果に名前を割り当てます。これにより、中間計算、値、定義名などを数式内に格納できます。これらの名前はLET関数の範囲内にのみ適用されます。プログラミングの変数と同様に、LETはExcelのネイティブな数式構文を使用して実行されます。
LET関数を使用するには、名前と関連する値のペア、その全てを使用する計算を定義します。少なくとも1つの名前/値のペア(変数)を定義する必要があり、LETは最大126組をサポートします。
ヘルプの説明を読む限りだと、どのようなことができる関数なのか、いまいち理解がしづらいかもしれません。「LETは『ネスト』の使用を減らすことができる関数だ」と考えると、理解の助けになるでしょう。ネストの一般的な訳は「入れ子」で、Excelを利用する上では「関数の中に関数を入れること」を指します。Excelの関数を使用する上でネストはテクニックの一つですが、ネストを多用すると記述が複雑になり、読みにくくなるデメリットがあります。
業務でLETを使ってみる――ネストの記述例と比較
例えば以下の目的を実現する場合、関数をどのように使えばよいのでしょうか。
関数で表示したい内容
シート「売り上げランク一覧」のA列にある社員番号を検索値として、シート「社員マスター」にある社員情報から社員名を検索。その社員名を検索値として、シート「2022年月別売り上げ管理表」にある売り上げ情報から今月の社員の売上金額を検索。その売上金額をシート「売り上げランクマスター」で3段階設定している売り上げランクと比較し、B列に社員の売り上げランクを表示したい。
ネストの記述例
この内容を、ネストを使用して関数で記載すると以下のようになります。XLOOKUPで複数のシートを参照しつつ、関数「IF」で条件分岐をしていることもあり、IFの中に複数のXLOOKUPが入れ子になっています。一目で理解するのは困難な式になっています。
式1
=IF(XLOOKUP(XLOOKUP(A1,社員マスター!A:A,社員マスター!B:B),'2022年月別売り上げ管理表'!A:A,'2022年月別売り上げ管理表'!B:M)>=売り上げランクマスター!B1,"A",IF(XLOOKUP(XLOOKUP(A1,社員マスター!A:A,社員マスター!B:B),'2022年月別売り上げ管理表'!A:A,'2022年月別売り上げ管理表'!B:M)>=売り上げランクマスター!B2,"B","C"))
LETの記述例
同じことをLETで記述してみましょう。LETの記述は以下のようになります。
LET(名前1,名前1の値,計算)
例えば「名前1」をx、「名前1の値」を1、最後の「計算」をx+1とすると、LETの式は以下となり、セルの表示は2となります。LETの式は、式内で変数と計算の定義を表記する記述方法です。プログラミングの経験がある方は理解しやすいと思います。
LET(x,1,x+1)
前述の【式1】をLETで記述してみましょう(理解しやすくするために、便宜的にLETの式を改行して表記します)。
式2
=LET(
社員名検索,XLOOKUP(A1,社員マスター!A:A,社員マスター!B:B),
売上金額検索,XLOOKUP(社員名検索,'2022年月別売り上げ管理表'!A:A,'2022年月別売り上げ管理表'!B:M),
ランクA,売り上げランクマスター!B1,
ランクB,売り上げランクマスター!B2,
IF(売上金額検索>=ランクA,"A",IF(売上金額検索>=ランクB,"B","C"))
)
最後の計算(IF文)を分かりやすくするために、各値に付けた名前が長めになったこともあり、式全体の長さはLETを使用しても大差はありません。一方LETを使用したことで、XLOOKUPを計算の部分から分離させることが可能になりました。これだけの長さの式にもかかわらず、ネストは最後の計算の部分に1つあるだけとなりました。ネストが激減したことによって、それぞれの式が何を計算しているかが理解しやすくなったと考えられます。
LETはこのように、従来はネストで記述していた複雑な式を、個々の関数を変数として分割し、式を“単純式の集合”として表記することを可能にします。さらにExcelのヘルプには、LETを使用することで計算が高速化するとの記載があります。
LETは初心者でも使いこなせるのか
LETを使用することで、式の中でどのような処理をしているかが分かりやすくなるのは確かに利点だと言えます。ではLETは、実業務で積極的に活用した方がよい関数なのでしょうか。
関数の初心者がLETを使いこなせるとは言い切れないと筆者は考えています。特に値に名前を付ける変数の考え方は、初心者には理解が難しい可能性があります。一方でネストの式を作り慣れている人であれば、一見して分かりにくい式であっても、式の処理内容を理解することは、それほど難しくない場合があります。
ネストを使わないようにする方法はLETだけではありません。1つの式で全ての計算をせずに別のセルで計算すれば、ネストを使用せずに式を簡略化できます。
LETは複雑な式を作成する際の新しい選択肢だと言えます。今後、複雑な式を作成する手段としてLETが主流になる日が来る可能性があります。ただし初心者からベテランまで誰もが今すぐ活用すべき関数とまでは言えなさそうです。
このコラムについて
ほとんどの企業が使っている表計算ソフト「Microsoft Excel」。便利なツールですが、本来の目的を超えて“使いこなし過ぎる”ことが、かえって業務効率を低下させてしまったり、業務の属人化につながってしまったりする場面があるのではないでしょうか。
このコラムでは、日常業務でよく見掛けるExcelの活用例を紹介しながら「こんな場面は脱Excelを考えた方がよい」「こういうExcelの活用法はお薦め」といった知見を紹介します。
村山 聡(むらやま・さとし)
1971年愛知県生まれ、名古屋大学経済学部卒、中小企業診断士。IT企業在職中に、単一業種においてキャリアを積んでいくことに疑問を感じ、どんな業界、職種でも通用する知識を得るべく中小企業診断士を取得。複数社を経て、現在の勤め先にて、コンサルタントとして、データを活用した業務効率改善に取り組む。
Copyright © ITmedia, Inc. All Rights Reserved.