<?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>完全一致 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%e5%ae%8c%e5%85%a8%e4%b8%80%e8%87%b4/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Mon, 18 May 2026 14:04:16 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>完全一致 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのSWITCH関数の使い方｜ケース分岐をIFネストよりスッキリ書く実務7パターン</title>
		<link>https://mashukabu.com/spreadsheet-switch-function/</link>
					<comments>https://mashukabu.com/spreadsheet-switch-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:30:00 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ARRAYFORMULA]]></category>
		<category><![CDATA[CHOOSE関数]]></category>
		<category><![CDATA[IFS関数]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[SWITCH関数]]></category>
		<category><![CDATA[ステータス変換]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[完全一致]]></category>
		<category><![CDATA[条件分岐]]></category>
		<category><![CDATA[部署コード変換]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4751</guid>

					<description><![CDATA[スプレッドシートのSWITCH関数で「部署コード→部署名」「ステータスコード→ラベル」のような完全一致のケース分岐をスッキリ書く方法を徹底解説。基本構文から、曜日変換・進捗ラベル・配列対応・既定値の設定・ARRAYFORMULAでの一括判定まで実務7パターンを早見表とサンプル付きで紹介。IF/IFS/CHOOSE関数との使い分けや#N/A・#VALUE!エラーの対処法もまとめます。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「部署コードを部署名に変換したい」「ステータスコードに応じてラベルを出し分けたい」。スプレッドシートの一覧表でよくある作業ですよね。こんなときに <a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a> のネストで書くと、条件が増えるたびに括弧が深くなって、後から修正するのも一苦労です。</p>



<p class="wp-block-paragraph">そんなときに便利なのが <strong>SWITCH関数</strong> です。判定したい値と、それに対する結果をペアで並べていくだけで、IFネストよりずっと読みやすいケース分岐が書けます。プログラミングの<code>switch</code>文と同じ発想なので、エンジニア出身の方には馴染みのある関数ですね。</p>



<p class="wp-block-paragraph">この記事ではSWITCH関数の基本構文から、部署コード変換・曜日名変換・進捗ラベル表示・<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA</a>による一括判定など、実務でそのまま使える7パターンを早見表付きで紹介します。<code>#N/A</code>や<code>#VALUE!</code>エラーの対処法、<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>・<a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS関数</a>・<a href="https://mashukabu.com/spreadsheet-choose-function/">CHOOSE関数</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">スプレッドシートのSWITCH関数とは？値の完全一致でケース分岐する関数</a><ol><li><a href="#toc2" tabindex="0">SWITCH関数で何ができる？</a></li></ol></li><li><a href="#toc3" tabindex="0">SWITCH関数の構文と引数</a><ol><li><a href="#toc4" tabindex="0">基本構文</a></li><li><a href="#toc5" tabindex="0">引数の説明</a></li><li><a href="#toc6" tabindex="0">SWITCH関数の動作イメージ早見表</a></li></ol></li><li><a href="#toc7" tabindex="0">SWITCH関数の基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">文字列のコードでケース分岐する</a></li><li><a href="#toc9" tabindex="0">数値のコードでケース分岐する</a></li><li><a href="#toc10" tabindex="0">数式の結果に対してケース分岐する</a></li><li><a href="#toc11" tabindex="0">基本パターンの早見表</a></li></ol></li><li><a href="#toc12" tabindex="0">実務で使えるSWITCH関数の活用パターン7選</a><ol><li><a href="#toc13" tabindex="0">パターン1: 部署コードから部署名を自動変換する（総務・人事向け）</a></li><li><a href="#toc14" tabindex="0">パターン2: 申請ステータスを処理コメントに変換する</a></li><li><a href="#toc15" tabindex="0">パターン3: 曜日番号を日本語の曜日名に変換する</a></li><li><a href="#toc16" tabindex="0">パターン4: 進捗ステータスコードを日本語ラベルに変換する（タスク管理向け）</a></li><li><a href="#toc17" tabindex="0">パターン5: 範囲条件の代用としてTRUEパターンで使う（IFSの代わり）</a></li><li><a href="#toc18" tabindex="0">パターン6: 既定値で「該当なし」「未分類」を必ず返すようにする</a></li><li><a href="#toc19" tabindex="0">パターン7: ARRAYFORMULAで列全体を一括変換する（Sheets限定）</a></li></ol></li><li><a href="#toc20" tabindex="0">SWITCH関数のよくあるエラーと対処法</a><ol><li><a href="#toc21" tabindex="0">#N/Aエラー（一致する値がない）の対処法</a></li><li><a href="#toc22" tabindex="0">#VALUE!エラー（引数が不正）の対処法</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">SWITCH関数と似た関数の使い分け</a><ol><li><a href="#toc26" tabindex="0">IFネスト→SWITCH関数への書き換え（Before/After）</a></li><li><a href="#toc27" tabindex="0">SWITCH関数とIFS関数の使い分け</a></li><li><a href="#toc28" tabindex="0">SWITCH関数とCHOOSE関数の使い分け</a></li><li><a href="#toc29" tabindex="0">SWITCH関数とVLOOKUP関数の使い分け</a></li></ol></li><li><a href="#toc30" tabindex="0">SWITCH関数のよくある質問（FAQ）</a></li><li><a href="#toc31" tabindex="0">ExcelのSWITCH関数との違い</a></li><li><a href="#toc32" tabindex="0">まとめ：SWITCH関数で完全一致のケース分岐をスッキリ書こう</a><ol><li><a href="#toc33" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのSWITCH関数とは？値の完全一致でケース分岐する関数</span></h2>



<p class="wp-block-paragraph">SWITCH関数（読み方: スイッチ関数）は、<strong>1つの値を複数の候補と照合し、最初に一致した候補に対応する結果を返す関数</strong>です。関数名はプログラミング言語の<code>switch</code>文に由来していて、「ケース分岐」という考え方をそのまま関数化したものですね。</p>



<p class="wp-block-paragraph">たとえば「部署コードがS01なら営業部、A01なら総務部、F01なら経理部」のように、<strong>値と結果のペアを並べていく</strong>だけで分岐が完成します。IF関数のネストのように <code>IF(... IF(... IF(...)))</code> と入れ子になることがないので、条件が5つ・10個と増えても式が読みやすいままです。</p>



<h3 class="wp-block-heading"><span id="toc2">SWITCH関数で何ができる？</span></h3>



<p class="wp-block-paragraph">SWITCH関数が活躍するのは、おもに次のような場面です。</p>



<ul class="wp-block-list"><li>部署コード・支店コード・商品コードなどの <strong>コード値を表示用のラベルに変換</strong> したいとき</li><li>申請ステータス（「承認」「却下」「保留」）に応じて <strong>コメントやアイコンを出し分け</strong> たいとき</li><li><a href="https://mashukabu.com/spreadsheet-weekday-function/">WEEKDAY関数</a> の結果（1〜7）を <strong>日本語の曜日名に変換</strong> したいとき</li><li>タスクの進捗コード（0〜4）を <strong>「未着手」「進行中」などの日本語ラベル</strong> に変換したいとき</li><li>候補が10個以下で固定されていて、わざわざ<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>で別テーブルを作るほどでもないとき</li></ul>



<p class="wp-block-paragraph">NOTE: SWITCH関数はGoogleスプレッドシートの全バージョンで使えます。Excelでは2019以降またはMicrosoft 365で対応しています。古いExcel（2016以前）と互換性が必要なファイルでは使えないので、その場合はIFネストやVLOOKUPで代用してください。Excel版の詳しい解説は <a href="https://mashukabu.com/excel-function-howto-use-switch/">ExcelのSWITCH関数の使い方</a> もあわせてご覧ください。</p>



<h2 class="wp-block-heading"><span id="toc3">SWITCH関数の構文と引数</span></h2>



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



<pre class="wp-block-code"><code>=SWITCH(式, 値1, 結果1, [値2, 結果2], ..., [既定値])</code></pre>



<p class="wp-block-paragraph">最初に判定したい「式（セル参照や数式）」を1つ書き、その後に <strong>「値, 結果」のペア</strong> を並べていきます。最後の引数を1つだけ余らせると、それが「どの候補にも一致しなかったとき」の <strong>既定値</strong> として扱われます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>式</td><td>必須</td><td>比較対象となるセル参照、数値、文字列、または数式</td></tr><tr><td>値1</td><td>必須</td><td>式と照合する最初の候補</td></tr><tr><td>結果1</td><td>必須</td><td>値1と一致したときに返す値</td></tr><tr><td>値2〜値126</td><td>任意</td><td>追加の候補（最大126ペアまで指定可）</td></tr><tr><td>結果2〜結果126</td><td>任意</td><td>各値に対応する結果</td></tr><tr><td>既定値</td><td>任意</td><td>どの候補にも一致しなかったときに返す値（省略可だが、省略すると<code>#N/A</code>エラー）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">値と結果は必ずセットで指定します。引数を後ろから数えて <strong>奇数番目</strong> が余ったときに、それが既定値として扱われる仕組みです。文字列を値にする場合は <code>"S01"</code> のようにダブルクォーテーションで囲み、数値の場合は囲みません。</p>



<p class="wp-block-paragraph">TIP: 既定値は省略可能ですが、<strong>省略すると一致しなかったときに <code>#N/A</code> エラーが返ります</strong>。実務では「該当なし」「未分類」など意味のある文字列を入れておくと、後から見たときにも安全です。</p>



<h3 class="wp-block-heading"><span id="toc6">SWITCH関数の動作イメージ早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>数式の例</th><th>A2の値</th><th>戻り値</th></tr></thead><tbody><tr><td><code>=SWITCH(A2, "S01", "営業部", "A01", "総務部", "該当なし")</code></td><td>&#8220;S01&#8221;</td><td>営業部</td></tr><tr><td><code>=SWITCH(A2, "S01", "営業部", "A01", "総務部", "該当なし")</code></td><td>&#8220;A01&#8221;</td><td>総務部</td></tr><tr><td><code>=SWITCH(A2, "S01", "営業部", "A01", "総務部", "該当なし")</code></td><td>&#8220;X99&#8221;</td><td>該当なし</td></tr><tr><td><code>=SWITCH(A2, "S01", "営業部", "A01", "総務部")</code></td><td>&#8220;X99&#8221;</td><td>#N/A（既定値なし）</td></tr><tr><td><code>=SWITCH(A2, 1, "S", 2, "A", 3, "B", "未評価")</code></td><td>2</td><td>A</td></tr><tr><td><code>=SWITCH(A2, 1, "S", 2, "A", 3, "B", "未評価")</code></td><td>99</td><td>未評価</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">上から順に値を照合していき、<strong>最初に一致した結果を返したら処理は終了</strong> します。同じ値を複数回書いても、最初に書いた結果しか返らない点に注意してください。</p>



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



<h3 class="wp-block-heading"><span id="toc8">文字列のコードでケース分岐する</span></h3>



<p class="wp-block-paragraph">実務でいちばん多いパターンです。A列に部署コード、B列に変換した部署名を表示するケースで見てみましょう。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;S01&quot;, &quot;営業部&quot;, &quot;A01&quot;, &quot;総務部&quot;, &quot;F01&quot;, &quot;経理部&quot;, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">A2が「S01」なら「営業部」、「A01」なら「総務部」、「F01」なら「経理部」、それ以外なら「該当なし」が返ります。IF関数のネストで同じことを書くと <code>=IF(A2="S01", "営業部", IF(A2="A01", "総務部", IF(A2="F01", "経理部", "該当なし")))</code> になりますが、SWITCH関数なら<strong>「A2=」を3回も繰り返さずに済む</strong>のがメリットです。</p>



<h3 class="wp-block-heading"><span id="toc9">数値のコードでケース分岐する</span></h3>



<p class="wp-block-paragraph">評価ランク（1〜4）を S/A/B/C のラベルに変換するパターンです。数値の場合は値をダブルクォーテーションで囲む必要はありません。</p>



<pre class="wp-block-code"><code>=SWITCH(B2, 1, &quot;S&quot;, 2, &quot;A&quot;, 3, &quot;B&quot;, 4, &quot;C&quot;, &quot;未評価&quot;)</code></pre>



<p class="wp-block-paragraph">B2が「1」なら「S」、「3」なら「B」、範囲外（0や5など）なら「未評価」が返ります。コードが連続した整数（1, 2, 3, &#8230;）なら <a href="https://mashukabu.com/spreadsheet-choose-function/">CHOOSE関数</a> のほうが短く書けますが、コードが「1, 3, 5」のように飛び飛びだったり、「0=未着手」のように0始まりだったりする場合はSWITCH関数の出番です。</p>



<h3 class="wp-block-heading"><span id="toc10">数式の結果に対してケース分岐する</span></h3>



<p class="wp-block-paragraph">引数の「式」には、セル参照だけでなく数式そのものを書くこともできます。たとえば<a href="https://mashukabu.com/spreadsheet-weekday-function/">WEEKDAY関数</a>の結果を日本語の曜日に変換するパターンです。</p>



<pre class="wp-block-code"><code>=SWITCH(WEEKDAY(A2), 1, &quot;日&quot;, 2, &quot;月&quot;, 3, &quot;火&quot;, 4, &quot;水&quot;, 5, &quot;木&quot;, 6, &quot;金&quot;, 7, &quot;土&quot;)</code></pre>



<p class="wp-block-paragraph"><code>WEEKDAY(A2)</code>は1〜7の数値を返すので、その結果を直接SWITCH関数の「式」に渡しています。中間セルに曜日番号を表示する必要がないので、列が増えずスッキリします。</p>



<h3 class="wp-block-heading"><span id="toc11">基本パターンの早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>用途</th><th>既定値の扱い</th></tr></thead><tbody><tr><td><code>=SWITCH(A2, "S01", "営業部", "A01", "総務部", "該当なし")</code></td><td>文字列コード→ラベル変換</td><td>&#8220;該当なし&#8221;</td></tr><tr><td><code>=SWITCH(B2, 1, "S", 2, "A", 3, "B", 4, "C", "未評価")</code></td><td>数値コード→ラベル変換</td><td>&#8220;未評価&#8221;</td></tr><tr><td><code>=SWITCH(WEEKDAY(A2), 1, "日", 2, "月", ..., 7, "土")</code></td><td>数式の結果→ラベル変換</td><td>省略（1〜7で全パターン網羅）</td></tr><tr><td><code>=SWITCH(TRUE, A2>=80, "A", A2>=60, "B", TRUE, "C")</code></td><td>範囲判定の代用（IFSのほうが推奨）</td><td>最後のTRUE</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc12">実務で使えるSWITCH関数の活用パターン7選</span></h2>



<p class="wp-block-paragraph">ここからは、実務でそのまま使えるSWITCH関数の活用パターンを7つ紹介します。「コード変換」「ラベル変換」「曜日変換」「複合条件」「配列対応」など、よくある場面を網羅しているので、自分のケースに近いものから試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン1: 部署コードから部署名を自動変換する（総務・人事向け）</span></h3>



<p class="wp-block-paragraph">社員データの部署コードを、報告書に貼るための読みやすい部署名に変換する場面です。A列に社員名、B列に部署コードが入っているとします。</p>



<pre class="wp-block-code"><code>=SWITCH(B2, &quot;S01&quot;, &quot;営業部&quot;, &quot;A01&quot;, &quot;総務部&quot;, &quot;F01&quot;, &quot;経理部&quot;, &quot;H01&quot;, &quot;人事部&quot;, &quot;IT1&quot;, &quot;情報システム部&quot;, &quot;不明&quot;)</code></pre>



<p class="wp-block-paragraph">候補が10個以下の場合は、SWITCH関数が最もシンプルです。マスタテーブルを別シートに作らずに済むので、軽い変換ならこれで十分ですよ。</p>



<p class="wp-block-paragraph">TIP: 部署コードが20個・30個と増えてくる場合は、別シートにマスタテーブルを作って <a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a> で参照したほうがメンテしやすくなります。「マスタを更新するときに数式を書き換えるかどうか」が分かれ目です。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン2: 申請ステータスを処理コメントに変換する</span></h3>



<p class="wp-block-paragraph">申請管理シートで、ステータス（「承認」「却下」「保留」など）に応じたコメントを表示するパターンです。</p>



<pre class="wp-block-code"><code>=SWITCH(B2, &quot;承認&quot;, &quot;処理完了&quot;, &quot;却下&quot;, &quot;差し戻し対応&quot;, &quot;保留&quot;, &quot;確認待ち&quot;, &quot;取下げ&quot;, &quot;対応不要&quot;, &quot;ステータス不明&quot;)</code></pre>



<p class="wp-block-paragraph">B2が「承認」なら「処理完了」、「保留」なら「確認待ち」が返ります。担当者がコメント欄に書く文言を統一できるので、後から検索したり集計したりするのもラクになります。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン3: 曜日番号を日本語の曜日名に変換する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-weekday-function/">WEEKDAY関数</a> の結果を日本語の曜日に変換する定番パターンです。A列に日付が入っているとします。</p>



<pre class="wp-block-code"><code>=SWITCH(WEEKDAY(A2), 1, &quot;日&quot;, 2, &quot;月&quot;, 3, &quot;火&quot;, 4, &quot;水&quot;, 5, &quot;木&quot;, 6, &quot;金&quot;, 7, &quot;土&quot;)</code></pre>



<p class="wp-block-paragraph">WEEKDAY関数の戻り値は1=日曜〜7=土曜なので、それぞれに対応する日本語を並べるだけです。「曜日（営業日／休日）」を出し分けるなら、次のように2パターンにまとめることもできます。</p>



<pre class="wp-block-code"><code>=SWITCH(WEEKDAY(A2, 2), 6, &quot;休日&quot;, 7, &quot;休日&quot;, &quot;営業日&quot;)</code></pre>



<p class="wp-block-paragraph">WEEKDAY関数の第2引数に<code>2</code>を指定すると「月曜=1〜日曜=7」になるので、6（土）と7（日）だけ「休日」、それ以外はすべて既定値の「営業日」が返ります。</p>



<p class="wp-block-paragraph">TIP: 曜日変換は <a href="https://mashukabu.com/spreadsheet-text-function/">TEXT関数</a> で <code>=TEXT(A2, "ddd")</code>（→月、火&#8230;）と書く方法もあります。SWITCH関数のメリットは <strong>任意のラベル（例: 「Mon」「Tuesday」「定休日」）に自由に変換できる</strong> こと。TEXT関数では「月」を「Mon」に変えられないので、表記をコントロールしたい場面ではSWITCH関数を選びましょう。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン4: 進捗ステータスコードを日本語ラベルに変換する（タスク管理向け）</span></h3>



<p class="wp-block-paragraph">タスク管理シートで、数値の進捗コード（0〜4）を読みやすいラベルに変換する例です。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, 0, &quot;未着手&quot;, 1, &quot;進行中&quot;, 2, &quot;レビュー中&quot;, 3, &quot;完了&quot;, 4, &quot;差し戻し&quot;, &quot;不明&quot;)</code></pre>



<p class="wp-block-paragraph">数値コードの場合もダブルクォーテーションは不要です。コードを直接見るよりラベル表示にすると、一目で状況がわかりますよね。スプレッドシートで条件付き書式と組み合わせると、ラベルに応じてセルの色を変えることもできます。</p>



<h3 class="wp-block-heading"><span id="toc17">パターン5: 範囲条件の代用としてTRUEパターンで使う（IFSの代わり）</span></h3>



<p class="wp-block-paragraph">SWITCH関数は本来 <strong>完全一致しか判定できません</strong> が、第1引数に<code>TRUE</code>を指定する裏ワザを使うと、範囲条件（80点以上ならAなど）も書けます。</p>



<pre class="wp-block-code"><code>=SWITCH(TRUE, A2&gt;=80, &quot;A&quot;, A2&gt;=60, &quot;B&quot;, A2&gt;=40, &quot;C&quot;, &quot;D&quot;)</code></pre>



<p class="wp-block-paragraph">仕組みはこうです。</p>



<ol class="wp-block-list"><li>第1引数を <code>TRUE</code> にする</li><li>値の位置に <code>A2>=80</code> のような比較式を書く（結果はTRUE/FALSEになる）</li><li>TRUEと一致した最初の結果が返る</li></ol>



<p class="wp-block-paragraph">ただし、このパターンは <a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS関数</a> のほうが意図が伝わりやすいので、範囲判定なら基本的にはIFS関数を使うことをおすすめします。</p>



<pre class="wp-block-code"><code>=IFS(A2&gt;=80, &quot;A&quot;, A2&gt;=60, &quot;B&quot;, A2&gt;=40, &quot;C&quot;, TRUE, &quot;D&quot;)</code></pre>



<p class="wp-block-paragraph">このIFS版とほぼ同じ意味ですね。SWITCH関数のTRUEパターンを使うのは「マクロ内などでIFS関数が使えない環境」「すでにSWITCH関数で書き始めていて統一したい」場合に限定しましょう。</p>



<h3 class="wp-block-heading"><span id="toc18">パターン6: 既定値で「該当なし」「未分類」を必ず返すようにする</span></h3>



<p class="wp-block-paragraph">SWITCH関数の <strong>既定値は必ず設定しておく</strong> のがおすすめです。理由は、未登録のコードが入力されたときに <code>#N/A</code> エラーを返さず、データの異常に気付きやすくするためです。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;S01&quot;, &quot;営業部&quot;, &quot;A01&quot;, &quot;総務部&quot;, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">「該当なし」の行が一覧表に並べば、コードの入力ミスや新規コードの追加漏れがすぐ発見できます。エラー値（#N/A）だと、フィルタや並べ替えで除外されたり、SUM関数の対象範囲でエラーが伝播したりして扱いづらいんですよね。</p>



<p class="wp-block-paragraph">TIP: 既定値に空文字<code>""</code>を入れると「何も表示しない」設定にできます。<code>=SWITCH(A2, "S01", "営業部", "A01", "総務部", "")</code> のように書けば、未登録コードは空欄になります。</p>



<h3 class="wp-block-heading"><span id="toc19">パターン7: ARRAYFORMULAで列全体を一括変換する（Sheets限定）</span></h3>



<p class="wp-block-paragraph">スプレッドシート特有の機能、<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA</a> を組み合わせて列全体を一括判定するパターンです。残念ながら <strong>SWITCH関数は直接ARRAYFORMULA化できません</strong> （配列を渡しても1セル分の結果しか返らないため）。代わりに <a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS関数</a> を使います。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IFS(B2:B100=&quot;&quot;, &quot;&quot;, B2:B100=&quot;S01&quot;, &quot;営業部&quot;, B2:B100=&quot;A01&quot;, &quot;総務部&quot;, TRUE, &quot;該当なし&quot;))</code></pre>



<p class="wp-block-paragraph"><code>B2:B100=""</code> で空白行は空白のまま残し、データがある行だけラベル変換しています。1つの数式で列全体に対応するので、フィルダウン不要・データ追加にも自動対応する設計です。</p>



<p class="wp-block-paragraph">「SWITCH関数で書きたいけれど配列対応したい」場合は、思い切ってIFS関数に書き換えるのが現実的な解です。SWITCH関数は1セル単位の処理が前提、と覚えておきましょう。</p>



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



<p class="wp-block-paragraph">SWITCH関数は構文がシンプルな分、エラーパターンも限定的です。代表的なものを早見表でまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー・現象</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A</td><td>値が候補に一致せず、既定値も省略している</td><td>最後の引数に「該当なし」など既定値を追加する</td></tr><tr><td>#VALUE!</td><td>引数の数が不正（値だけあって結果がない）</td><td>値と結果がペアになっているか確認する</td></tr><tr><td>#NAME?</td><td>関数名のスペルミス（SWICH・SWHICHなど）</td><td><code>=SWITCH</code> と正しく入力する</td></tr><tr><td>#ERROR!</td><td>カンマの数が合わない・カッコ忘れ</td><td>引数の区切りとカッコの対応をチェック</td></tr><tr><td>期待と違う結果が返る</td><td>全角/半角の不一致（&#8221;S01&#8243;と&#8221;Ｓ０１&#8221;）</td><td><a href="https://mashukabu.com/spreadsheet-text-function/">ASC関数</a>で半角に統一してから判定</td></tr><tr><td>期待と違う結果が返る</td><td>文字列と数値の混在（&#8221;1&#8243;と1）</td><td>比較対象の型を揃える</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc21">#N/Aエラー（一致する値がない）の対処法</span></h3>



<p class="wp-block-paragraph">SWITCH関数でいちばん多いエラーです。式の値がどの候補にも一致せず、既定値も指定されていないときに発生します。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;S01&quot;, &quot;営業部&quot;, &quot;A01&quot;, &quot;総務部&quot;)</code></pre>



<p class="wp-block-paragraph">A2が「F01」の場合、一致する候補がないため <code>#N/A</code> エラーになります。<strong>対処法は最後に既定値を追加する</strong> だけです。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;S01&quot;, &quot;営業部&quot;, &quot;A01&quot;, &quot;総務部&quot;, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">既存のSWITCH関数のエラーを後から隠したいだけなら、<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a> で囲む方法もあります。</p>



<pre class="wp-block-code"><code>=IFERROR(SWITCH(A2, &quot;S01&quot;, &quot;営業部&quot;, &quot;A01&quot;, &quot;総務部&quot;), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">ただし、はじめからSWITCH関数の既定値を設定するほうがシンプルで読みやすいので、IFERRORは応急処置と考えましょう。</p>



<h3 class="wp-block-heading"><span id="toc22">#VALUE!エラー（引数が不正）の対処法</span></h3>



<p class="wp-block-paragraph">引数の数が不足している場合に発生します。値だけを指定して、対応する結果を書き忘れるケースが典型です。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;S01&quot;)</code></pre>



<p class="wp-block-paragraph">この式では値1（&#8221;S01&#8243;）に対応する結果1がないためエラーになります。「値と結果はペア」というルールを意識して、引数を1つずつ数えながら書きましょう。</p>



<h3 class="wp-block-heading"><span id="toc23">全角・半角の不一致に注意</span></h3>



<p class="wp-block-paragraph">SWITCH関数の値の照合は <strong>大文字と小文字を区別しません</strong>（「abc」と「ABC」は同じと判定）が、<strong>全角と半角は区別します</strong>（「S01」と「Ｓ０１」は別物）。データの表記ゆれがある場合は、事前に<a href="https://mashukabu.com/spreadsheet-text-function/">ASC関数</a>で半角に統一しておくと安心です。</p>



<pre class="wp-block-code"><code>=SWITCH(ASC(A2), &quot;S01&quot;, &quot;営業部&quot;, &quot;A01&quot;, &quot;総務部&quot;, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph"><code>ASC(A2)</code>で全角英数字を半角に変換してから判定するので、入力時のばらつきを吸収できます。</p>



<h3 class="wp-block-heading"><span id="toc24">文字列と数値の混在に注意</span></h3>



<p class="wp-block-paragraph">数値の「1」と文字列の「&#8221;1&#8243;」は別物として扱われます。コード列に文字列で「1」が入力されていると、数値の<code>1</code>では一致しません。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, 1, &quot;S&quot;, 2, &quot;A&quot;, &quot;未評価&quot;)</code></pre>



<p class="wp-block-paragraph">A2が文字列の「&#8221;1&#8243;」だと、上の式では「未評価」が返ります。セルの表示形式が「文字列」になっている場合は、<code>=SWITCH(VALUE(A2), 1, "S", ...)</code> のように <a href="https://mashukabu.com/spreadsheet-text-function/">VALUE関数</a> で数値に変換してから判定するか、判定する値も文字列で揃えて <code>=SWITCH(A2, "1", "S", "2", "A", ...)</code> と書きます。</p>



<h2 class="wp-block-heading"><span id="toc25">SWITCH関数と似た関数の使い分け</span></h2>



<p class="wp-block-paragraph">ケース分岐や条件判定に使える関数は他にもあります。それぞれの特徴を比較して、場面に応じて使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>判定方式</th><th>範囲条件</th><th>既定値</th><th>向いている場面</th></tr></thead><tbody><tr><td><strong>SWITCH</strong></td><td><strong>完全一致</strong></td><td><strong>不可</strong></td><td><strong>最後の引数</strong></td><td><strong>コード→ラベル変換（候補10個以下）</strong></td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-if-function/">IF</a>（ネスト）</td><td>自由な条件式</td><td>可</td><td>最後のELSE</td><td>条件1〜2個の単純な分岐</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS</a></td><td>自由な条件式</td><td>可</td><td><code>TRUE</code>+値で代用</td><td>範囲条件（80点以上ならAなど）</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-choose-function/">CHOOSE</a></td><td>連続整数のインデックス</td><td>不可</td><td>なし（#VALUE!）</td><td>連番（1,2,3&#8230;）→値の変換</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP</a></td><td>完全一致／近似一致</td><td>近似なら可</td><td>別途設定</td><td>候補10個超のマスタ参照</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc26">IFネスト→SWITCH関数への書き換え（Before/After）</span></h3>



<p class="wp-block-paragraph">部署コードを3種類で判定する場合を見比べてみましょう。</p>



<p class="wp-block-paragraph"><strong>Before（IFネスト）:</strong></p>



<pre class="wp-block-code"><code>=IF(A2=&quot;S01&quot;, &quot;営業部&quot;, IF(A2=&quot;A01&quot;, &quot;総務部&quot;, IF(A2=&quot;F01&quot;, &quot;経理部&quot;, &quot;該当なし&quot;)))</code></pre>



<p class="wp-block-paragraph"><strong>After（SWITCH関数）:</strong></p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;S01&quot;, &quot;営業部&quot;, &quot;A01&quot;, &quot;総務部&quot;, &quot;F01&quot;, &quot;経理部&quot;, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">IFネストでは <code>A2=</code> を3回繰り返していますが、SWITCH関数では1回で済みます。条件が増えるほど、この差は大きくなりますよ。読み手も「これは値の照合だな」と一目で意図が掴めるのがメリットです。</p>



<h3 class="wp-block-heading"><span id="toc27">SWITCH関数とIFS関数の使い分け</span></h3>



<p class="wp-block-paragraph">SWITCH関数は完全一致専用、IFS関数は自由な条件式が書けます。</p>



<ul class="wp-block-list"><li><strong>値の完全一致で振り分け</strong> → SWITCH関数</li><li><strong><code>>=</code> <code><</code> などの範囲条件で振り分け</strong> → IFS関数</li><li><strong>条件式を細かくカスタマイズ</strong> → IFS関数</li></ul>



<p class="wp-block-paragraph">たとえば「80点以上ならA、60点以上ならB...」のような範囲判定にはSWITCH関数は不向きです。IFS関数を使いましょう。</p>



<pre class="wp-block-code"><code>=IFS(B2&gt;=80, &quot;A&quot;, B2&gt;=60, &quot;B&quot;, B2&gt;=40, &quot;C&quot;, TRUE, &quot;D&quot;)</code></pre>



<p class="wp-block-paragraph">逆に「コードが完全に一致するかどうか」を判定するなら、SWITCH関数のほうが意図が明確に伝わります。</p>



<h3 class="wp-block-heading"><span id="toc28">SWITCH関数とCHOOSE関数の使い分け</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-choose-function/">CHOOSE関数</a> は <strong>連続した整数（1, 2, 3, ...）</strong> をインデックスとして値を返す関数です。</p>



<pre class="wp-block-code"><code>=CHOOSE(B2, &quot;S&quot;, &quot;A&quot;, &quot;B&quot;, &quot;C&quot;)</code></pre>



<p class="wp-block-paragraph">B2が1なら"S"、2なら"A"、3なら"B"、4なら"C"が返ります。値が1から始まる連番なら、こちらのほうが短く書けます。</p>



<p class="wp-block-paragraph">ただし、CHOOSE関数は次のケースに弱いです。</p>



<ul class="wp-block-list"><li>値が <strong>0始まり</strong>（CHOOSEは1以上が必要）</li><li>値が <strong>飛び飛び</strong>（1, 3, 5など）</li><li>値が <strong>文字列</strong>（CHOOSEは数値のみ）</li><li><strong>既定値が設定できない</strong> （範囲外は<code>#VALUE!</code>エラー）</li></ul>



<p class="wp-block-paragraph">これらに該当する場合はSWITCH関数を使いましょう。「コードがそのまま連番ならCHOOSE、そうでなければSWITCH」と覚えておくとラクです。</p>



<h3 class="wp-block-heading"><span id="toc29">SWITCH関数とVLOOKUP関数の使い分け</span></h3>



<p class="wp-block-paragraph">候補が10個を超えてくると、SWITCH関数の式は長くなってメンテしづらくなります。そんなときは別シートにマスタテーブルを作って <a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a> で参照したほうが扱いやすいです。</p>



<ul class="wp-block-list"><li><strong>候補10個以下・固定</strong> → SWITCH関数（マスタ不要、式に直接書ける）</li><li><strong>候補10個超・変動あり</strong> → VLOOKUP関数（マスタ更新で対応可能）</li><li><strong>複数列を参照したい</strong> → VLOOKUP関数や<a href="https://mashukabu.com/spreadsheet-query-function/">QUERY関数</a></li></ul>



<p class="wp-block-paragraph">部署マスタのように「部署コード」「部署名」「部署長名」「所在地」のように複数列ある情報を扱うなら、SWITCH関数では対応できません。素直にマスタテーブル＋VLOOKUPを使いましょう。</p>



<h2 class="wp-block-heading"><span id="toc30">SWITCH関数のよくある質問（FAQ）</span></h2>



<p class="wp-block-paragraph"><strong>Q1. SWITCH関数とIF関数のネスト、どちらを使うべき？</strong></p>



<p class="wp-block-paragraph">A. 「<strong>値の完全一致</strong>で振り分ける」場合は、SWITCH関数のほうが読みやすいです。IF関数のネストは、条件が <code>>=</code> <code><</code> などの範囲判定や、複数条件の組み合わせ（AND/OR）を含む場合に使います。値の照合だけなら迷わずSWITCH関数を選びましょう。</p>



<p class="wp-block-paragraph"><strong>Q2. SWITCH関数とIFS関数の違いは何？</strong></p>



<p class="wp-block-paragraph">A. SWITCH関数は <strong>1つの式と複数の候補値を完全一致で照合</strong> します。IFS関数は <strong>複数の条件式を順番に評価</strong> します。「部署コードならSWITCH」「点数の範囲判定ならIFS」と覚えると使い分けやすいです。詳しくは <a href="https://mashukabu.com/spreadsheet-ifs-function/">スプレッドシートのIFS関数の使い方</a> もご覧ください。</p>



<p class="wp-block-paragraph"><strong>Q3. SWITCH関数で範囲条件（80点以上ならAなど）を書ける？</strong></p>



<p class="wp-block-paragraph">A. 第1引数に <code>TRUE</code> を指定すれば書けますが、可読性の観点からは <a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS関数</a> のほうが推奨です。<code>=IFS(A2>=80, "A", A2>=60, "B", TRUE, "C")</code> のように書いたほうが意図が伝わります。</p>



<p class="wp-block-paragraph"><strong>Q4. SWITCH関数の既定値を省略するとどうなる？</strong></p>



<p class="wp-block-paragraph">A. どの値にも一致しないと <code>#N/A</code> エラーが返ります。実務では「該当なし」「未分類」「空文字<code>""</code>」など、意味のある既定値を設定しておくのがおすすめです。</p>



<p class="wp-block-paragraph"><strong>Q5. SWITCH関数をARRAYFORMULAで列全体に適用したい</strong></p>



<p class="wp-block-paragraph">A. SWITCH関数は配列引数に対応していないため、ARRAYFORMULAでは1セル分しか結果が返りません。列全体に適用したい場合は <a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS関数</a> に書き換えてください。例: <code>=ARRAYFORMULA(IFS(A2:A100="", "", A2:A100="S01", "営業部", TRUE, "該当なし"))</code></p>



<p class="wp-block-paragraph"><strong>Q6. SWITCH関数は古いExcelでも使える？</strong></p>



<p class="wp-block-paragraph">A. Excel 2019以降またはMicrosoft 365でのみ使えます。Excel 2016以前と互換性が必要なファイルでは、IFネストか<a href="https://mashukabu.com/spreadsheet-vlookup-function/">VLOOKUP関数</a>で代用してください。</p>



<p class="wp-block-paragraph"><strong>Q7. SWITCH関数で値を大文字・小文字区別して判定したい</strong></p>



<p class="wp-block-paragraph">A. SWITCH関数は値の照合で大文字・小文字を区別しません（"abc"と"ABC"が一致する）。区別したい場合は <code>EXACT関数</code> を使ってIFS関数で書き換えます。例: <code>=IFS(EXACT(A2, "ABC"), "X", EXACT(A2, "abc"), "Y", TRUE, "")</code></p>



<h2 class="wp-block-heading"><span id="toc31">ExcelのSWITCH関数との違い</span></h2>



<p class="wp-block-paragraph">SWITCH関数はExcel（2019以降）とGoogleスプレッドシートで <strong>基本動作はほぼ同じ</strong> です。構文・引数・既定値の扱いはすべて共通で、ファイルをやり取りしても結果がずれることはありません。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Googleスプレッドシート</th><th>Excel（2019以降）</th></tr></thead><tbody><tr><td>基本構文</td><td><code>=SWITCH(式, 値1, 結果1, ..., [既定値])</code></td><td>同じ</td></tr><tr><td>最大ペア数</td><td>126ペア</td><td>126ペア</td></tr><tr><td>既定値</td><td>最後の奇数引数</td><td>最後の奇数引数</td></tr><tr><td>大文字・小文字区別</td><td>しない</td><td>しない</td></tr><tr><td>全角・半角区別</td><td>する</td><td>する</td></tr><tr><td>配列対応</td><td>なし（ARRAYFORMULAでも1セル分）</td><td>なし（スピル非対応）</td></tr><tr><td>対応バージョン</td><td>全バージョン</td><td>2019以降またはM365</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">両環境での差は実質ないので、Excelで作ったSWITCH関数の数式はそのままスプレッドシートに貼っても動きます。Excel版の詳しい解説は <a href="https://mashukabu.com/excel-function-howto-use-switch/">ExcelのSWITCH関数の使い方</a> をご覧ください。</p>



<h2 class="wp-block-heading"><span id="toc32">まとめ：SWITCH関数で完全一致のケース分岐をスッキリ書こう</span></h2>



<p class="wp-block-paragraph">SWITCH関数は、<strong>値と結果のペアを並べていくだけで完全一致のケース分岐ができる</strong> シンプルな関数です。ポイントをおさらいしましょう。</p>



<ul class="wp-block-list"><li>構文は <code>=SWITCH(式, 値1, 結果1, 値2, 結果2, ..., 既定値)</code>。値と結果は必ずペアで指定</li><li><strong>既定値を必ず設定</strong>して、<code>#N/A</code>エラーを防ぐ。未登録コードの発見もしやすくなる</li><li>IFネストより読みやすく、条件の追加・変更がカンタン</li><li>候補10個以下で固定なら <strong>SWITCH</strong>、10個超や変動ありなら <strong>VLOOKUP</strong> に切り替える</li><li>範囲条件（>=など）には <a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS関数</a>、連番には <a href="https://mashukabu.com/spreadsheet-choose-function/">CHOOSE関数</a> を使い分ける</li><li>配列対応が必要なら <a href="https://mashukabu.com/spreadsheet-ifs-function/">IFS</a> + <a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA</a> に書き換える</li></ul>



<p class="wp-block-paragraph">まずは「部署コード→部署名」の変換から試してみてください。IF関数のネストの括弧地獄から解放されて、数式の見通しがグッと良くなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc33">この記事で紹介した関数・関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-if-function/">スプレッドシートのIF関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-ifs-function/">スプレッドシートのIFS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-choose-function/">スプレッドシートのCHOOSE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-iferror-function/">スプレッドシートのIFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-weekday-function/">スプレッドシートのWEEKDAY関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-switch/">ExcelのSWITCH関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-switch-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのXMATCH関数の使い方｜MATCHとの違いを解説</title>
		<link>https://mashukabu.com/excel-function-howto-use-xmatch/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-xmatch/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 22 Jul 2022 07:33:10 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[XMATCH関数]]></category>
		<category><![CDATA[ワイルドカード]]></category>
		<category><![CDATA[完全一致]]></category>
		<category><![CDATA[検索関数]]></category>
		<category><![CDATA[逆順検索]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2418</guid>

					<description><![CDATA[ExcelのXMATCH関数の使い方を解説。MATCH関数との違いを比較表で整理し、一致モード4種・検索モード4種の使い分けをわかりやすく紹介。ワイルドカード検索・逆順検索の実務活用例、INDEX+XMATCHの組み合わせ技まで収録。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">ExcelでMATCH関数を使っていて、「逆順に検索できたらいいのに」と感じたことはありませんか？ データが増えるほど、検索の柔軟性が欲しくなりますよね。</p>



<p class="wp-block-paragraph">XMATCH関数なら、その悩みをまるっと解決できます。 逆順検索やワイルドカード検索など、MATCHにはない機能が使えるんです。 この記事では、XMATCH関数の使い方を基本から実務活用まで解説します。</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">XMATCH関数とは？MATCHとの違いを比較表で整理</a><ol><li><a href="#toc2" tabindex="0">XMATCH関数の基本情報（対応バージョン）</a></li><li><a href="#toc3" tabindex="0">MATCHとXMATCHの違い一覧（比較表）</a></li></ol></li><li><a href="#toc4" tabindex="0">XMATCH関数の使い方：書式と引数</a><ol><li><a href="#toc5" tabindex="0">各引数の意味と省略時の挙動</a></li></ol></li><li><a href="#toc6" tabindex="0">一致モード4種の使い分け</a><ol><li><a href="#toc7" tabindex="0">完全一致（デフォルト・0）</a></li><li><a href="#toc8" tabindex="0">以下で一致（-1）／以上で一致（1）</a></li><li><a href="#toc9" tabindex="0">ワイルドカード一致（2）の実用例</a></li></ol></li><li><a href="#toc10" tabindex="0">検索モード4種の使い分け</a><ol><li><a href="#toc11" tabindex="0">先頭から検索（デフォルト・1）</a></li><li><a href="#toc12" tabindex="0">末尾から逆順検索（-1）の実務ユースケース</a></li><li><a href="#toc13" tabindex="0">バイナリサーチ（2・-2）の使いどき</a></li></ol></li><li><a href="#toc14" tabindex="0">INDEX+XMATCHで表引きをもっと柔軟に</a><ol><li><a href="#toc15" tabindex="0">VLOOKUPより優れている理由</a></li><li><a href="#toc16" tabindex="0">INDEX+XMATCHの実務サンプル</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc18" tabindex="0">#N/Aが出るケースと回避方法</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ｜XMATCHはMATCHの上位互換</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">XMATCH関数とは？MATCHとの違いを比較表で整理</span></h2>



<p class="wp-block-paragraph">XMATCH関数は、検索範囲から指定した値を探し出し、その位置（何番目か）を数値で返す関数です。 読み方は「エックスマッチ」。「X」は Extended（拡張）を意味し、MATCH関数を強化した拡張版であることを示しています。 従来の<a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>の上位互換にあたります。</p>



<p class="wp-block-paragraph">「位置を返す」というのがポイントです。 値そのものではなく、「上から何番目にあるか」を教えてくれます。 この位置情報を<a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>と組み合わせると、強力な表引きができます。</p>



<h3 class="wp-block-heading"><span id="toc2">XMATCH関数の基本情報（対応バージョン）</span></h3>



<p class="wp-block-paragraph">XMATCH関数が使えるバージョンは以下のとおりです。</p>



<ul class="wp-block-list"><li>Microsoft 365（Windows / Mac）</li><li>Excel 2024（Windows / Mac）</li><li>Excel 2021（Windows / Mac）</li><li>Excel for the web（Web版）</li></ul>



<p class="wp-block-paragraph">Excel 2019以前では使えません。 その場合はMATCH関数で代用してください。</p>



<h3 class="wp-block-heading"><span id="toc3">MATCHとXMATCHの違い一覧（比較表）</span></h3>



<p class="wp-block-paragraph">「MATCHと何が違うの？」という疑問に、比較表でお答えします。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>MATCH</th><th>XMATCH</th></tr></thead><tbody><tr><td>デフォルトの一致モード</td><td>以下の最大値（1）</td><td><strong>完全一致（0）</strong></td></tr><tr><td>近似一致の並べ替え</td><td>必須</td><td><strong>不要</strong></td></tr><tr><td>逆順検索</td><td>できない</td><td><strong>できる（search_mode=-1）</strong></td></tr><tr><td>255文字の制限</td><td>あり</td><td><strong>なし</strong></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に大きいのは「デフォルトが完全一致」になった点です。 MATCH関数は引数を省略すると近似一致になり、意図しない結果を返すことがありました。 XMATCHなら引数を省略しても完全一致で検索してくれます。</p>



<h2 class="wp-block-heading"><span id="toc4">XMATCH関数の使い方：書式と引数</span></h2>



<p class="wp-block-paragraph">XMATCH関数の基本構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=XMATCH(検索値, 検索範囲, [一致モード], [検索モード])</code></pre>



<h3 class="wp-block-heading"><span id="toc5">各引数の意味と省略時の挙動</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th><th>省略時</th></tr></thead><tbody><tr><td>検索値（lookup_value）</td><td>○</td><td>探したい値</td><td>—</td></tr><tr><td>検索範囲（lookup_array）</td><td>○</td><td>検索する1行または1列の範囲</td><td>—</td></tr><tr><td>一致モード（match_mode）</td><td>×</td><td>一致の判定方法を指定</td><td>0（完全一致）</td></tr><tr><td>検索モード（search_mode）</td><td>×</td><td>検索する方向を指定</td><td>1（先頭から検索）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">第3・第4引数は省略可能です。 省略すると「先頭から完全一致で検索」という最もシンプルな動作になります。</p>



<h2 class="wp-block-heading"><span id="toc6">一致モード4種の使い分け</span></h2>



<p class="wp-block-paragraph">一致モード（match_mode）は、検索値と範囲内の値をどう照合するかを決めます。 4種類あるので、用途に合わせて選びましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">完全一致（デフォルト・0）</span></h3>



<p class="wp-block-paragraph">最も基本的なモードです。 検索値と完全に一致するセルだけを探します。</p>



<p class="wp-block-paragraph">たとえば、社員名簿から「佐藤」の位置を調べる場合はこうなります。</p>



<pre class="wp-block-code"><code>=XMATCH(&quot;佐藤&quot;, A2:A10)</code></pre>



<p class="wp-block-paragraph">一致モードを省略しても「0（完全一致）」になります。 見つからなければ <code>#N/A</code> エラーが返ります。</p>



<h3 class="wp-block-heading"><span id="toc8">以下で一致（-1）／以上で一致（1）</span></h3>



<p class="wp-block-paragraph">数値データに対して「ぴったり一致する値がなければ、近い値で代用する」モードです。</p>



<ul class="wp-block-list"><li><strong>-1（以下の最大値）</strong>: 検索値以下で最も大きい値の位置を返す</li><li><strong>1（以上の最小値）</strong>: 検索値以上で最も小さい値の位置を返す</li></ul>



<p class="wp-block-paragraph">たとえば、点数テーブルで85点のランクを調べたいとします。 テーブルに85がなくても、以下のように書けば80の位置を返してくれます。</p>



<pre class="wp-block-code"><code>=XMATCH(85, {60,70,80,90}, -1)</code></pre>



<p class="wp-block-paragraph">この式は「3」を返します。85以下の最大値は80で、3番目だからです。</p>



<p class="wp-block-paragraph">MATCH関数の近似一致ではデータの並べ替えが必須でした。 XMATCHなら並べ替え不要で近似一致ができます。 これは地味ですが、実務では大きなメリットです。</p>



<h3 class="wp-block-heading"><span id="toc9">ワイルドカード一致（2）の実用例</span></h3>



<p class="wp-block-paragraph">部分一致で検索したいときは、一致モード「2」を使います。 <code>*</code>（任意の文字列）と <code>?</code>（任意の1文字）、<code>~</code>（ワイルドカード文字そのものを検索するエスケープ）が使えます。</p>



<p class="wp-block-paragraph">たとえば、「田中」を含む名前を探す場合はこう書きます。</p>



<pre class="wp-block-code"><code>=XMATCH(&quot;*田中*&quot;, A2:A20, 2)</code></pre>



<p class="wp-block-paragraph">これで「田中太郎」「田中花子」など、「田中」を含む最初のセルの位置を返します。 商品名や部署名のあいまい検索に便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc10">検索モード4種の使い分け</span></h2>



<p class="wp-block-paragraph">検索モード（search_mode）は、範囲をどの方向から探すかを決めます。</p>



<h3 class="wp-block-heading"><span id="toc11">先頭から検索（デフォルト・1）</span></h3>



<p class="wp-block-paragraph">上から順に検索し、最初に見つかった位置を返します。 省略時はこのモードになるので、通常はそのままでOKです。</p>



<h3 class="wp-block-heading"><span id="toc12">末尾から逆順検索（-1）の実務ユースケース</span></h3>



<p class="wp-block-paragraph">XMATCH関数の目玉機能ともいえるのが、逆順検索です。 search_mode に「-1」を指定すると、末尾から先頭に向かって検索します。</p>



<p class="wp-block-paragraph">これが活躍するのは「追記型の台帳」です。 たとえば、日報や作業ログのように下へ追記していくシートがあるとします。 同じ担当者名が複数行にあるとき、最新（最後）のエントリの位置を取得できます。</p>



<pre class="wp-block-code"><code>=XMATCH(&quot;佐藤&quot;, A2:A100, 0, -1)</code></pre>



<p class="wp-block-paragraph">MATCH関数では逆順検索ができなかったため、回りくどい数式が必要でした。 XMATCHなら引数ひとつで解決です。</p>



<h3 class="wp-block-heading"><span id="toc13">バイナリサーチ（2・-2）の使いどき</span></h3>



<p class="wp-block-paragraph">データが大量（数万行以上）で、すでに並べ替え済みの場合に使います。</p>



<ul class="wp-block-list"><li><strong>2</strong>: 昇順ソート済みデータに対して二分探索</li><li><strong>-2</strong>: 降順ソート済みデータに対して二分探索</li></ul>



<p class="wp-block-paragraph">通常の検索より高速ですが、データが正しくソートされていないと誤った結果を返します。 少量データなら通常検索で十分なので、無理に使う必要はありません。</p>



<h2 class="wp-block-heading"><span id="toc14">INDEX+XMATCHで表引きをもっと柔軟に</span></h2>



<p class="wp-block-paragraph">XMATCH関数の真価は、INDEX関数との組み合わせで発揮されます。</p>



<h3 class="wp-block-heading"><span id="toc15">VLOOKUPより優れている理由</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>は便利ですが、いくつかの制約があります。</p>



<ul class="wp-block-list"><li>検索列が範囲の左端にないと使えない</li><li>列番号を数値で指定するため、列の挿入でズレる</li></ul>



<p class="wp-block-paragraph">INDEX+XMATCHなら、これらの制約がありません。 検索列が右にあっても左にあっても自在に表引きできます。</p>



<p class="wp-block-paragraph">さらに詳しく知りたい方は、<a href="https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/">VLOOKUP・XLOOKUP・INDEX MATCH使い分け完全ガイド</a>もあわせてご覧ください。</p>



<p class="wp-block-paragraph">なお、<a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数</a>が使える環境なら、XLOOKUPのほうがシンプルに書けます。 INDEX+XMATCHは「縦横同時検索」が必要なケースで特に威力を発揮します。</p>



<h3 class="wp-block-heading"><span id="toc16">INDEX+XMATCHの実務サンプル</span></h3>



<p class="wp-block-paragraph">下の表から「商品名」と「月」を指定して売上を取得する例です。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>4月</th><th>5月</th><th>6月</th></tr></thead><tbody><tr><td>商品A</td><td>100</td><td>150</td><td>200</td></tr><tr><td>商品B</td><td>80</td><td>120</td><td>160</td></tr><tr><td>商品C</td><td>200</td><td>250</td><td>300</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">セルB3に商品名、C3に月名を入力しておくと、次の数式で交差セルの値を取得できます。</p>



<pre class="wp-block-code"><code>=INDEX(C6:E8, XMATCH(B3, B6:B8), XMATCH(C3, C5:E5))</code></pre>



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、やっていることはシンプルです。</p>



<ol class="wp-block-list"><li><code>XMATCH(B3, B6:B8)</code> → 商品名の行番号を取得</li><li><code>XMATCH(C3, C5:E5)</code> → 月名の列番号を取得</li><li><code>INDEX</code> → 行と列が交差するセルの値を返す</li></ol>



<p class="wp-block-paragraph">このように、XMATCHを2つ使って縦横同時検索ができます。 VLOOKUPでは実現できない柔軟な表引きです。</p>



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



<h3 class="wp-block-heading"><span id="toc18">#N/Aが出るケースと回避方法</span></h3>



<p class="wp-block-paragraph">XMATCH関数で最もよく見るエラーが <code>#N/A</code> です。 「一致する値が見つからない」ときに発生します。</p>



<p class="wp-block-paragraph">主な原因は次の3つです。</p>



<ul class="wp-block-list"><li><strong>スペルミスや余分なスペース</strong>: 検索値と範囲内の値が微妙に違う</li><li><strong>データ型の不一致</strong>: 検索値が数値なのに範囲内が文字列として保存されている（またはその逆）</li><li><strong>検索範囲の指定ミス</strong>: 意図した列と違う範囲を選んでいる</li></ul>



<p class="wp-block-paragraph">データ型の問題は見落としがちです。 セルの表示が同じでも、数値と文字列では一致しません。 数式バーで「&#8217;123」のようにシングルクォートがついていたら、文字列として保存されているサインです。</p>



<p class="wp-block-paragraph">エラーを非表示にしたい場合は、IFERROR関数で囲みます。</p>



<pre class="wp-block-code"><code>=IFERROR(XMATCH(&quot;佐藤&quot;, A2:A10), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">ただし、IFERRORで隠すとデータの問題に気づきにくくなります。 まずは原因を特定してから対処するのがおすすめです。</p>



<h2 class="wp-block-heading"><span id="toc19">まとめ｜XMATCHはMATCHの上位互換</span></h2>



<p class="wp-block-paragraph">XMATCH関数の使い方を振り返りましょう。</p>



<ul class="wp-block-list"><li>デフォルトが完全一致なので、引数の指定ミスが起きにくい</li><li>逆順検索（search_mode=-1）で最新データの位置を簡単に取得できる</li><li>近似一致で並べ替え不要になり、手間が減った</li><li>ワイルドカード一致で部分一致検索もカバー</li><li>255文字の制限がなくなり、長いテキストの検索にも対応</li><li>INDEX関数と組み合わせれば、縦横同時検索が可能</li></ul>



<p class="wp-block-paragraph">MATCH関数を使っている方は、XMATCHに切り替えるだけで検索がグッと楽になりますよ。 対応バージョン（Microsoft 365 / Excel 2024 / Excel 2021）をお使いなら、ぜひ試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-xmatch/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
