<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LET &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/let/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Mon, 18 May 2026 14:03:54 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>LET &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのISOMITTED関数の使い方｜LAMBDAの省略引数を判定して既定値を返す</title>
		<link>https://mashukabu.com/excel-function-howto-use-isomitted/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-isomitted/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 07 May 2026 12:43:18 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[LAMBDA]]></category>
		<category><![CDATA[LET]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[関数自作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6584</guid>

					<description><![CDATA[ExcelのISOMITTED関数は、LAMBDAで定義した引数が省略されたかをTRUE/FALSEで返す関数です。基本構文、IFと組み合わせて省略可能引数つきカスタム関数を作る方法、LET・MAP・REDUCEとの連携、ISBLANKとの違い、対応バージョンや#CALC!エラーの原因まで実務目線で丁寧に解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「ExcelのISOMITTED関数って何ができるの？」「LAMBDAで作った自作関数の引数を省略できるようにしたい」。そんな疑問はありませんか？</p>



<p class="wp-block-paragraph">ISOMITTED関数（読み方：イズオミッティッド）は、<a href="https://mashukabu.com/excel-function-howto-use-lambda/">LAMBDA関数</a>の引数が省略されたかを判定する関数です。関数名は「IS（〜である）+ OMITTED(省略された)」に由来します。IFと組み合わせれば、引数を省略したときに既定値を返す「省略可能引数つきカスタム関数」をVBAなしで作れます。</p>



<p class="wp-block-paragraph">この記事では、ISOMITTED関数の基本構文と使い方を解説します。LAMBDA + IF を使った省略引数の実装、複数引数の省略チェック、<a href="https://mashukabu.com/excel-function-howto-use-let/">LET関数</a>との組み合わせ、名前付き関数としての保存、<a href="https://mashukabu.com/excel-function-howto-use-isblank/">ISBLANK関数</a>との違い、<a href="https://mashukabu.com/excel-function-howto-use-map/">MAP関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-reduce/">REDUCE関数</a>との組み合わせ、対応バージョンやよくあるエラーの対処法、実務でよくある質問までカバーします。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ISOMITTED関数とは？LAMBDAの引数省略を判定するExcel関数</a><ol><li><a href="#toc2" tabindex="0">構文</a></li><li><a href="#toc3" tabindex="0">戻り値</a></li><li><a href="#toc4" tabindex="0">対応バージョン</a></li></ol></li><li><a href="#toc5" tabindex="0">ISOMITTED関数の基本的な使い方｜IFと組み合わせて既定値を返す</a><ol><li><a href="#toc6" tabindex="0">例: 税込価格を計算するカスタム関数</a></li><li><a href="#toc7" tabindex="0">例: 税率を明示的に渡す場合</a></li><li><a href="#toc8" tabindex="0">結果の比較</a></li></ol></li><li><a href="#toc9" tabindex="0">複数の引数を省略可能にする実務パターン</a><ol><li><a href="#toc10" tabindex="0">例: 文字列を結合するカスタム関数（区切り文字と接頭辞をオプションに）</a></li><li><a href="#toc11" tabindex="0">引数を一部だけ指定する場合</a></li><li><a href="#toc12" tabindex="0">LET と組み合わせる利点</a></li></ol></li><li><a href="#toc13" tabindex="0">実務で使える応用パターン3選</a><ol><li><a href="#toc14" tabindex="0">パターン1: 端数処理の方法を選べる丸め関数</a></li><li><a href="#toc15" tabindex="0">パターン2: 範囲の合計に「条件」と「割引率」を後付けできる関数</a></li><li><a href="#toc16" tabindex="0">パターン3: MAP・REDUCEと組み合わせて配列処理を柔軟にする</a></li></ol></li><li><a href="#toc17" tabindex="0">名前付き関数として保存して再利用する</a><ol><li><a href="#toc18" tabindex="0">保存手順</a></li><li><a href="#toc19" tabindex="0">使い方</a></li><li><a href="#toc20" tabindex="0">注意点</a></li></ol></li><li><a href="#toc21" tabindex="0">ISOMITTED関数とISBLANK関数の違い・使い分け</a><ol><li><a href="#toc22" tabindex="0">機能の比較</a></li><li><a href="#toc23" tabindex="0">動作の違い（具体例）</a></li><li><a href="#toc24" tabindex="0">使い分けの基準</a></li></ol></li><li><a href="#toc25" tabindex="0">ISOMITTED関数のよくあるエラーと対処法</a><ol><li><a href="#toc26" tabindex="0">#NAME? エラー</a></li><li><a href="#toc27" tabindex="0">#CALC! エラー</a></li><li><a href="#toc28" tabindex="0">#VALUE! エラー</a></li></ol></li><li><a href="#toc29" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc30" tabindex="0">Q1. ISOMITTEDは省略できる引数の「位置」に制限はありますか？</a></li><li><a href="#toc31" tabindex="0">Q2. ISOMITTEDをIFS関数やSWITCH関数と組み合わせても問題ありませんか？</a></li><li><a href="#toc32" tabindex="0">Q3. ISOMITTEDで判定したあと、未指定の引数に「セルの値」を既定値として使うことはできますか？</a></li></ol></li><li><a href="#toc33" tabindex="0">まとめ｜ISOMITTED関数で省略可能引数つきカスタム関数を作る</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ISOMITTED関数とは？LAMBDAの引数省略を判定するExcel関数</span></h2>



<p class="wp-block-paragraph">ISOMITTED関数は、LAMBDA関数の引数が省略されたかどうかを <code>TRUE</code> / <code>FALSE</code> で返す関数です。LAMBDA関数の中でしか意味を持たない、特殊な用途の関数です。</p>



<h3 class="wp-block-heading"><span id="toc2">構文</span></h3>



<pre class="wp-block-code"><code>=ISOMITTED(argument)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>説明</th></tr></thead><tbody><tr><td>argument</td><td>LAMBDA関数の引数。チェックしたい引数名をそのまま渡す</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc3">戻り値</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>状態</th><th>戻り値</th></tr></thead><tbody><tr><td>引数が省略されている</td><td><code>TRUE</code></td></tr><tr><td>引数が指定されている</td><td><code>FALSE</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは、ISOMITTEDは <strong>LAMBDA関数の引数に対してのみ</strong> 動作することです。通常のセル参照（例: <code>=ISOMITTED(A1)</code>）に対して使っても、正しい結果は返りません。<code>#CALC!</code> エラーや <code>FALSE</code> 固定になります。</p>



<h3 class="wp-block-heading"><span id="toc4">対応バージョン</span></h3>



<ul class="wp-block-list"><li>Microsoft 365（Windows / Mac / Web）</li><li>Excel 2024（永続ライセンス版）</li><li>Excel for the web</li></ul>



<p class="wp-block-paragraph">Excel 2021 以前のバージョンでは使えません。<code>#NAME?</code> エラーになります。LAMBDA関数自体が Microsoft 365 と Excel 2024 で導入された機能です。ISOMITTEDもそれに準じます。LAMBDAやLETの基礎から学びたい方は、<a href="https://mashukabu.com/excel-let-lambda-function-guide/">LET・LAMBDA関数で自作関数を作る完全ガイド</a>も参考になります。</p>



<h2 class="wp-block-heading"><span id="toc5">ISOMITTED関数の基本的な使い方｜IFと組み合わせて既定値を返す</span></h2>



<p class="wp-block-paragraph">ISOMITTED関数の最も基本的な使い方は、IF関数との組み合わせです。「引数が省略されたら既定値を使う」というパターンを実装します。</p>



<h3 class="wp-block-heading"><span id="toc6">例: 税込価格を計算するカスタム関数</span></h3>



<p class="wp-block-paragraph">税込価格を計算するLAMBDA関数を作ります。第2引数の税率を省略したら自動で 10% を適用する仕様にします。</p>



<pre class="wp-block-code"><code>=LAMBDA(price,rate,
  IF(ISOMITTED(rate), price*1.10, price*(1+rate))
)(1000)</code></pre>



<p class="wp-block-paragraph">第2引数 <code>rate</code> を省略しているので、<code>ISOMITTED(rate)</code> が <code>TRUE</code> を返します。IFの分岐により <code>1000*1.10 = 1100</code> が結果として返ります。</p>



<h3 class="wp-block-heading"><span id="toc7">例: 税率を明示的に渡す場合</span></h3>



<pre class="wp-block-code"><code>=LAMBDA(price,rate,
  IF(ISOMITTED(rate), price*1.10, price*(1+rate))
)(1000, 0.08)</code></pre>



<p class="wp-block-paragraph">第2引数に <code>0.08</code>（8%）を渡しています。<code>ISOMITTED(rate)</code> は <code>FALSE</code> を返すため、IFの偽の側 <code>1000*1.08 = 1080</code> が結果になります。</p>



<h3 class="wp-block-heading"><span id="toc8">結果の比較</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th></tr></thead><tbody><tr><td><code>=LAMBDA(price,rate, IF(ISOMITTED(rate), price<em>1.10, price</em>(1+rate)))(1000)</code></td><td>1100</td></tr><tr><td><code>=LAMBDA(price,rate, IF(ISOMITTED(rate), price<em>1.10, price</em>(1+rate)))(1000, 0.08)</code></td><td>1080</td></tr><tr><td><code>=LAMBDA(price,rate, IF(ISOMITTED(rate), price<em>1.10, price</em>(1+rate)))(1000, 0.05)</code></td><td>1050</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">このように、引数の省略可否をISOMITTEDで判定し、IFで既定値と明示値を切り替えるのが基本パターンです。</p>



<h2 class="wp-block-heading"><span id="toc9">複数の引数を省略可能にする実務パターン</span></h2>



<p class="wp-block-paragraph">複数の引数をそれぞれ独立して省略可能にすることもできます。各引数ごとにISOMITTEDで個別にチェックし、IFで分岐します。</p>



<h3 class="wp-block-heading"><span id="toc10">例: 文字列を結合するカスタム関数（区切り文字と接頭辞をオプションに）</span></h3>



<pre class="wp-block-code"><code>=LAMBDA(text1,text2,sep,prefix,
  LET(
    s, IF(ISOMITTED(sep), &quot; &quot;, sep),
    p, IF(ISOMITTED(prefix), &quot;&quot;, prefix),
    p &amp; text1 &amp; s &amp; text2
  )
)(&quot;Excel&quot;,&quot;関数&quot;)</code></pre>



<p class="wp-block-paragraph">第3引数 <code>sep</code>（区切り文字）と第4引数 <code>prefix</code>（接頭辞）を両方省略すると、半角スペース区切り・接頭辞なしで結合されます。結果は <code>Excel 関数</code> になります。</p>



<h3 class="wp-block-heading"><span id="toc11">引数を一部だけ指定する場合</span></h3>



<pre class="wp-block-code"><code>=LAMBDA(text1,text2,sep,prefix,
  LET(
    s, IF(ISOMITTED(sep), &quot; &quot;, sep),
    p, IF(ISOMITTED(prefix), &quot;&quot;, prefix),
    p &amp; text1 &amp; s &amp; text2
  )
)(&quot;Excel&quot;,&quot;関数&quot;,&quot;-&quot;)</code></pre>



<p class="wp-block-paragraph">第3引数だけ <code>-</code> を指定します。結果は <code>Excel-関数</code> になります。第4引数は省略のままなので、接頭辞は付きません。</p>



<h3 class="wp-block-heading"><span id="toc12">LET と組み合わせる利点</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-let/">LET関数</a>で中間変数（<code>s</code>, <code>p</code>）を定義することで、IFの分岐結果を一度だけ計算して再利用できます。可読性も上がるため、LAMBDA + ISOMITTEDの組み合わせではLETを併用するのが定石です。</p>



<h2 class="wp-block-heading"><span id="toc13">実務で使える応用パターン3選</span></h2>



<p class="wp-block-paragraph">ISOMITTEDは、ちょっとした自作関数を「使いやすく」するのに非常に有効です。実務でよく使う応用パターンを3つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン1: 端数処理の方法を選べる丸め関数</span></h3>



<p class="wp-block-paragraph">金額計算で「四捨五入・切り上げ・切り捨て」を切り替えたい場面は多いです。第2引数を省略したら四捨五入、<code>"up"</code> / <code>"down"</code> を指定したらそれぞれ切り上げ・切り捨てにする関数を作ります。</p>



<pre class="wp-block-code"><code>=LAMBDA(value,mode,
  LET(
    m, IF(ISOMITTED(mode), &quot;round&quot;, mode),
    IF(m=&quot;up&quot;, ROUNDUP(value,0),
      IF(m=&quot;down&quot;, ROUNDDOWN(value,0), ROUND(value,0)))
  )
)(1234.5,&quot;up&quot;)</code></pre>



<p class="wp-block-paragraph"><code>1234.5</code> を切り上げて <code>1235</code> を返します。省略時は四捨五入になるので、普段使いは <code>=丸め(1234.5)</code> で済みます。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン2: 範囲の合計に「条件」と「割引率」を後付けできる関数</span></h3>



<p class="wp-block-paragraph">販売データから合計金額を出すとき、「特定の商品だけ集計したい」「割引率を後から差し込みたい」というニーズがあります。両方を省略可能にしておくと、1つの関数で複数のレポートに使い回せます。</p>



<pre class="wp-block-code"><code>=LAMBDA(amounts,product_col,product_name,discount,
  LET(
    base, IF(ISOMITTED(product_col), SUM(amounts),
              SUMIF(product_col, product_name, amounts)),
    rate, IF(ISOMITTED(discount), 0, discount),
    base * (1 - rate)
  )
)(B2:B100, A2:A100, &quot;Excel本&quot;, 0.1)</code></pre>



<p class="wp-block-paragraph">商品列・商品名を省略すれば全合計、指定すれば商品別合計、さらに割引率を渡せば適用後の金額が出ます。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン3: MAP・REDUCEと組み合わせて配列処理を柔軟にする</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-map/">MAP関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-reduce/">REDUCE関数</a>に渡すLAMBDA内でもISOMITTEDは使えます。たとえば「配列の各要素に係数をかけるが、係数を省略したら何もしない」関数です。</p>



<pre class="wp-block-code"><code>=LAMBDA(arr,factor,
  MAP(arr, LAMBDA(x,
    IF(ISOMITTED(factor), x, x*factor)
  ))
)(A1:A5, 2)</code></pre>



<p class="wp-block-paragraph"><code>A1:A5</code> の各値を2倍にして返します。第2引数を省略すれば元の値をそのまま返すので、テスト用と本番用で同じ関数が使えます。配列全体をスキャンするなら<a href="https://mashukabu.com/excel-function-howto-use-scan/">SCAN関数</a>、行・列単位で処理するなら<a href="https://mashukabu.com/excel-function-howto-use-byrow/">BYROW関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-bycol/">BYCOL関数</a>と組み合わせるのも有効です。</p>



<h2 class="wp-block-heading"><span id="toc17">名前付き関数として保存して再利用する</span></h2>



<p class="wp-block-paragraph">LAMBDA + ISOMITTEDで作った関数は、Excelの「名前の管理」機能で名前を付けて保存できます。保存後は普通の関数のように使えます。</p>



<h3 class="wp-block-heading"><span id="toc18">保存手順</span></h3>



<ol class="wp-block-list"><li>リボンの「数式」タブ →「名前の管理」→「新規作成」をクリック</li><li>「名前」欄に関数名を入力（例: <code>税込価格</code>）</li><li>「参照範囲」欄に LAMBDA 式を入力</li></ol>



<pre class="wp-block-code"><code>   =LAMBDA(price,rate, IF(ISOMITTED(rate), price*1.10, price*(1+rate)))</code></pre>



<ol class="wp-block-list"><li>「OK」をクリックして保存</li></ol>



<h3 class="wp-block-heading"><span id="toc19">使い方</span></h3>



<p class="wp-block-paragraph">保存後は、ワークブック全体で次のように使えます。</p>



<pre class="wp-block-code"><code>=税込価格(1000)
=税込価格(1000, 0.08)</code></pre>



<p class="wp-block-paragraph">第2引数は省略可能です。省略時は 10%、指定時はその税率が使われます。VBAでユーザー定義関数を作る場合と比べて、配布が簡単です。ファイルに埋め込まれるため、セキュリティ警告も出ません。</p>



<h3 class="wp-block-heading"><span id="toc20">注意点</span></h3>



<ul class="wp-block-list"><li>名前付き関数はワークブック単位で保存されます。別ファイルでは使えません</li><li>共有する場合はテンプレートとして配布するか、相手にも同じ名前付き関数を作成してもらう必要があります</li><li>名前付き関数の作り方の全体像は<a href="https://mashukabu.com/excel-let-lambda-function-guide/">LET・LAMBDA関数で自作関数を作る完全ガイド</a>で詳しく紹介しています</li></ul>



<h2 class="wp-block-heading"><span id="toc21">ISOMITTED関数とISBLANK関数の違い・使い分け</span></h2>



<p class="wp-block-paragraph">ISOMITTEDと似た判定をする関数に<a href="https://mashukabu.com/excel-function-howto-use-isblank/">ISBLANK関数</a>があります。役割がまったく異なるため、混同しないよう整理しておきます。</p>



<h3 class="wp-block-heading"><span id="toc22">機能の比較</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>判定対象</th><th>使える場所</th></tr></thead><tbody><tr><td>ISOMITTED</td><td>LAMBDAの引数が省略されたか</td><td>LAMBDA関数の本体内のみ</td></tr><tr><td>ISBLANK</td><td>セルが空白（未入力）か</td><td>通常の数式すべて</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc23">動作の違い（具体例）</span></h3>



<p class="wp-block-paragraph">セル A1 が空白の状態で、次の自作関数を呼び出します。</p>



<pre class="wp-block-code"><code>=LAMBDA(x, IF(ISOMITTED(x), &quot;省略&quot;, &quot;指定あり&quot;))(A1)</code></pre>



<p class="wp-block-paragraph">引数 <code>x</code> には A1 の参照が渡されています。そのためISOMITTEDは <code>FALSE</code>（指定あり）を返します。A1 が空白セルでも、引数として渡されている以上「省略されていない」と判定されます。</p>



<p class="wp-block-paragraph">一方、ISBLANKで同じ判定をすると次のようになります。</p>



<pre class="wp-block-code"><code>=LAMBDA(x, IF(ISBLANK(x), &quot;空セル&quot;, &quot;値あり&quot;))(A1)</code></pre>



<p class="wp-block-paragraph">A1 が空白なら ISBLANKは <code>TRUE</code>（空セル）を返します。</p>



<h3 class="wp-block-heading"><span id="toc24">使い分けの基準</span></h3>



<ul class="wp-block-list"><li>「引数自体が渡されたか」を判定したい → ISOMITTED</li><li>「渡された引数の中身が空白か」を判定したい → ISBLANK</li></ul>



<p class="wp-block-paragraph">両方を組み合わせて「省略 or 空セルなら既定値」とすることもできます。</p>



<pre class="wp-block-code"><code>=LAMBDA(x,
  IF(OR(ISOMITTED(x), ISBLANK(x)), &quot;デフォルト値&quot;, x)
)</code></pre>



<h2 class="wp-block-heading"><span id="toc25">ISOMITTED関数のよくあるエラーと対処法</span></h2>



<p class="wp-block-paragraph">ISOMITTEDでエラーが出やすいケースと対処法をまとめます。</p>



<h3 class="wp-block-heading"><span id="toc26">#NAME? エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: ExcelのバージョンがISOMITTEDに対応していない</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: Microsoft 365 または Excel 2024 にアップグレードします。Excel 2021 以前では使用できません。会社の環境でアップグレードできない場合は、VBAでユーザー定義関数を作る方法を検討してください。</p>



<h3 class="wp-block-heading"><span id="toc27">#CALC! エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: ISOMITTEDをLAMBDAの外で使った、またはLAMBDA引数以外の値に対して使った</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: ISOMITTEDは必ずLAMBDA関数の本体内で使ってください。対象は、そのLAMBDAで定義した引数名に限定されます。</p>



<pre class="wp-block-code"><code>=ISOMITTED(A1)</code></pre>



<p class="wp-block-paragraph">このような書き方は動作しません（A1はLAMBDAの引数ではないため）。</p>



<h3 class="wp-block-heading"><span id="toc28">#VALUE! エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: LAMBDA本体の処理が、省略された引数を計算に使ってしまっている</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: ISOMITTEDで先に分岐させ、省略時は引数を直接参照しないようにします。次の例ではエラーになります。</p>



<pre class="wp-block-code"><code>=LAMBDA(price,rate, price*(1+rate))(1000)</code></pre>



<p class="wp-block-paragraph">第2引数 <code>rate</code> を省略しているのに、本体で <code>rate</code> を計算に使っているためエラーになります。ISOMITTEDで先にチェックする形に書き換えてください。</p>



<pre class="wp-block-code"><code>=LAMBDA(price,rate, IF(ISOMITTED(rate), price*1.10, price*(1+rate)))(1000)</code></pre>



<h2 class="wp-block-heading"><span id="toc29">よくある質問（FAQ）</span></h2>



<h3 class="wp-block-heading"><span id="toc30">Q1. ISOMITTEDは省略できる引数の「位置」に制限はありますか？</span></h3>



<p class="wp-block-paragraph">第1引数だけ省略して第2引数を指定する、といった「途中省略」はできません。Excelの関数呼び出しは位置引数のため、後ろから順に省略するのが基本です。<code>=関数(値1,,値3)</code> のように途中の引数だけ空にすると、<code>#VALUE!</code> エラーや想定外の挙動になることがあります。実務的には「省略可能にしたい引数は末尾に並べる」のが安全な設計です。</p>



<h3 class="wp-block-heading"><span id="toc31">Q2. ISOMITTEDをIFS関数やSWITCH関数と組み合わせても問題ありませんか？</span></h3>



<p class="wp-block-paragraph">問題ありません。IFを多段にネストすると可読性が落ちるため、分岐が3つ以上ある場合はIFSやSWITCHのほうがすっきり書けます。たとえば「引数が省略 → A、<code>"high"</code> → B、<code>"low"</code> → C」のような分岐は、<code>IFS(ISOMITTED(x), A, x="high", B, x="low", C)</code> の形で素直に表現できます。</p>



<h3 class="wp-block-heading"><span id="toc32">Q3. ISOMITTEDで判定したあと、未指定の引数に「セルの値」を既定値として使うことはできますか？</span></h3>



<p class="wp-block-paragraph">できます。LAMBDA本体で、IFの真側に直接セル参照を書けば、省略時にそのセル値が使われます。たとえば <code>IF(ISOMITTED(rate), Sheet1!$B$1, rate)</code> のように書くと、<code>Sheet1!$B$1</code> に入っている既定税率が省略時の値になります。設定値を1か所にまとめておくと、後からの変更が楽になります。</p>



<h2 class="wp-block-heading"><span id="toc33">まとめ｜ISOMITTED関数で省略可能引数つきカスタム関数を作る</span></h2>



<p class="wp-block-paragraph">ExcelのISOMITTED関数は、LAMBDA関数で定義した引数が省略されたかを <code>TRUE</code> / <code>FALSE</code> で返す関数です。IF関数と組み合わせれば、引数を省略したときに既定値を返す「省略可能引数つきカスタム関数」をVBAなしで作れます。</p>



<p class="wp-block-paragraph">ポイントを整理します。</p>



<ul class="wp-block-list"><li>ISOMITTEDはLAMBDAの引数に対してのみ動作する（通常セル参照には使えない）</li><li>基本パターンは <code>IF(ISOMITTED(引数), 既定値, 通常処理)</code></li><li>複数の引数を独立して省略チェックできる（<a href="https://mashukabu.com/excel-function-howto-use-let/">LET</a>と組み合わせるのが定石）</li><li><a href="https://mashukabu.com/excel-function-howto-use-map/">MAP</a>・<a href="https://mashukabu.com/excel-function-howto-use-reduce/">REDUCE</a>・<a href="https://mashukabu.com/excel-function-howto-use-scan/">SCAN</a>など配列処理関数とも相性がよい</li><li>「名前の管理」で<a href="https://mashukabu.com/excel-function-howto-use-lambda/">LAMBDA</a>に名前を付ければ、再利用可能なカスタム関数になる</li><li><a href="https://mashukabu.com/excel-function-howto-use-isblank/">ISBLANK</a>との違い: ISOMITTEDは「引数が渡されたか」、ISBLANKは「中身が空白か」を判定する</li><li>対応バージョンはMicrosoft 365とExcel 2024のみ</li></ul>



<p class="wp-block-paragraph">LAMBDA関数でカスタム関数を作るとき、ISOMITTEDを使えば実用性が一段上がります。VBAに頼らずExcelだけで柔軟な自作関数を組みたい場面で活躍する関数です。ぜひ一度試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-isomitted/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのLET関数の使い方｜変数定義で数式を簡潔にする実務パターン6選</title>
		<link>https://mashukabu.com/spreadsheet-let-function/</link>
					<comments>https://mashukabu.com/spreadsheet-let-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 22 Mar 2026 01:12:21 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[LET]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[変数]]></category>
		<category><![CDATA[数式簡潔化]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4969</guid>

					<description><![CDATA[GoogleスプレッドシートのLET関数の使い方を基本から解説。変数定義で数式を簡潔にする方法、IF+VLOOKUP整理・FILTER+SORT連携など実務パターン6選、パフォーマンス改善の仕組み、Excelとの違いまで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「この数式、長すぎて何をやってるかわからない…」「同じVLOOKUPを3回も書いてしまった」。複雑な数式を組んでいると、こんな場面によく出くわしますよね。</p>



<p class="wp-block-paragraph"><strong>LET関数を使うと、数式の中で「変数」を定義して繰り返し使い回せます。</strong> 同じ計算を何度も書かなくてよくなるうえ、変数名を付けることで数式の意味が一目でわかるようになります。</p>



<p class="wp-block-paragraph">この記事では、LET関数の基本構文から、実務で役立つパターン6選、パフォーマンス改善の仕組み、よくあるエラーの対処法まで解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのLET関数とは？</a></li><li><a href="#toc2" tabindex="0">LET関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">LET関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">変数を1つ定義する</a></li><li><a href="#toc7" tabindex="0">変数を複数定義する</a></li><li><a href="#toc8" tabindex="0">変数に数式の結果を代入する</a></li></ol></li><li><a href="#toc9" tabindex="0">LET関数の実務パターン6選</a><ol><li><a href="#toc10" tabindex="0">パターン1: IF + VLOOKUP 数式をLETで整理する</a></li><li><a href="#toc11" tabindex="0">パターン2: 同じ計算を繰り返さずパフォーマンスを改善する</a></li><li><a href="#toc12" tabindex="0">パターン3: FILTER + SORT の組み合わせ</a></li><li><a href="#toc13" tabindex="0">パターン4: IFS関数の条件をLETで整理する</a></li><li><a href="#toc14" tabindex="0">パターン5: 中間計算を変数にして段階的に処理する</a></li><li><a href="#toc15" tabindex="0">パターン6: XMATCH + INDEX の動的参照をLETで整理する</a></li></ol></li><li><a href="#toc16" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc17" tabindex="0">ExcelとGoogleスプレッドシートの違い</a></li><li><a href="#toc18" tabindex="0">よくある質問</a><ol><li><a href="#toc19" tabindex="0">LET関数とLAMBDA関数の違いは何ですか？</a></li><li><a href="#toc20" tabindex="0">変数に範囲（配列）を代入できますか？</a></li><li><a href="#toc21" tabindex="0">引数の最大数はありますか？</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのLET関数とは？</span></h2>



<p class="wp-block-paragraph">LET関数（読み方: れっと）は、<strong>数式の中で変数を定義し、その変数を使って計算できる関数</strong>です。名前は英語の「let（〜を〜とする）」からきています。</p>



<p class="wp-block-paragraph">たとえば <code>VLOOKUP(A2,商品マスタ!A:C,3,FALSE)</code> の結果を何度も使いたいとします。LET関数で <code>price</code> という変数に入れておけば、数式の中で <code>price</code> と書くだけで参照できます。</p>



<p class="wp-block-paragraph">LET関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>数式の中で変数（名前と値のペア）を定義する</li><li>同じ計算を何度も書かずに済むので数式が短くなる</li><li>変数名を付けることで数式の意味が読み取りやすくなる</li><li>同じ計算は内部的に1回だけ実行されるためパフォーマンスが向上する</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>LET関数はGoogleスプレッドシートの全アカウントで使えます。ExcelにもLET関数はありますが、Microsoft 365またはExcel 2021以降が必要です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">LET関数の書き方（構文と引数）</span></h2>



<h3 class="wp-block-heading"><span id="toc3">基本構文</span></h3>



<pre class="wp-block-code"><code>=LET(名前1, 値1, [名前2, 値2, ...], 数式)</code></pre>



<p class="wp-block-paragraph">「名前」と「値」をペアで指定し、最後に「数式」を書きます。数式の中で定義した名前を変数として使えるのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc4">引数の説明</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>名前1</td><td>必須</td><td>変数の名前。アルファベット・数字・アンダースコアで構成する</td></tr><tr><td>値1</td><td>必須</td><td>名前1に割り当てる値。セル参照・数式・直接値のいずれも可</td></tr><tr><td>名前2, 値2〜</td><td>任意</td><td>2組目以降の変数定義。最大126組まで指定可能</td></tr><tr><td>数式</td><td>必須</td><td>定義した変数を使った計算式。最後の引数が数式になる</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">変数名にはセル参照と同じ名前（A1やB2など）は使えません。<code>price</code> や <code>total</code> のように、中身がわかる名前を付けておくと読みやすくなりますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>引数の数は必ず <strong>奇数</strong> になります。「名前, 値」のペアが1組以上 + 最後の「数式」で、最低3つです。偶数個を指定するとエラーになるので注意してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">LET関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc6">変数を1つ定義する</span></h3>



<p class="wp-block-paragraph">税込価格を計算する例です。</p>



<pre class="wp-block-code"><code>=LET(tax, 1.1, A2 * tax)</code></pre>



<p class="wp-block-paragraph"><code>tax</code> という変数に <code>1.1</code> を代入し、A2 に掛けています。A2 が 1000 なら結果は 1100 です。</p>



<h3 class="wp-block-heading"><span id="toc7">変数を複数定義する</span></h3>



<p class="wp-block-paragraph">本体価格と税率をそれぞれ変数にして、税込価格を計算する例です。</p>



<pre class="wp-block-code"><code>=LET(price, A2, tax, 1.1, price * tax)</code></pre>



<p class="wp-block-paragraph"><code>price</code> に A2 の値、<code>tax</code> に 1.1 を代入し、最後の <code>price * tax</code> で計算しています。</p>



<p class="wp-block-paragraph">変数を複数使うと「どの値が何を意味しているか」が明確になります。数式だけ見ても意味がわかるのがLET関数の大きなメリットですよ。</p>



<h3 class="wp-block-heading"><span id="toc8">変数に数式の結果を代入する</span></h3>



<p class="wp-block-paragraph">変数の「値」には数式を直接書くこともできます。</p>



<pre class="wp-block-code"><code>=LET(total, SUM(B2:B10), avg, total / COUNTA(B2:B10), avg)</code></pre>



<p class="wp-block-paragraph"><code>total</code> に合計値を代入し、<code>avg</code> に平均値を代入しています。<code>total</code> を <code>avg</code> の計算で再利用しているのがポイントです。</p>



<p class="wp-block-paragraph">先に定義した変数を後の変数で使えるので、段階的に計算を組み立てられます。</p>



<h2 class="wp-block-heading"><span id="toc9">LET関数の実務パターン6選</span></h2>



<h3 class="wp-block-heading"><span id="toc10">パターン1: IF + VLOOKUP 数式をLETで整理する</span></h3>



<p class="wp-block-paragraph">LET関数が最も威力を発揮するのは、同じ計算が数式内で繰り返されるケースです。</p>



<p class="wp-block-paragraph"><strong>Before（LETなし）:</strong></p>



<pre class="wp-block-code"><code>=IF(VLOOKUP(A2,商品マスタ!A:C,3,FALSE)&gt;=1000, VLOOKUP(A2,商品マスタ!A:C,3,FALSE)*0.9, VLOOKUP(A2,商品マスタ!A:C,3,FALSE))</code></pre>



<p class="wp-block-paragraph">同じ <code>VLOOKUP</code> が3回も登場していて読みにくいですよね。</p>



<p class="wp-block-paragraph"><strong>After（LETあり）:</strong></p>



<pre class="wp-block-code"><code>=LET(price, VLOOKUP(A2,商品マスタ!A:C,3,FALSE), IF(price&gt;=1000, price*0.9, price))</code></pre>



<p class="wp-block-paragraph">VLOOKUPの結果を <code>price</code> に1回だけ代入しています。数式の長さが半分以下になり、何をしているかも一目でわかります。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: 同じ計算を繰り返さずパフォーマンスを改善する</span></h3>



<p class="wp-block-paragraph">LET関数を使うと、変数に代入した計算は内部的に <strong>1回だけ</strong> 実行されます。</p>



<p class="wp-block-paragraph">先ほどのBefore版ではVLOOKUPが3回実行されますが、After版のLET関数では1回で済みます。データ量が多いシートでは、この差が処理速度に影響してきます。数千行のデータでVLOOKUPやSUMIFSを繰り返している場合は要注意ですよ。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: FILTER + SORT の組み合わせ</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>の結果を変数に入れて、さらに加工する例です。</p>



<pre class="wp-block-code"><code>=LET(filtered, FILTER(A2:C20, B2:B20=&quot;東京&quot;), SORT(filtered, 3, FALSE))</code></pre>



<p class="wp-block-paragraph">東京のデータだけをFILTERで抽出し、その結果を3列目（売上など）の降順でソートしています。FILTERとSORTを別々に書くと入れ子が深くなりますが、LET関数で段階的に処理すると読みやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: IFS関数の条件をLETで整理する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS関数</a>で複数条件を判定する数式をLETで整理する例です。</p>



<pre class="wp-block-code"><code>=LET(score, B2, IFS(score&gt;=90,&quot;S&quot;, score&gt;=70,&quot;A&quot;, score&gt;=50,&quot;B&quot;, TRUE,&quot;C&quot;))</code></pre>



<p class="wp-block-paragraph">B2 を <code>score</code> という変数に代入しています。IFS関数の中で <code>score</code> を4回参照していますが、変数名のおかげで「何を判定しているか」が明確です。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: 中間計算を変数にして段階的に処理する</span></h3>



<p class="wp-block-paragraph">複数ステップの計算を変数で整理する例です。</p>



<pre class="wp-block-code"><code>=LET(
  raw_total, SUMIF(A:A, &quot;東京&quot;, C:C),
  target_count, COUNTIF(A:A, &quot;東京&quot;),
  avg_sales, raw_total / target_count,
  avg_sales * 1.05
)</code></pre>



<p class="wp-block-paragraph">東京の合計売上を <code>raw_total</code>、件数を <code>target_count</code>、平均を <code>avg_sales</code> と段階的に定義し、最後に5%増しの値を返しています。計算の流れが一目でわかりますよ。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン6: XMATCH + INDEX の動的参照をLETで整理する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-xmatch-function/">XMATCH関数</a>と<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>の組み合わせをLETで整理する例です。</p>



<pre class="wp-block-code"><code>=LET(
  row_pos, XMATCH(G2, A:A),
  col_pos, XMATCH(H2, 1:1),
  INDEX(A:Z, row_pos, col_pos)
)</code></pre>



<p class="wp-block-paragraph">行方向・列方向のマッチ位置をそれぞれ変数に入れてから、INDEXで値を取り出しています。変数名がないと何を意味するのか読み解くのが大変になりますよ。</p>



<h2 class="wp-block-heading"><span id="toc16">よくあるエラーと対処法</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#NAME? エラーが出る</td><td>変数名にセル参照と同じ名前（A1, B2など）を使っている</td><td>セル参照と重複しない名前に変更する（例: <code>val</code>, <code>x</code>）</td></tr><tr><td>#NAME? エラーが出る</td><td>変数名にスペースや記号を含めている</td><td>アルファベット・数字・アンダースコアのみ使用する</td></tr><tr><td>#VALUE! エラーが出る</td><td>引数の数が偶数になっている（数式が抜けている）</td><td>最後に数式を追加する。引数の数は奇数が正しい</td></tr><tr><td>変数が認識されない</td><td>数式の中でスペルミスがある</td><td>変数名の大文字小文字を含めて正確に一致させる</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>変数名はシンプルに短く付けるのがおすすめです。<code>x</code>, <code>val</code>, <code>price</code> のように意味がわかる最小限の名前にしておくと、数式全体が読みやすくなります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc17">ExcelとGoogleスプレッドシートの違い</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Excel</th><th>Googleスプレッドシート</th></tr></thead><tbody><tr><td>対応バージョン</td><td>Microsoft 365 / Excel 2021以降</td><td>全アカウント対応</td></tr><tr><td>構文</td><td>=LET(名前1, 値1, …, 数式)</td><td>=LET(名前1, 値1, …, 数式)</td></tr><tr><td>変数ペアの上限</td><td>126組</td><td>126組</td></tr><tr><td>パフォーマンス最適化</td><td>あり（1回だけ計算）</td><td>あり（1回だけ計算）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">構文も動作もほぼ同じです。Excelのファイルをスプレッドシートで開いてもLET関数はそのまま動作します。ただし、Excel 2021より前のバージョンでは <code>#NAME?</code> エラーになります。</p>



<h2 class="wp-block-heading"><span id="toc18">よくある質問</span></h2>



<h3 class="wp-block-heading"><span id="toc19">LET関数とLAMBDA関数の違いは何ですか？</span></h3>



<p class="wp-block-paragraph">LET関数は「数式の中で変数を定義する」関数です。<a href="https://mashukabu.com/spreadsheet-lambda-function/">LAMBDA関数</a>は「再利用可能なカスタム関数を定義する」関数で、別のセルから呼び出せる点が異なります。「数式を読みやすくしたい」ならLET、「同じ処理を複数の場所で使い回したい」ならLAMBDAが適しています。</p>



<h3 class="wp-block-heading"><span id="toc20">変数に範囲（配列）を代入できますか？</span></h3>



<p class="wp-block-paragraph">できます。<code>=LET(data, A2:C20, SORT(data, 1))</code> のように、セル範囲やFILTER関数の結果など配列を変数に代入して使えます。</p>



<h3 class="wp-block-heading"><span id="toc21">引数の最大数はありますか？</span></h3>



<p class="wp-block-paragraph">名前と値のペアを最大126組（252引数）と、最後の数式を合わせた253引数まで指定できます。実務ではここまで使うことはほとんどありませんが、上限として覚えておくとよいですね。</p>



<h2 class="wp-block-heading"><span id="toc22">まとめ</span></h2>



<p class="wp-block-paragraph">LET関数は、数式の中で変数を定義して再利用できる関数です。</p>



<ul class="wp-block-list"><li>構文は <code>=LET(名前1, 値1, ..., 数式)</code> で、名前と値をペアで指定する</li><li>同じ計算を何度も書かなくて済むので、数式が短くなる</li><li>変数名を付けることで、数式の意味が読み取りやすくなる</li><li>同じ計算は内部的に1回だけ実行されるため、パフォーマンスも向上する</li><li>引数の数は必ず奇数。偶数だとエラーになる</li><li>変数名にセル参照と同じ名前（A1など）は使えない</li></ul>



<p class="wp-block-paragraph">まずは <code>=LET(x, 10, x*2)</code> で「変数 x に10を入れて2倍 = 20」から試してみてください。慣れてきたら、長いVLOOKUPやFILTER式を変数で整理することから始めると、数式の見通しが格段によくなりますよ。</p>



<p class="wp-block-paragraph">関連記事: <a href="https://mashukabu.com/spreadsheet-lambda-function/">スプレッドシートのLAMBDA関数の使い方</a> / <a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方</a> / <a href="https://mashukabu.com/spreadsheet-xmatch-function/">スプレッドシートのXMATCH関数の使い方</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-let-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
