Excel情報549 関数--LET関数で計算を簡潔に
【テーマ】
数式内で同じ計算や値がある場合、名前を定義して内容を簡略化するLET(レット)関数の使い方を解説します。
【方法】
表等のデータとLET関数を使用します。
【参考】
バックナンバーで記載している「Excel for Microsoft 365から使用することができる関数」
計算結果の比較などで、一つのセルに何度も同じ式を記述することって、よくありますよね。
式の内容が理解しにくくなったり、計算に時間がかかったりする原因になったりします。
今回は、複雑な数式を簡潔にしたり、計算速度の向上が見込めるLET(レット)関数を紹介します。
※Excel2021/Microsoft365のみ対応 2023年8月現在
■LET関数の概要
=LET(名前1,値1,計算式 又は[名前2,値2,計算式…])
名前1 定義する名前。
値1 名前1に入れる値や数式
計算式 名前を使った計算
又は名前2 2つ目の名前を使う場合は、計算式の前に名前2,値2と続けます
「名前,値」の組合わせは最大126個まで定義可能です。
■使用例1
= LET(A,10 , B,5 , A+B)
数値10を「A」と定義
数値5を「B」と定義
計算式をA+Bとすると、15が返ってきます
■使用例2(各商品の販売期限判断)
各商品と販売期限のある表から、指定した「商品(セルE5)」から「販売期限」を検索する式を「期日」、TODAY()を「本日」として、指定商品を判定(「期日」と「本日」を比較)した事例になります。
LET関数を使用しない場合、以下ような数式になります。
「=IF(VLOOKUP(E5,B5:C8,2)>TODAY(),"〇"
,IF(VLOOKUP(E5,B5:C8,2)=TODAY(),"△","×"))」
LET関数を使用すると以下のようになります。
「=LET(期日,VLOOKUP(E5,B5:C8,2), 本日,TODAY()
, IF(期日>本日,"〇",IF(期日=本日,"△","×")))」  
 【ポイント】
  「期日>本日」など、計算式が理解しやすい表示になりました。
  VLOOKUP関数内容の変更時も、一ヵ所だけの編集で済みます。
イメージ:セルF5に「判定結果」として使用。
■使用例3(売上げ対目標比)
「商品」から「売上目標」を検索する式を「目標」として、「売上実績」を「実績」とし、計算式に「実績/目標」の達成率を計算した事例になります。
LET関数を使用しない場合は、下記のような計算式になります。(1行目の式)
「=$H5/VLOOKUP($G5,$B$5:$E$8,4)」 
LET関数は、下記のような計算式になります。(1行目の式)
「=LET(目標,VLOOKUP($G5,$B$5:$E$8,4),実績,$H5,実績/目標)」  
 【ポイント】
  表示は長くなりましたが、「実績/目標」と、何を計算しているか明確になりました。
イメージ:「I」列に「達成率」として使用。
【参考】
  その他、以下の関数のバックナンバーもご参考にしてください。
関数 バックナンバーURL
IFS https://www.still.co.jp/excel/support/481ems.xls
MAXIFS https://www.still.co.jp/excel/support/482ems.xls 
CONCAT https://www.still.co.jp/excel/support/506ems.xls 
TEXTJOIN https://www.still.co.jp/excel/support/506ems.xls
XLOOKUP https://www.still.co.jp/excel/support/504ems.xls
SWITCH https://www.still.co.jp/excel/support/525ems.xls
ARRAYTOTEXT https://www.still.co.jp/excel/support/541ems.xls
FILTER https://www.still.co.jp/excel/support/543ems.xls
UNIQUE https://www.still.co.jp/excel/support/546ems.xls
LAMBDA https://www.still.co.jp/excel/support/547ems.xls
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます