<?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>SWITCH関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/switch%e9%96%a2%e6%95%b0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:49:21 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>SWITCH関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのDETECTLANGUAGE関数の使い方｜セルの言語を自動判定する</title>
		<link>https://mashukabu.com/excel-function-howto-use-detectlanguage/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-detectlanguage/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 04:10:46 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[DETECTLANGUAGE関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[FILTER関数]]></category>
		<category><![CDATA[IFERROR関数]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[SWITCH関数]]></category>
		<category><![CDATA[TRANSLATE関数]]></category>
		<category><![CDATA[データクレンジング]]></category>
		<category><![CDATA[多言語データ]]></category>
		<category><![CDATA[言語検出]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5888</guid>

					<description><![CDATA[ExcelのDETECTLANGUAGE関数の使い方を初心者向けに解説します。構文・戻り値（ISO 639-1言語コード）の基本から、顧客リストの言語分類、多言語アンケートの振り分け、SWITCH関数との組み合わせで言語名を日本語表示する方法、TRANSLATE関数との連携で自動翻訳する手順まで、実務で使える数式を豊富に紹介。対応言語一覧・よくあるエラーと対処法・FAQも完備した完全ガイドです。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「海外の顧客から届いたメール、英語なのかスペイン語なのか見分けるだけでもひと苦労」「多言語アンケートの自由記述欄を言語別に集計したい」。グローバル業務を担当していると、こんな場面が増えていますよね。</p>



<p class="wp-block-paragraph">1件ずつ目視で判定するのは現実的ではありません。数百件のリストを前にため息が出てしまうのが正直なところです。</p>



<p class="wp-block-paragraph">そんなときに頼りになるのがExcelのDETECTLANGUAGE関数です。セルに入っている文字列を解析して、使われている言語を自動で判定してくれます。</p>



<p class="wp-block-paragraph">この記事では、ExcelのDETECTLANGUAGE関数の使い方を基本から実務の応用例まで解説します。SWITCH関数との組み合わせやTRANSLATE関数との連携、エラー対処やFAQまでまとめましたので、ぜひ参考にしてください。</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">ExcelのDETECTLANGUAGE関数とは？</a><ol><li><a href="#toc2" tabindex="0">どんなときに使う関数か</a></li><li><a href="#toc3" tabindex="0">利用条件（Microsoft 365が必須）</a></li><li><a href="#toc4" tabindex="0">似ている関数との違い</a></li></ol></li><li><a href="#toc5" tabindex="0">DETECTLANGUAGE関数の構文と戻り値</a><ol><li><a href="#toc6" tabindex="0">基本構文</a></li><li><a href="#toc7" tabindex="0">引数：テキスト</a></li><li><a href="#toc8" tabindex="0">戻り値：ISO 639-1 言語コード</a></li><li><a href="#toc9" tabindex="0">スピル機能でまとめて判定</a></li></ol></li><li><a href="#toc10" tabindex="0">Excel DETECTLANGUAGE関数の基本的な使い方</a><ol><li><a href="#toc11" tabindex="0">1つのセルの言語を判定する</a></li><li><a href="#toc12" tabindex="0">複数セルの言語を一括判定する</a></li><li><a href="#toc13" tabindex="0">IF関数と組み合わせて日本語か判定する</a></li><li><a href="#toc14" tabindex="0">直接文字列を渡してテストする</a></li><li><a href="#toc15" tabindex="0">判定結果と元の文字列を並べて確認する</a></li></ol></li><li><a href="#toc16" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc17" tabindex="0">グローバル顧客リストを言語別に分類する</a></li><li><a href="#toc18" tabindex="0">多言語アンケートを言語別に振り分ける</a></li><li><a href="#toc19" tabindex="0">FILTER関数と組み合わせて英語の行だけ抽出する</a></li><li><a href="#toc20" tabindex="0">TRANSLATE関数と連携して自動翻訳する</a></li><li><a href="#toc21" tabindex="0">IFERRORでエラー時のラベルを付ける</a></li><li><a href="#toc22" tabindex="0">条件付き書式で言語を色分けする</a></li><li><a href="#toc23" tabindex="0">Power Queryと組み合わせて定期処理を自動化する</a></li><li><a href="#toc24" tabindex="0">ピボットテーブルで言語別の傾向分析</a></li><li><a href="#toc25" tabindex="0">XLOOKUPで言語コード→言語名の変換テーブルを引く</a></li></ol></li><li><a href="#toc26" tabindex="0">短文・空白・数字のみセルでの挙動</a><ol><li><a href="#toc27" tabindex="0">空白セルを渡した場合</a></li><li><a href="#toc28" tabindex="0">数字だけのセル</a></li><li><a href="#toc29" tabindex="0">短すぎる文字列</a></li><li><a href="#toc30" tabindex="0">複数言語が混在した文字列</a></li><li><a href="#toc31" tabindex="0">記号や絵文字だけのセル</a></li></ol></li><li><a href="#toc32" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc33" tabindex="0">Text Too Long エラー</a></li><li><a href="#toc34" tabindex="0">Error in Value エラー</a></li><li><a href="#toc35" tabindex="0">Request Throttled エラー</a></li><li><a href="#toc36" tabindex="0">#NAME? エラー</a></li><li><a href="#toc37" tabindex="0">#BUSY! / #CONNECT! エラー</a></li><li><a href="#toc38" tabindex="0">#VALUE! エラー</a></li></ol></li><li><a href="#toc39" tabindex="0">DETECTLANGUAGE関数を使う際の注意点</a><ol><li><a href="#toc40" tabindex="0">クラウド経由でデータが送信される</a></li><li><a href="#toc41" tabindex="0">大量呼び出しはパフォーマンスに影響する</a></li><li><a href="#toc42" tabindex="0">判定結果は完全ではない</a></li><li><a href="#toc43" tabindex="0">Mac版・Web版の挙動差</a></li><li><a href="#toc44" tabindex="0">共有ブックでの再計算挙動</a></li><li><a href="#toc45" tabindex="0">バックアップを取ってから一括判定を流す</a></li></ol></li><li><a href="#toc46" tabindex="0">DETECTLANGUAGE関数が返す主な言語コード一覧</a><ol><li><a href="#toc47" tabindex="0">ビジネスでよく使う言語コード早見表</a></li><li><a href="#toc48" tabindex="0">言語コードを日本語名に変換する実用例</a></li><li><a href="#toc49" tabindex="0">IF関数で「対応言語かどうか」を判定する</a></li></ol></li><li><a href="#toc50" tabindex="0">よくある質問（FAQ）</a></li><li><a href="#toc51" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのDETECTLANGUAGE関数とは？</span></h2>



<p class="wp-block-paragraph">DETECTLANGUAGE関数は、<strong>セルの文字列を解析して使われている言語を判定するExcelの関数</strong>です。読み方は「ディテクトランゲージ」で、判定結果はISO 639-1形式の2文字の言語コードで返ります。</p>



<p class="wp-block-paragraph">内部ではMicrosoft Translation Services（クラウドの翻訳サービス）を利用しているため、インターネット接続が必須です。簡単な単語から長文まで幅広い言語を判定してくれますよ。</p>



<p class="wp-block-paragraph">比較的新しい関数ですが、使い方はとてもシンプルです。引数は1つだけなので、初めてでも迷いません。</p>



<h3 class="wp-block-heading"><span id="toc2">どんなときに使う関数か</span></h3>



<p class="wp-block-paragraph">ExcelのDETECTLANGUAGE関数は次のような場面で活躍します。</p>



<ul class="wp-block-list"><li>グローバル顧客リストを言語別に分類したいとき</li><li>多言語アンケートの自由記述を言語別に振り分けたいとき</li><li>海外からの問い合わせメールを担当者別にアサインしたいとき</li><li>TRANSLATE関数（指定した言語に翻訳する関数）と組み合わせて多言語データを一括翻訳したいとき</li><li>SNSコメントやレビュー本文を地域別に集計したいとき</li><li>海外取引先から届くExcelシートの言語をチェックして自動仕分けしたいとき</li></ul>



<p class="wp-block-paragraph">「どの言語か分からないけどとりあえず仕分けたい」というシーンにぴったりの関数です。Google翻訳やDeepLに1件ずつコピペして調べていた作業が、関数1つで終わってしまいますよ。</p>



<h3 class="wp-block-heading"><span id="toc3">利用条件（Microsoft 365が必須）</span></h3>



<p class="wp-block-paragraph">DETECTLANGUAGE関数を使うには、Microsoft 365のサブスクリプションが必要です。永続ライセンス版のExcel 2019・Excel 2021・LTSC 2024では使えません。</p>



<p class="wp-block-paragraph">対応環境は次のとおりです。</p>



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



<p class="wp-block-paragraph">また、裏側でクラウド翻訳サービスを呼び出す仕組みなので、<strong>インターネット接続が必須</strong>です。オフライン環境では動きませんので注意してください。</p>



<p class="wp-block-paragraph">お使いのバージョンが対応しているか、事前に確認しておきましょう。「ファイル → アカウント」で「Microsoft 365 Apps for &#8230;」と表示されていれば対応版です。</p>



<h3 class="wp-block-heading"><span id="toc4">似ている関数との違い</span></h3>



<p class="wp-block-paragraph">「言語に関する関数」はいくつかあります。混乱しないように整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th><th>戻り値</th></tr></thead><tbody><tr><td>DETECTLANGUAGE</td><td>文字列の言語を判定</td><td>ISO 639-1コード（例: <code>ja</code>）</td></tr><tr><td>TRANSLATE</td><td>指定言語に翻訳</td><td>翻訳後の文字列</td></tr><tr><td>PHONETIC</td><td>漢字のふりがな取得</td><td>カタカナ・ひらがな</td></tr><tr><td>UNICODE / UNICHAR</td><td>文字コード変換</td><td>数値・文字</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">DETECTLANGUAGEは「判定」専用、TRANSLATEは「変換」専用、と覚えておけば使い分けで迷いません。</p>



<h2 class="wp-block-heading"><span id="toc5">DETECTLANGUAGE関数の構文と戻り値</span></h2>



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



<pre class="wp-block-code"><code>=DETECTLANGUAGE(テキスト)</code></pre>



<p class="wp-block-paragraph">引数は1つだけ、判定したいテキストまたはセル参照を指定するだけです。とてもシンプルですね。</p>



<h3 class="wp-block-heading"><span id="toc7">引数：テキスト</span></h3>



<p class="wp-block-paragraph">言語を判定したい文字列、またはセル参照を指定します。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(&quot;Hello world&quot;)
=DETECTLANGUAGE(A2)</code></pre>



<p class="wp-block-paragraph">直接文字列を入れる場合はダブルクォーテーションで囲みます。実務ではセル参照を使うのが一般的ですよ。</p>



<p class="wp-block-paragraph">セル範囲を指定すると、スピル（数式が自動で配列に展開される機能）により一度に複数セルの判定ができます。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(A2:A20)</code></pre>



<p class="wp-block-paragraph">1つの数式で20件分の判定結果がB2:B20にずらっと表示されます。ループ処理を書く感覚で、しかも数式1つで済むのがうれしいですね。</p>



<h3 class="wp-block-heading"><span id="toc8">戻り値：ISO 639-1 言語コード</span></h3>



<p class="wp-block-paragraph">DETECTLANGUAGE関数の戻り値は、ISO 639-1という国際規格に基づく2文字の言語コードです。代表的なものをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>言語コード</th><th>言語名</th><th>言語コード</th><th>言語名</th></tr></thead><tbody><tr><td><code>ja</code></td><td>日本語</td><td><code>pt</code></td><td>ポルトガル語</td></tr><tr><td><code>en</code></td><td>英語</td><td><code>ru</code></td><td>ロシア語</td></tr><tr><td><code>zh</code></td><td>中国語</td><td><code>ar</code></td><td>アラビア語</td></tr><tr><td><code>ko</code></td><td>韓国語</td><td><code>th</code></td><td>タイ語</td></tr><tr><td><code>es</code></td><td>スペイン語</td><td><code>vi</code></td><td>ベトナム語</td></tr><tr><td><code>fr</code></td><td>フランス語</td><td><code>id</code></td><td>インドネシア語</td></tr><tr><td><code>de</code></td><td>ドイツ語</td><td><code>nl</code></td><td>オランダ語</td></tr><tr><td><code>it</code></td><td>イタリア語</td><td><code>tr</code></td><td>トルコ語</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Microsoft Translation Servicesがサポートする100以上の言語に対応しています。メジャーな言語はほぼカバーされているので、実務で困ることはまずありませんよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>中国語の場合、繁体字と簡体字の区別は関数によっては <code>zh-Hans</code>（簡体字）<code>zh-Hant</code>（繁体字）のように細分化されることもあります。基本的には2文字コードで返ると覚えておけば大丈夫です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc9">スピル機能でまとめて判定</span></h3>



<p class="wp-block-paragraph">セル範囲を引数に渡せば、1つの数式で複数行の判定結果を一気に取得できます。スピル対応関数の便利さを実感できる場面ですね。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(A2:A100)</code></pre>



<p class="wp-block-paragraph">B2セルにこの式を入れるだけで、B2:B100に判定結果が自動展開されます。Microsoft 365のスピル機能の真骨頂です。一括処理については <a href="https://mashukabu.com/excel-unique-filter-sort-sequence-spill/">Excelのスピル機能｜UNIQUE・FILTER・SORT・SEQUENCEで配列を自在に扱う</a> も合わせて読むと理解が深まりますよ。</p>



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



<p class="wp-block-paragraph">それでは実際に数式を組み立ててみましょう。</p>



<h3 class="wp-block-heading"><span id="toc11">1つのセルの言語を判定する</span></h3>



<p class="wp-block-paragraph">もっともシンプルな例です。A2セルの文字列の言語を判定します。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(A2)</code></pre>



<p class="wp-block-paragraph">A2が「こんにちは」なら <code>ja</code> 、「Hello」なら <code>en</code> 、「Hola」なら <code>es</code> が返ります。一瞬で判定してくれますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">複数セルの言語を一括判定する</span></h3>



<p class="wp-block-paragraph">A2:A10に多言語のテキストが入っている場合、1つの数式で全行を判定できます。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(A2:A10)</code></pre>



<p class="wp-block-paragraph">B2セルにこの数式を入れるだけで、B2:B10に判定結果がスピルします。数百件あっても1つの数式で済むのが快適ですよ。</p>



<h3 class="wp-block-heading"><span id="toc13">IF関数と組み合わせて日本語か判定する</span></h3>



<p class="wp-block-paragraph">判定結果が日本語かどうかで分岐する例です。</p>



<pre class="wp-block-code"><code>=IF(DETECTLANGUAGE(A2)=&quot;ja&quot;, &quot;日本語&quot;, &quot;その他&quot;)</code></pre>



<p class="wp-block-paragraph">顧客リストから日本語のレコードだけを「日本語」としてマークし、それ以外を「その他」に振り分けます。日本語対応可能な担当者へのアサインに使えますね。</p>



<h3 class="wp-block-heading"><span id="toc14">直接文字列を渡してテストする</span></h3>



<p class="wp-block-paragraph">数式の動作を確認したいときは、直接文字列を渡すと手軽です。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(&quot;Bonjour le monde&quot;)</code></pre>



<p class="wp-block-paragraph">この例では <code>fr</code> （フランス語）が返ります。数式の挙動チェックにどうぞ。</p>



<h3 class="wp-block-heading"><span id="toc15">判定結果と元の文字列を並べて確認する</span></h3>



<p class="wp-block-paragraph">判定が正しいかひと目で確認したいときは、元の文字列と判定結果を並べる構成にすると便利です。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（本文）</th><th>B列（コード）</th></tr></thead><tbody><tr><td>お世話になっております</td><td>ja</td></tr><tr><td>Thank you for your support</td><td>en</td></tr><tr><td>감사합니다</td><td>ko</td></tr><tr><td>谢谢您的支持</td><td>zh</td></tr><tr><td>Vielen Dank</td><td>de</td></tr><tr><td>Cảm ơn bạn</td><td>vi</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">B2セルに <code>=DETECTLANGUAGE(A2)</code> と入力して下方向にコピーするか、 <code>=DETECTLANGUAGE(A2:A7)</code> でスピルさせれば完成です。</p>



<h2 class="wp-block-heading"><span id="toc16">実践的な使い方・応用例</span></h2>



<p class="wp-block-paragraph">ここからは実務で役立つ応用パターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc17">グローバル顧客リストを言語別に分類する</span></h3>



<p class="wp-block-paragraph">海外の顧客から届いたお問い合わせ本文を、言語別に自動分類する例です。</p>



<p class="wp-block-paragraph">A列に問い合わせ本文、B列に判定結果、C列に日本語の言語名を表示します。</p>



<p class="wp-block-paragraph">B2セル:</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(A2)</code></pre>



<p class="wp-block-paragraph">C2セル（SWITCH関数で日本語名に変換）:</p>



<pre class="wp-block-code"><code>=SWITCH(B2, &quot;ja&quot;,&quot;日本語&quot;, &quot;en&quot;,&quot;英語&quot;, &quot;zh&quot;,&quot;中国語&quot;, &quot;ko&quot;,&quot;韓国語&quot;, &quot;es&quot;,&quot;スペイン語&quot;, &quot;fr&quot;,&quot;フランス語&quot;, &quot;de&quot;,&quot;ドイツ語&quot;, &quot;その他&quot;)</code></pre>



<p class="wp-block-paragraph">SWITCH関数（複数の候補値を順にチェックして一致した値を返す関数）を使うと、言語コードを読みやすい日本語ラベルに変換できます。SWITCH関数の使い方は <a href="https://mashukabu.com/excel-function-howto-use-switch/">ExcelのSWITCH関数の使い方｜複数条件をスッキリ書く</a> も参考になりますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（本文）</th><th>B列（コード）</th><th>C列（言語名）</th></tr></thead><tbody><tr><td>お世話になっております</td><td>ja</td><td>日本語</td></tr><tr><td>Thank you for your support</td><td>en</td><td>英語</td></tr><tr><td>感谢您的支持</td><td>zh</td><td>中国語</td></tr><tr><td>Merci beaucoup</td><td>fr</td><td>フランス語</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IFSの代わりにSWITCHを使うと数式がスッキリしますよ。</p>



<h3 class="wp-block-heading"><span id="toc18">多言語アンケートを言語別に振り分ける</span></h3>



<p class="wp-block-paragraph">アンケートの自由記述欄を言語別にカウントする例です。COUNTIF関数と組み合わせます。</p>



<pre class="wp-block-code"><code>=COUNTIF(B2:B500, &quot;ja&quot;)</code></pre>



<p class="wp-block-paragraph">B列にDETECTLANGUAGE関数の結果を出しておけば、この数式で「日本語回答の件数」を集計できます。言語別の集計レポートがすぐに作れますよ。</p>



<p class="wp-block-paragraph">集計結果は次のような表になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>言語</th><th>件数</th><th>割合</th></tr></thead><tbody><tr><td>ja（日本語）</td><td>312</td><td>62.4%</td></tr><tr><td>en（英語）</td><td>124</td><td>24.8%</td></tr><tr><td>zh（中国語）</td><td>38</td><td>7.6%</td></tr><tr><td>その他</td><td>26</td><td>5.2%</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">割合の計算には <code>=COUNTIF(B2:B500,"ja")/COUNTA(B2:B500)</code> を使えばOKです。</p>



<h3 class="wp-block-heading"><span id="toc19">FILTER関数と組み合わせて英語の行だけ抽出する</span></h3>



<p class="wp-block-paragraph">さらに便利なのがFILTER関数との組み合わせです。英語のレコードだけを別シートに抜き出すイメージです。</p>



<pre class="wp-block-code"><code>=FILTER(A2:C500, DETECTLANGUAGE(A2:A500)=&quot;en&quot;)</code></pre>



<p class="wp-block-paragraph">スピルで英語レコードが一気に展開されます。担当者別にシートを分けたいときに威力を発揮しますよ。FILTER関数の応用例は <a href="https://mashukabu.com/excel-function-howto-use-filter/">ExcelのFILTER関数の使い方｜条件に合うデータだけを抽出する</a> も役立ちますので合わせてどうぞ。</p>



<h3 class="wp-block-heading"><span id="toc20">TRANSLATE関数と連携して自動翻訳する</span></h3>



<p class="wp-block-paragraph">DETECTLANGUAGE関数の真価は、TRANSLATE関数（指定した言語に翻訳する関数）と組み合わせたときに発揮されます。</p>



<pre class="wp-block-code"><code>=TRANSLATE(A2, DETECTLANGUAGE(A2), &quot;ja&quot;)</code></pre>



<p class="wp-block-paragraph">この数式は「A2の言語を自動検出し、日本語に翻訳する」という意味です。送信元の言語が何であれ、すべて日本語に統一できます。</p>



<p class="wp-block-paragraph">多言語の顧客フィードバックを一括で日本語化するワークフローがこれ1本で完成しますよ。従来はGoogle翻訳やDeepLに1件ずつコピペしていた作業が、数式1つで終わります。詳しいTRANSLATE関数の使い方は <a href="https://mashukabu.com/excel-function-howto-use-translate/">ExcelのTRANSLATE関数の使い方｜セルの文章を自動翻訳する</a> を参照してください。</p>



<p class="wp-block-paragraph">実行イメージは次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（原文）</th><th>検出言語</th><th>TRANSLATE後（日本語）</th></tr></thead><tbody><tr><td>Thank you for your kind support</td><td>en</td><td>ご親切なサポートをありがとうございます</td></tr><tr><td>非常感谢您的合作</td><td>zh</td><td>ご協力に深く感謝いたします</td></tr><tr><td>Merci pour votre patience</td><td>fr</td><td>ご辛抱いただきありがとうございます</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">このパターンを応用すれば、社内会議資料の多言語化、海外SNSコメントの翻訳ダッシュボード、海外レビューの感情分析など、活用シーンは無限大ですよ。</p>



<h3 class="wp-block-heading"><span id="toc21">IFERRORでエラー時のラベルを付ける</span></h3>



<p class="wp-block-paragraph">短文や記号だけのセルでは判定に失敗することがあります。エラー時は「判定不可」と表示させましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(DETECTLANGUAGE(A2), &quot;判定不可&quot;)</code></pre>



<p class="wp-block-paragraph">エラーで数式が止まらなくなるので、大量データの処理でも安心ですよ。IFERROR関数の詳しい使い方は <a href="https://mashukabu.com/excel-function-howto-use-iferror/">ExcelのIFERROR関数の使い方｜エラーをスマートに処理する</a> も参考にしてください。</p>



<h3 class="wp-block-heading"><span id="toc22">条件付き書式で言語を色分けする</span></h3>



<p class="wp-block-paragraph">判定結果に応じてセルを色分けすれば、ひと目で言語の分布が見えるダッシュボードが作れます。</p>



<ol class="wp-block-list"><li>B列の判定結果セルを範囲選択</li><li>「ホーム」→「条件付き書式」→「セルの強調表示ルール」→「文字列」を選択</li><li>「ja」と入力し、書式を赤に設定</li><li>同様に「en」を青、「zh」を緑、「ko」を黄など、言語ごとに色を割り当てる</li></ol>



<p class="wp-block-paragraph">これだけで、シートを開いた瞬間に「英語の問い合わせが多い」「最近スペイン語が増えてきた」といった傾向が直感的につかめます。</p>



<h3 class="wp-block-heading"><span id="toc23">Power Queryと組み合わせて定期処理を自動化する</span></h3>



<p class="wp-block-paragraph">DETECTLANGUAGE関数の結果列をPower Query側で読み込んでおけば、毎月のレポート更新時にワンクリックで言語別集計を最新化できます。</p>



<p class="wp-block-paragraph">数式のままだとセル数が多くなったときにクォータエラー（後述）に引っかかりやすいので、<strong>判定後に値貼り付けして固定</strong> → Power Queryで集計、というフローがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc24">ピボットテーブルで言語別の傾向分析</span></h3>



<p class="wp-block-paragraph">DETECTLANGUAGE関数で判定済みの列をベースに、ピボットテーブルを作れば月別・言語別のクロス集計が一瞬で出ます。</p>



<ul class="wp-block-list"><li>行: 受信月</li><li>列: 言語コード（ja / en / zh / fr / その他）</li><li>値: 件数</li></ul>



<p class="wp-block-paragraph">ピボット化しておけば、「先月から急に韓国語問い合わせが増えた」といった変化点をすぐ拾えますよ。マーケティング会議や四半期レビューで使える生きたデータになります。</p>



<h3 class="wp-block-heading"><span id="toc25">XLOOKUPで言語コード→言語名の変換テーブルを引く</span></h3>



<p class="wp-block-paragraph">SWITCH関数が長くなりすぎるのが気になるなら、別シートに変換テーブルを用意してXLOOKUP関数で引く方法もあります。</p>



<p class="wp-block-paragraph">別シートに次のような表を作ります。</p>



<figure class="wp-block-table"><table><thead><tr><th>code</th><th>name</th></tr></thead><tbody><tr><td>ja</td><td>日本語</td></tr><tr><td>en</td><td>英語</td></tr><tr><td>zh</td><td>中国語</td></tr><tr><td>ko</td><td>韓国語</td></tr><tr><td>es</td><td>スペイン語</td></tr><tr><td>fr</td><td>フランス語</td></tr><tr><td>de</td><td>ドイツ語</td></tr><tr><td>&#8230;</td><td>&#8230;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">C2セルにこの数式を入れれば完成です。</p>



<pre class="wp-block-code"><code>=XLOOKUP(B2, 言語表!A:A, 言語表!B:B, &quot;その他&quot;)</code></pre>



<p class="wp-block-paragraph">新しい言語に対応したくなったら、変換テーブルに1行追加するだけ。数式を全行修正する必要がないので、メンテナンス性がぐっと上がりますよ。</p>



<h2 class="wp-block-heading"><span id="toc26">短文・空白・数字のみセルでの挙動</span></h2>



<p class="wp-block-paragraph">DETECTLANGUAGE関数にはいくつかクセがあります。実務で遭遇しやすいケースを押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc27">空白セルを渡した場合</span></h3>



<p class="wp-block-paragraph">空白セルを渡すとエラーが返ります。IFERRORでラップするか、IF関数で事前にチェックしておきましょう。</p>



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



<p class="wp-block-paragraph">空白の場合は何も表示せず、値があるときだけ判定する形ですね。</p>



<h3 class="wp-block-heading"><span id="toc28">数字だけのセル</span></h3>



<p class="wp-block-paragraph">「12345」のように数字だけのセルは、言語判定ができず精度が落ちます。場合によっては英語と判定されたりエラーになったりします。</p>



<pre class="wp-block-code"><code>=IF(ISNUMBER(A2), &quot;数値&quot;, IFERROR(DETECTLANGUAGE(A2), &quot;判定不可&quot;))</code></pre>



<p class="wp-block-paragraph">ISNUMBER関数（セルが数値かを判定する関数）で事前にフィルタしておくと、無駄な呼び出しを減らせますよ。</p>



<h3 class="wp-block-heading"><span id="toc29">短すぎる文字列</span></h3>



<p class="wp-block-paragraph">1〜2文字だけのセルは、どの言語か特定しきれず誤判定になりやすいです。たとえば「OK」を渡すと英語と判定されますが、「あ」1文字だと判定がブレることがあります。</p>



<p class="wp-block-paragraph">実務では<strong>最低でも5〜10文字以上の文字列</strong>を渡すと安定した結果が得られますよ。</p>



<p class="wp-block-paragraph">LEN関数で文字数チェックを入れておくと安心です。</p>



<pre class="wp-block-code"><code>=IF(LEN(A2)&lt;5, &quot;判定保留&quot;, DETECTLANGUAGE(A2))</code></pre>



<p class="wp-block-paragraph">5文字未満なら「判定保留」と表示し、それ以外は判定する形ですね。</p>



<h3 class="wp-block-heading"><span id="toc30">複数言語が混在した文字列</span></h3>



<p class="wp-block-paragraph">「Hello こんにちは」のように複数言語が混ざっている場合、文字数の多い方、または先頭側の言語が返る傾向があります。混在データは事前に分割しておくのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc31">記号や絵文字だけのセル</span></h3>



<p class="wp-block-paragraph">「!!!」「😀😀😀」のような記号や絵文字オンリーのセルは、ほぼ確実にエラーになります。これらは事前にフィルタしておくか、IFERRORでラップしておきましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(DETECTLANGUAGE(A2), &quot;判定不可&quot;)</code></pre>



<p class="wp-block-paragraph">このひと手間で、大量データの処理がスムーズに進みますよ。</p>



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



<p class="wp-block-paragraph">DETECTLANGUAGE関数で表示されるエラーと対処法をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc33">Text Too Long エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 渡したテキストが長すぎる。Microsoft Translation Servicesが受け付ける文字数上限を超えています。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: LEFT関数で先頭500文字程度に切り詰めてから渡しましょう。</p>



<pre class="wp-block-code"><code>=DETECTLANGUAGE(LEFT(A2, 500))</code></pre>



<p class="wp-block-paragraph">言語判定は冒頭の文章だけでも十分精度が出るので、この方法で問題ありません。LEFT関数の詳しい使い方は <a href="https://mashukabu.com/excel-function-howto-use-left/">ExcelのLEFT関数の使い方｜文字列の先頭から指定文字数を取り出す</a> もチェックしてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc34">Error in Value エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 空白セルや非テキスト値（エラー値など）を渡した。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: IF関数で空白チェック、またはIFERRORでラップしましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(DETECTLANGUAGE(A2), &quot;判定不可&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc35">Request Throttled エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 日次のクォータ（Microsoftが定めるリクエスト回数制限）を超えた。大量のセルに数式を貼り付けると発生しやすいです。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 一度に処理する行数を分割するか、翌日にリトライしましょう。一括処理するときは値貼り付けで結果を固定しておくと安心ですよ。</p>



<pre class="wp-block-code"><code>判定 → 結果をコピー → 値のみ貼り付け</code></pre>



<p class="wp-block-paragraph">この流れで再計算を防げます。具体的な手順は次のとおりです。</p>



<ol class="wp-block-list"><li>B列にDETECTLANGUAGE関数を入れて判定実行</li><li>B列を選択し、Ctrl+C でコピー</li><li>同じB列で右クリック → 「値の貼り付け」を選択</li><li>数式が消え、結果の文字列だけが残る</li></ol>



<p class="wp-block-paragraph">これでファイルを開くたびに再計算が走る心配がなくなります。</p>



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



<p class="wp-block-paragraph"><strong>原因</strong>: DETECTLANGUAGE関数に対応していないバージョンのExcelで使っている。またはスペルミス。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: Microsoft 365のサブスクリプションで最新版にアップデートしてください。Excel 2019・2021・LTSC 2024では使えません。</p>



<p class="wp-block-paragraph">「ファイル → アカウント → 更新オプション → 今すぐ更新」で最新ビルドに上げると、新関数が一気に利用可能になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc37">#BUSY! / #CONNECT! エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: クラウドサービスへの接続が一時的に途切れた、または通信が遅延している。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 数秒待ってからF9キーで再計算するか、シートを開き直してみましょう。それでも直らない場合はインターネット接続を確認してください。</p>



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



<p class="wp-block-paragraph"><strong>原因</strong>: 引数の型が想定外（配列の中にエラー値が混在しているケースなど）。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 元データを見直し、エラー値や予期しない型のセルがないかチェックします。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>Text Too Long</td><td>文字数超過</td><td>LEFTで切り詰める</td></tr><tr><td>Error in Value</td><td>空白・非テキスト</td><td>IFERRORでラップ</td></tr><tr><td>Request Throttled</td><td>日次クォータ超過</td><td>分割処理・値貼り付け</td></tr><tr><td>#NAME?</td><td>非対応バージョン</td><td>Microsoft 365に更新</td></tr><tr><td>#BUSY! / #CONNECT!</td><td>通信エラー</td><td>再計算・接続確認</td></tr><tr><td>#VALUE!</td><td>引数の型不一致</td><td>元データを点検</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">エラーパターンは限られているので、落ち着いて対処すれば大丈夫ですよ。</p>



<h2 class="wp-block-heading"><span id="toc39">DETECTLANGUAGE関数を使う際の注意点</span></h2>



<p class="wp-block-paragraph">実務で運用するときに気をつけたいポイントをまとめます。</p>



<h3 class="wp-block-heading"><span id="toc40">クラウド経由でデータが送信される</span></h3>



<p class="wp-block-paragraph">DETECTLANGUAGE関数はMicrosoft Translation Services（クラウドサービス）にテキストを送って判定しています。つまり、<strong>判定対象の文字列が一度Microsoftのサーバーに送信される</strong>ということです。</p>



<p class="wp-block-paragraph">社外秘の機密文書や個人情報を含むセルにそのまま使うのは避けましょう。社内ポリシーで「クラウド翻訳サービスへのデータ送信禁止」となっている場合は、IT管理者に確認してから使ってくださいね。</p>



<h3 class="wp-block-heading"><span id="toc41">大量呼び出しはパフォーマンスに影響する</span></h3>



<p class="wp-block-paragraph">数千〜数万行に一度に数式を貼り付けると、リクエストが大量発生してExcelが固まることがあります。スピル範囲を絞るか、判定後すぐに値貼り付けで固定するのが安全です。</p>



<h3 class="wp-block-heading"><span id="toc42">判定結果は完全ではない</span></h3>



<p class="wp-block-paragraph">機械判定なので、まれに誤判定が発生します。重要な業務判断（契約書の翻訳など）に使う場合は、必ず人の目でレビューを入れるフローにしましょう。</p>



<h3 class="wp-block-heading"><span id="toc43">Mac版・Web版の挙動差</span></h3>



<p class="wp-block-paragraph">Mac版とWeb版のExcelでもDETECTLANGUAGE関数は使えますが、スピル展開のパフォーマンスやエラーメッセージの表示が微妙に異なることがあります。チーム内で環境が混在する場合は、事前に検証しておくと安心です。</p>



<h3 class="wp-block-heading"><span id="toc44">共有ブックでの再計算挙動</span></h3>



<p class="wp-block-paragraph">OneDrive上の共有ブックでDETECTLANGUAGE関数を使う場合、誰かがファイルを開くたびに再計算が走ってクォータを消費します。共有ブックでは「数式タブ → 計算方法の設定 → 手動」にしておくか、判定結果を値貼り付けで固定してから共有するのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc45">バックアップを取ってから一括判定を流す</span></h3>



<p class="wp-block-paragraph">大量データに一気にDETECTLANGUAGE関数を適用すると、再計算が止まらず作業中のブックが固まることがあります。本番データに適用する前に、必ず別ファイルとしてバックアップを取っておきましょう。</p>



<p class="wp-block-paragraph">Ctrl + S で保存 → ファイル名末尾に <code>_backup</code> を付けて別名保存、というシンプルなルーチンで十分です。万一暴走しても元データに戻れる安心感は大きいですよ。</p>



<h2 class="wp-block-heading"><span id="toc46">DETECTLANGUAGE関数が返す主な言語コード一覧</span></h2>



<p class="wp-block-paragraph">DETECTLANGUAGE関数の戻り値はISO 639-1の2文字コードです。「<code>ja</code> なら日本語」とすぐ分かるものもあれば、「<code>nl</code> って何語だっけ？」と迷うものもありますよね。ここではビジネスでよく扱う20言語の早見表をまとめました。手元に置いておくと判定結果を読むときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc47">ビジネスでよく使う言語コード早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>言語コード</th><th>言語名</th><th>主な地域・用途</th></tr></thead><tbody><tr><td><code>ja</code></td><td>日本語</td><td>日本</td></tr><tr><td><code>en</code></td><td>英語</td><td>米国・英国・グローバル共通</td></tr><tr><td><code>zh</code></td><td>中国語</td><td>中国・台湾・香港</td></tr><tr><td><code>ko</code></td><td>韓国語</td><td>韓国</td></tr><tr><td><code>es</code></td><td>スペイン語</td><td>スペイン・中南米</td></tr><tr><td><code>fr</code></td><td>フランス語</td><td>フランス・カナダ・アフリカ一部</td></tr><tr><td><code>de</code></td><td>ドイツ語</td><td>ドイツ・オーストリア・スイス</td></tr><tr><td><code>it</code></td><td>イタリア語</td><td>イタリア</td></tr><tr><td><code>pt</code></td><td>ポルトガル語</td><td>ポルトガル・ブラジル</td></tr><tr><td><code>ru</code></td><td>ロシア語</td><td>ロシア・旧CIS諸国</td></tr><tr><td><code>ar</code></td><td>アラビア語</td><td>中東・北アフリカ</td></tr><tr><td><code>th</code></td><td>タイ語</td><td>タイ</td></tr><tr><td><code>vi</code></td><td>ベトナム語</td><td>ベトナム</td></tr><tr><td><code>id</code></td><td>インドネシア語</td><td>インドネシア</td></tr><tr><td><code>nl</code></td><td>オランダ語</td><td>オランダ・ベルギー</td></tr><tr><td><code>tr</code></td><td>トルコ語</td><td>トルコ</td></tr><tr><td><code>pl</code></td><td>ポーランド語</td><td>ポーランド</td></tr><tr><td><code>hi</code></td><td>ヒンディー語</td><td>インド</td></tr><tr><td><code>sv</code></td><td>スウェーデン語</td><td>スウェーデン</td></tr><tr><td><code>uk</code></td><td>ウクライナ語</td><td>ウクライナ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">東アジア・欧米・東南アジアの主要言語を一通りカバーしています。Microsoft Translation Servicesは100以上の言語に対応していますが、実務で頻繁に登場するのはこのあたりに集約されますよ。</p>



<h3 class="wp-block-heading"><span id="toc48">言語コードを日本語名に変換する実用例</span></h3>



<p class="wp-block-paragraph">判定結果がコードのままだと、レポートに貼ったときに読み手が「<code>vi</code> って何語？」と止まってしまいます。SWITCH関数を使ってコードを日本語名に変換しておくと、誰が見てもひと目で分かる表になりますよ。</p>



<p class="wp-block-paragraph">B列にDETECTLANGUAGE関数の判定結果が入っているとして、C列に日本語名を表示する例です。</p>



<pre class="wp-block-code"><code>=SWITCH(B2,
  &quot;ja&quot;,&quot;日本語&quot;, &quot;en&quot;,&quot;英語&quot;, &quot;zh&quot;,&quot;中国語&quot;, &quot;ko&quot;,&quot;韓国語&quot;,
  &quot;es&quot;,&quot;スペイン語&quot;, &quot;fr&quot;,&quot;フランス語&quot;, &quot;de&quot;,&quot;ドイツ語&quot;, &quot;it&quot;,&quot;イタリア語&quot;,
  &quot;pt&quot;,&quot;ポルトガル語&quot;, &quot;ru&quot;,&quot;ロシア語&quot;, &quot;ar&quot;,&quot;アラビア語&quot;, &quot;th&quot;,&quot;タイ語&quot;,
  &quot;vi&quot;,&quot;ベトナム語&quot;, &quot;id&quot;,&quot;インドネシア語&quot;, &quot;nl&quot;,&quot;オランダ語&quot;, &quot;tr&quot;,&quot;トルコ語&quot;,
  &quot;その他&quot;)</code></pre>



<p class="wp-block-paragraph">SWITCH関数（複数の候補値を順にチェックして最初に一致した値を返す関数）なら、IF関数を何重にもネストせずスッキリ書けます。最後の引数「その他」は、表にない言語コードが返ってきたときの既定値です。詳しい使い方は <a href="https://mashukabu.com/excel-function-howto-use-switch/">ExcelのSWITCH関数の使い方｜複数条件をスッキリ書く</a> も参考になりますよ。</p>



<p class="wp-block-paragraph">実行すると次のような表になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（本文）</th><th>B列（コード）</th><th>C列（言語名）</th></tr></thead><tbody><tr><td>お問い合わせありがとうございます</td><td>ja</td><td>日本語</td></tr><tr><td>Could you send the invoice?</td><td>en</td><td>英語</td></tr><tr><td>请尽快回复</td><td>zh</td><td>中国語</td></tr><tr><td>Cảm ơn quý khách</td><td>vi</td><td>ベトナム語</td></tr><tr><td>Hartelijk dank</td><td>nl</td><td>オランダ語</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc49">IF関数で「対応言語かどうか」を判定する</span></h3>



<p class="wp-block-paragraph">自社が対応できる言語だけを抜き出したいときは、IF関数とOR関数を組み合わせると便利です。たとえば日本語・英語・中国語の3言語に対応しているチームなら、次のように書きます。</p>



<pre class="wp-block-code"><code>=IF(OR(B2={&quot;ja&quot;,&quot;en&quot;,&quot;zh&quot;}), &quot;対応可&quot;, &quot;要外部翻訳&quot;)</code></pre>



<p class="wp-block-paragraph">配列定数 <code>{"ja","en","zh"}</code> を使うと、IFを何重にもネストせずに複数言語をまとめて判定できます。「対応可」と「要外部翻訳」で振り分けておけば、外注すべき案件がひと目で分かりますね。IF関数の基本は <a href="https://mashukabu.com/excel-function-howto-use-if/">ExcelのIF関数の使い方｜条件で処理を分ける</a> でおさらいできますよ。</p>



<p class="wp-block-paragraph">言語コードは一度覚えてしまえば応用が利きます。早見表をブックの片隅に貼っておくか、別シートに変換テーブルとして持たせておくと、多言語データの整理がぐっとラクになりますよ。</p>



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



<p class="wp-block-paragraph">最後に、DETECTLANGUAGE関数について寄せられるよくある質問をまとめました。</p>



<p class="wp-block-paragraph">[faq q=&#8221;DETECTLANGUAGE関数が #NAME? エラーになるのはなぜ？&#8221; a=&#8221;お使いのExcelがDETECTLANGUAGE関数に未対応のバージョンの可能性が高いです。永続ライセンス版のExcel 2019・2021・LTSC 2024では使えません。Microsoft 365のサブスクリプション版にアップグレードするか、最新ビルドに更新してください。「ファイル → アカウント」で「Microsoft 365 Apps」と表示されていればOKです。&#8221;]</p>



<p class="wp-block-paragraph">[faq q=&#8221;オフライン環境でも使えますか？&#8221; a=&#8221;使えません。DETECTLANGUAGE関数は裏側でMicrosoft Translation Services（クラウドサービス）を呼び出すため、インターネット接続が必須です。社内のオフラインPCで使う必要がある場合は、別マシンで判定 → 値貼り付けで結果を持ち込む運用にしましょう。&#8221;]</p>



<p class="wp-block-paragraph">[faq q=&#8221;判定対象の文字列はクラウドに送信されますか？&#8221; a=&#8221;はい、送信されます。Microsoftのサーバーに一時的にデータが送られて判定処理が走る仕組みです。社外秘情報や個人情報を含む文字列にそのまま使うのは避け、社内のセキュリティポリシーを確認したうえで使ってください。&#8221;]</p>



<p class="wp-block-paragraph">[faq q=&#8221;中国語の繁体字と簡体字は区別できますか？&#8221; a=&#8221;関数の戻り値は基本的に zh の2文字コードで返ります。場面によっては zh-Hans（簡体字）・zh-Hant（繁体字）のように細分化されることもありますが、確実な区別が必要なら別途文字種チェックを組み合わせるのが安全です。&#8221;]</p>



<p class="wp-block-paragraph">[faq q=&#8221;TRANSLATE関数と組み合わせるとクォータを2回消費しますか？&#8221; a=&#8221;はい、消費します。DETECTLANGUAGE と TRANSLATE は別々にクラウドサービスを呼び出すため、リクエストカウンタとしては別カウントです。大量データを扱う場合は、まずDETECTLANGUAGEで判定 → 結果を値貼り付け → 必要な行だけTRANSLATEで翻訳、という2段階運用がおすすめです。&#8221;]</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-googletranslate-function/">faq q=&#8221;Google スプレッドシートにも同じ関数はありますか？&#8221; a=&#8221;スプレッドシートにはDETECTLANGUAGEと完全一致する関数はありませんが、GOOGLETRANSLATE 関数の補助機能や Apps Script で同等処理を組めます。スプレッドシート派の方は [GoogleスプレッドシートのGOOGLETRANSLATE関数の使い方</a> も合わせてご覧ください。&#8221;]</p>



<p class="wp-block-paragraph">[faq q=&#8221;判定速度を上げる方法はありますか？&#8221; a=&#8221;数式の再計算が遅い場合は、（1）スピル範囲を必要最小限に絞る、（2）判定後すぐに値貼り付けで固定する、（3）短すぎる文字列はLEN関数で事前に弾く、の3点で大幅に改善します。クォータエラーも減らせるので一石二鳥ですよ。&#8221;]</p>



<p class="wp-block-paragraph">[faq q=&#8221;DETECTLANGUAGE関数の結果を他の関数の引数として直接渡せますか？&#8221; a=&#8221;はい、可能です。=TRANSLATE(A2, DETECTLANGUAGE(A2), &#8216;ja&#8217;) のように、別の関数の引数として入れ子にして使えます。ただし関数を入れ子にするとクラウド呼び出しが2倍発生するため、大量データでは判定結果を別列で固定してから翻訳する2段階運用がパフォーマンス面で有利です。&#8221;]</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-if/">faq q=&#8221;判定結果を[IF関数</a>で分岐させる時の典型例は？&#8221; a=&#8221;日本語以外を「翻訳対象」として振り分けるなら =IF(DETECTLANGUAGE(A2)=&#8217;ja&#8217;,&#8217;日本語のまま&#8217;,&#8217;要翻訳&#8217;) のように書きます。IF関数とDETECTLANGUAGEの組み合わせは「言語別の処理分岐」の入り口として最初に覚えると応用が利きます。複数言語をまとめて判定したいときは =IF(OR(DETECTLANGUAGE(A2)={&#8216;en&#8217;,&#8217;fr&#8217;,&#8217;de&#8217;}),&#8217;欧米&#8217;,&#8217;その他&#8217;) のように配列定数を使うとIFのネストが短くなります。&#8221;]</p>



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



<p class="wp-block-paragraph">ExcelのDETECTLANGUAGE関数は、セルに入っている文字列の言語を自動判定してくれる便利な関数です。</p>



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



<ul class="wp-block-list"><li>構文は <code>=DETECTLANGUAGE(テキスト)</code> で引数は1つだけ</li><li>Microsoft 365のサブスクリプションとインターネット接続が必須</li><li>戻り値はISO 639-1の2文字コード（<code>ja</code> <code>en</code> <code>zh</code> など）</li><li>スピル対応なので範囲を渡して一括判定できる</li><li>SWITCH関数と組み合わせれば日本語の言語名に変換できる</li><li>TRANSLATE関数と連携すれば多言語データを一括翻訳できる</li><li>短文・空白・数字のみのセルは誤判定やエラーに注意</li><li>エラー時はIFERRORでラップしておくと安心</li><li>クラウド経由でデータが送信される点に注意（機密情報は要注意）</li><li>大量データは値貼り付けで結果を固定するとクォータエラーを回避できる</li></ul>



<p class="wp-block-paragraph">まずは <code>=DETECTLANGUAGE("Hello world")</code> のようなシンプルな式から試してみてください。グローバル業務のデータ整理がぐっとラクになりますよ。</p>



<p class="wp-block-paragraph">慣れてきたら、TRANSLATE関数やFILTER関数と組み合わせて「言語別の自動仕分け＋自動翻訳」までワンセットで自動化してみましょう。手作業のコピペから解放されて、本来やるべき分析や提案に時間を使えるようになりますよ。</p>



<p class="wp-block-paragraph">文字列操作系の関数を一通り押さえておきたい方は、姉妹記事もぜひあわせてどうぞ。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-translate/">ExcelのTRANSLATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-regexreplace/">ExcelのREGEXREPLACE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">ExcelのIFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-if/">ExcelのIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-switch/">ExcelのSWITCH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数一覧【機能別】</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-detectlanguage/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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-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">スプレッドシートの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>スプレッドシートのIFS関数の使い方｜複数条件分岐をスッキリ書く方法</title>
		<link>https://mashukabu.com/spreadsheet-ifs-function/</link>
					<comments>https://mashukabu.com/spreadsheet-ifs-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 20 Mar 2026 13:57:02 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[AND関数]]></category>
		<category><![CDATA[IFS関数]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[SWITCH関数]]></category>
		<category><![CDATA[条件分岐]]></category>
		<category><![CDATA[複数条件]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4697</guid>

					<description><![CDATA[スプレッドシートのIFS関数の使い方を基本から解説。複数条件の分岐をIF関数のネストなしで書ける便利な関数です。構文・基本例・IF関数との違い・SWITCH関数との使い分け・エラー対処法まで実務シナリオで丁寧に解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「スプレッドシートで条件が3つ以上あるとき、IF関数のネストがどんどん深くなって読めなくなる」。こんな悩み、ありませんか？</p>



<p class="wp-block-paragraph">括弧の数を数えながら修正するのは本当にストレスですよね。条件を1つ追加するだけなのに、数式全体を読み直す必要があります。</p>



<p class="wp-block-paragraph">そんなときに使えるのが、スプレッドシートのIFS関数です。この記事では構文と基本の使い方から、IF関数との違い、実務での応用パターン、エラー対処法まで丁寧に解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのIFS関数とは？複数条件分岐の基本</a></li><li><a href="#toc2" tabindex="0">IFS関数の書き方（構文・引数）</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">IFS関数の基本的な使い方</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">IFS関数の実践的な使い方・応用例</a><ol><li><a href="#toc10" tabindex="0">応用1: 売上ランクの自動判定</a></li><li><a href="#toc11" tabindex="0">応用2: AND関数・OR関数との組み合わせ</a></li><li><a href="#toc12" tabindex="0">応用3: 文字列の判定</a></li></ol></li><li><a href="#toc13" tabindex="0">IFS関数でよくあるエラーと対処法</a><ol><li><a href="#toc14" tabindex="0">#N/Aエラーの対処法</a></li><li><a href="#toc15" tabindex="0">条件の順番による意図しない結果</a></li></ol></li><li><a href="#toc16" tabindex="0">IFS関数とIF関数・SWITCH関数の違い・使い分け</a><ol><li><a href="#toc17" tabindex="0">IFS関数とIF関数（ネスト）の比較</a></li><li><a href="#toc18" tabindex="0">IFS関数とSWITCH関数の比較</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ</a><ol><li><a href="#toc20" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのIFS関数とは？複数条件分岐の基本</span></h2>



<p class="wp-block-paragraph">IFS関数（読み方: イフス関数）は、<strong>複数の条件を順番に判定し、最初にTRUEになった条件の値を返す関数</strong>です。名前の由来はIF関数の複数形で、「IFs（もし〜ならを複数並べる）」という意味です。</p>



<p class="wp-block-paragraph">たとえば「テストの点数が80点以上ならA、60点以上ならB、それ以外はC」という3段階の評価を考えてみましょう。IF関数のネストだと括弧が入り組んでしまいますが、IFS関数なら条件と値のペアを並べるだけです。</p>



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



<ul class="wp-block-list"><li>3段階以上の条件分岐をフラットに書ける</li><li>IF関数のネスト（入れ子）を解消して読みやすくする</li><li>条件の追加や変更がカンタンにできる</li><li>最大127組の条件と値のペアを指定できる</li></ul>



<p class="wp-block-paragraph">「IF関数のネスト地獄から脱出する関数」と覚えておくとわかりやすいですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>IFS関数はGoogleスプレッドシートの全バージョンで使えます。Excelでは2019以降またはMicrosoft 365で対応しています。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=IFS(条件1, 値1, 条件2, 値2, ..., 条件N, 値N)</code></pre>



<p class="wp-block-paragraph">条件と値を<strong>ペアで</strong>指定するのがポイントです。条件がTRUEなら対応する値を返し、FALSEなら次の条件に進みます。</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>最初に判定する条件式（例: B2>=80）</td></tr><tr><td>値1</td><td>必須</td><td>条件1がTRUEのときに返す値</td></tr><tr><td>条件2, 値2</td><td>省略可</td><td>2番目以降の条件と値のペア</td></tr><tr><td>&#8230;</td><td>省略可</td><td>最大127組まで追加可能</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>引数は必ず<strong>偶数個</strong>で指定します。条件だけ書いて値を省略すると、構文エラーになるので注意してください。</p></blockquote>



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



<p class="wp-block-paragraph">ここでは、テストの点数をA・B・Cの3段階で評価する例を使って基本をマスターしましょう。</p>



<h3 class="wp-block-heading"><span id="toc6">サンプルデータ</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th></tr></thead><tbody><tr><td>1</td><td>名前</td><td>点数</td><td>評価</td></tr><tr><td>2</td><td>田中</td><td>85</td><td>（ここに数式を入力）</td></tr><tr><td>3</td><td>佐藤</td><td>72</td><td>&nbsp;</td></tr><tr><td>4</td><td>鈴木</td><td>55</td><td>&nbsp;</td></tr><tr><td>5</td><td>高橋</td><td>90</td><td>&nbsp;</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc7">数式の入力</span></h3>



<p class="wp-block-paragraph">セルC2に次の数式を入力します。</p>



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



<p class="wp-block-paragraph">この数式は次のように動作します。</p>



<ol class="wp-block-list"><li>B2が80以上なら「A」を返す</li><li>B2が60以上なら「B」を返す</li><li>どちらでもなければ「C」を返す（TRUEで受け取る）</li></ol>



<p class="wp-block-paragraph">田中さんの点数は85なので、最初の条件 <code>B2>=80</code> がTRUEになり、「A」が返ります。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th></tr></thead><tbody><tr><td>1</td><td>名前</td><td>点数</td><td>評価</td></tr><tr><td>2</td><td>田中</td><td>85</td><td>A</td></tr><tr><td>3</td><td>佐藤</td><td>72</td><td>B</td></tr><tr><td>4</td><td>鈴木</td><td>55</td><td>C</td></tr><tr><td>5</td><td>高橋</td><td>90</td><td>A</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは<strong>最後の条件にTRUEを指定する</strong>ことです。これはIF関数のFALSE値（どの条件にも合致しない場合の値）に相当します。TRUEを省略すると、すべての条件がFALSEの場合に#N/Aエラーになってしまいますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>IFS関数は<strong>上から順番に条件を評価して、最初にTRUEになった時点で処理を終了</strong>します。条件の順番が結果に影響するので、判定したい順に並べてくださいね。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc9">IFS関数の実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc10">応用1: 売上ランクの自動判定</span></h3>



<p class="wp-block-paragraph">営業成績を4段階で自動分類する例です。</p>



<p class="wp-block-paragraph"><strong>Before（手作業）</strong>: 売上データを見ながら1行ずつランクを手入力</p>



<p class="wp-block-paragraph"><strong>After（IFS関数で自動化）</strong>:</p>



<pre class="wp-block-code"><code>=IFS(B2&gt;=1000000, &quot;S&quot;, B2&gt;=500000, &quot;A&quot;, B2&gt;=200000, &quot;B&quot;, TRUE, &quot;C&quot;)</code></pre>



<p class="wp-block-paragraph">100万円以上はSランク、50万円以上はAランク、20万円以上はBランク、それ以外はCランクです。条件は<strong>大きい値から順番に</strong>並べるのがコツですよ。</p>



<p class="wp-block-paragraph">小さい値から並べると、たとえば100万円の売上でも <code>B2>=200000</code> が先にTRUEになってしまい、Bランクと判定されてしまいます。</p>



<h3 class="wp-block-heading"><span id="toc11">応用2: AND関数・OR関数との組み合わせ</span></h3>



<p class="wp-block-paragraph">IFS関数の条件にAND関数やOR関数を組み合わせることもできます。AND関数（読み方: アンド関数）は複数条件をすべて満たすか判定する関数です。OR関数（読み方: オア関数）は複数条件のいずれかを満たすか判定します。</p>



<p class="wp-block-paragraph">たとえば「部署が営業で、かつ売上50万円以上なら&#8221;MVP候補&#8221;」と判定する例です。</p>



<pre class="wp-block-code"><code>=IFS(AND(A2=&quot;営業&quot;, B2&gt;=500000), &quot;MVP候補&quot;, AND(A2=&quot;営業&quot;, B2&gt;=200000), &quot;優秀&quot;, TRUE, &quot;-&quot;)</code></pre>



<p class="wp-block-paragraph">この数式では、AND関数で2つの条件を同時に判定しています。「営業部で売上50万以上」ならMVP候補です。「営業部で売上20万以上」なら優秀、それ以外は「-」を返します。</p>



<h3 class="wp-block-heading"><span id="toc12">応用3: 文字列の判定</span></h3>



<p class="wp-block-paragraph">IFS関数は数値だけでなく、文字列の条件判定にも使えます。</p>



<pre class="wp-block-code"><code>=IFS(A2=&quot;完了&quot;, &quot;対応不要&quot;, A2=&quot;進行中&quot;, &quot;フォロー&quot;, A2=&quot;未着手&quot;, &quot;要アサイン&quot;, TRUE, &quot;確認必要&quot;)</code></pre>



<p class="wp-block-paragraph">ステータス列の値に応じて次のアクションを自動で表示する使い方です。タスク管理シートで活用してみてください。</p>



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



<p class="wp-block-paragraph">IFS関数を使うときによく遭遇するエラーをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A</td><td>すべての条件がFALSEになった</td><td>最後の条件に <code>TRUE, "デフォルト値"</code> を追加する</td></tr><tr><td>構文エラー（数式の解析エラー）</td><td>引数が奇数個（条件に対応する値がない）</td><td>条件と値がペアになっているか確認する</td></tr><tr><td>#VALUE!</td><td>条件式がTRUE/FALSEを返さない</td><td>条件式に比較演算子（=, >, <など）が含まれているか確認する</td></tr><tr><td>#REF!</td><td>参照先のセルが削除された</td><td>数式内のセル参照を修正する</td></tr><tr><td>#ERROR!</td><td>数式の書き方が正しくない</td><td>カンマの位置やダブルクォーテーションの閉じ忘れを確認する</td></tr><tr><td>意図しない結果</td><td>条件の順番が間違っている</td><td>条件を大きい値（優先度の高い方）から並べ直す</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc14">#N/Aエラーの対処法</span></h3>



<p class="wp-block-paragraph">最もよくあるエラーがこの#N/Aです。IFS関数は<strong>どの条件にもTRUEにならないと#N/Aを返す</strong>仕様です。</p>



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



<p class="wp-block-paragraph">この数式だと、60点未満の場合に#N/Aエラーが出ます。最後に <code>TRUE, "C"</code> を追加して対処しましょう。</p>



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



<h3 class="wp-block-heading"><span id="toc15">条件の順番による意図しない結果</span></h3>



<p class="wp-block-paragraph">IFS関数でもう1つ注意したいのが、条件の並び順です。</p>



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



<p class="wp-block-paragraph">この数式だと、85点でも <code>B2>=60</code> が先にTRUEになるため「B」と判定されてしまいます。大きい値の条件を先に書くのが鉄則ですよ。</p>



<h2 class="wp-block-heading"><span id="toc16">IFS関数とIF関数・SWITCH関数の違い・使い分け</span></h2>



<h3 class="wp-block-heading"><span id="toc17">IFS関数とIF関数（ネスト）の比較</span></h3>



<p class="wp-block-paragraph">同じ3段階評価をIF関数のネストとIFS関数で書き比べてみましょう。</p>



<p class="wp-block-paragraph"><strong>IF関数のネスト:</strong></p>



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



<p class="wp-block-paragraph"><strong>IFS関数:</strong></p>



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



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>IF関数（ネスト）</th><th>IFS関数</th></tr></thead><tbody><tr><td>書き方</td><td>IFの中にIFを入れる</td><td>条件と値のペアを並べる</td></tr><tr><td>可読性</td><td>ネストが深くなると低下</td><td>条件が増えてもフラット</td></tr><tr><td>条件追加</td><td>括弧の位置を慎重に調整</td><td>ペアを追加するだけ</td></tr><tr><td>デフォルト値</td><td>FALSE値で指定（必ず設定される）</td><td>TRUE+値で明示的に設定が必要</td></tr><tr><td>2択の分岐</td><td>シンプルで最適</td><td>冗長になりがち</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>使い分けの目安</strong>: 条件が2つまでならIF関数、3つ以上ならIFS関数がおすすめです。IF関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-if-function/">スプレッドシートのIF関数の使い方</a>」で解説しています。</p>



<h3 class="wp-block-heading"><span id="toc18">IFS関数とSWITCH関数の比較</span></h3>



<p class="wp-block-paragraph">SWITCH関数（読み方: スイッチ関数。特定の値と一致するかで分岐する関数）は「値の一致判定」に特化しています。</p>



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



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;東京&quot;, &quot;関東&quot;, &quot;大阪&quot;, &quot;関西&quot;, &quot;名古屋&quot;, &quot;中部&quot;, &quot;その他&quot;)</code></pre>



<p class="wp-block-paragraph"><strong>IFS関数:</strong></p>



<pre class="wp-block-code"><code>=IFS(A2=&quot;東京&quot;, &quot;関東&quot;, A2=&quot;大阪&quot;, &quot;関西&quot;, A2=&quot;名古屋&quot;, &quot;中部&quot;, TRUE, &quot;その他&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>IFS関数</th><th>SWITCH関数</th></tr></thead><tbody><tr><td>判定方法</td><td>条件式（比較演算子を使える）</td><td>値の完全一致</td></tr><tr><td>範囲条件</td><td>対応（>=80など）</td><td>非対応</td></tr><tr><td>等値判定</td><td>やや冗長</td><td>スッキリ書ける</td></tr><tr><td>デフォルト値</td><td>TRUE+値</td><td>最後の引数</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>使い分けの目安</strong>: 「80点以上」のような範囲条件ならIFS関数、「東京」「大阪」のような値の一致判定ならSWITCH関数を使いましょう。</p>



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



<p class="wp-block-paragraph">この記事ではスプレッドシートのIFS関数について解説しました。ポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>IFS関数は<strong>条件と値のペアを並べるだけ</strong>で複数条件の分岐ができる</li><li>最後の条件に<strong>TRUEを指定</strong>して、デフォルト値を必ず設定する</li><li>条件は<strong>大きい値（優先度の高い方）から順番に</strong>並べる</li><li>2択の分岐はIF関数、3つ以上の分岐はIFS関数が便利</li><li>値の完全一致ならSWITCH関数のほうがスッキリ書ける</li></ul>



<p class="wp-block-paragraph">IFS関数を使えば、IF関数のネストで複雑になっていた数式がぐっと読みやすくなります。ぜひ実務で試してみてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc20">この記事で紹介した関数・関連記事</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-countifs-function/">スプレッドシートのCOUNTIFS関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-ifs-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのCHOOSE関数の使い方｜インデックスで値選択</title>
		<link>https://mashukabu.com/spreadsheet-choose-function/</link>
					<comments>https://mashukabu.com/spreadsheet-choose-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:13:34 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[CHOOSE関数]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[SWITCH関数]]></category>
		<category><![CDATA[WEEKDAY関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[条件分岐]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4668</guid>

					<description><![CDATA[スプレッドシートのCHOOSE関数の使い方を基本から解説。構文・引数の意味、WEEKDAY関数と組み合わせた曜日変換、IF・SWITCH関数との使い分け、よくあるエラーの対処法まで実務サンプルつきで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「評価ランクの1〜5に応じてラベルを出し分けたい」。こんなとき、IF関数のネストを何段も重ねていませんか。</p>



<p class="wp-block-paragraph">条件が増えるたびに数式が長くなって、修正するのも一苦労ですよね。</p>



<p class="wp-block-paragraph">そんな場面で活躍するのがCHOOSE関数です。番号を指定するだけで対応する値を返してくれます。</p>



<p class="wp-block-paragraph">この記事では、CHOOSE関数の基本から実務で使える応用パターンまで解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのCHOOSE関数とは？</a></li><li><a href="#toc2" tabindex="0">CHOOSE関数の書き方（構文と引数）</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">CHOOSE関数の基本的な使い方</a></li><li><a href="#toc6" tabindex="0">CHOOSE関数の実践的な使い方・応用例</a><ol><li><a href="#toc7" tabindex="0">WEEKDAY関数と組み合わせて曜日を表示する</a></li><li><a href="#toc8" tabindex="0">MONTH関数と組み合わせて四半期を判定する</a></li><li><a href="#toc9" tabindex="0">セル参照や数式を値に指定する</a></li></ol></li><li><a href="#toc10" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc11" tabindex="0">IF・SWITCH関数との違い・使い分け</a><ol><li><a href="#toc12" tabindex="0">使い分けの判断基準</a></li></ol></li><li><a href="#toc13" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">CHOOSE関数（読み方: チューズ関数）は、インデックス番号に対応する値を返す関数です。</p>



<p class="wp-block-paragraph">英語の「Choose（選ぶ）」が名前の由来です。</p>



<p class="wp-block-paragraph">「番号札で値を引き当てる」イメージで覚えてみてください。</p>



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



<ul class="wp-block-list"><li>インデックス番号（1, 2, 3&#8230;）に対応する値を返す</li><li>値には文字列・数値・セル参照・数式を指定できる</li><li>WEEKDAY関数（曜日番号を返す関数）と組み合わせて曜日名を表示する</li><li>MONTH関数（月番号を返す関数）と組み合わせて四半期ラベルを判定する</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>CHOOSE関数はインデックスが1から始まる連番のときに力を発揮します。条件が「〇〇以上」「〇〇を含む」のような判定の場合は、IF関数やSWITCH関数のほうが向いています。</p></blockquote>



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



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



<p class="wp-block-paragraph">CHOOSE関数の構文はこちらです。</p>



<pre class="wp-block-code"><code>=CHOOSE(インデックス, 値1, 値2, ...)</code></pre>



<p class="wp-block-paragraph">引数は最低3つ必要です。値は最大30個まで指定できます。</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><th>指定例</th></tr></thead><tbody><tr><td>インデックス</td><td>必須</td><td>何番目の値を返すかを指定する番号（1〜30）</td><td>2</td></tr><tr><td>値1</td><td>必須</td><td>インデックスが1のときに返す値</td><td>&#8220;りんご&#8221;</td></tr><tr><td>値2, 値3&#8230;</td><td>省略可</td><td>インデックスが2, 3&#8230;のときに返す値</td><td>&#8220;みかん&#8221;, &#8220;ぶどう&#8221;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">インデックスに小数を指定した場合、小数部分は切り捨てられます。たとえば <code>2.9</code> なら <code>2</code> として扱われます。</p>



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



<p class="wp-block-paragraph">ここではシンプルな例でCHOOSE関数の動きを確認してみましょう。</p>



<p class="wp-block-paragraph">セルA2に評価ランク（1〜3の数値）が入っているとします。このランクに応じてラベルを表示する数式はこちらです。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



<pre class="wp-block-code"><code>=CHOOSE(A2, &quot;優&quot;, &quot;良&quot;, &quot;可&quot;)</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/02_formula_choose-basic.png" alt="02 formula choose basic" /></figure>



<p class="wp-block-paragraph">A2が <code>1</code> なら「優」、<code>2</code> なら「良」、<code>3</code> なら「可」が返ります。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_result_choose-basic.png" alt="03 result choose basic" /></figure>



<p class="wp-block-paragraph">IF関数で同じことを書くと次のようになります。</p>



<pre class="wp-block-code"><code>=IF(A2=1, &quot;優&quot;, IF(A2=2, &quot;良&quot;, &quot;可&quot;))</code></pre>



<p class="wp-block-paragraph">CHOOSE関数のほうが、どの番号にどの値が対応しているか一目でわかりますよね。</p>



<p class="wp-block-paragraph">もうひとつ例を見てみましょう。部署コード（1〜5）から部署名を返すケースです。</p>



<pre class="wp-block-code"><code>=CHOOSE(B2, &quot;営業部&quot;, &quot;経理部&quot;, &quot;総務部&quot;, &quot;人事部&quot;, &quot;開発部&quot;)</code></pre>



<p class="wp-block-paragraph">選択肢が多いほど、CHOOSE関数の読みやすさが際立ちます。IF関数だと4段ネストが必要ですが、1行で書けますよ。</p>



<h2 class="wp-block-heading"><span id="toc6">CHOOSE関数の実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc7">WEEKDAY関数と組み合わせて曜日を表示する</span></h3>



<p class="wp-block-paragraph">WEEKDAY関数は日付から曜日番号（1〜7）を返す関数です。この番号をCHOOSE関数に渡せば、曜日名を表示できます。</p>



<p class="wp-block-paragraph">セルA2に日付が入っているとき、次の数式で曜日を取得できます。</p>



<pre class="wp-block-code"><code>=CHOOSE(WEEKDAY(A2), &quot;日&quot;, &quot;月&quot;, &quot;火&quot;, &quot;水&quot;, &quot;木&quot;, &quot;金&quot;, &quot;土&quot;)</code></pre>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-choose-function/04_result_choose-weekday.png/">_images/spreadsheet-choose-function/04_result_choose-weekday.png</a></p>



<p class="wp-block-paragraph">WEEKDAY関数はデフォルトで日曜=1〜土曜=7を返します。値1〜値7に曜日名を並べるだけなので、直感的に書けますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>TEXT関数で <code>=TEXT(A2, "ddd")</code> と書いても曜日を取得できます。ただし「月」「火」のような1文字表記にしたい場合は、CHOOSE+WEEKDAYのほうが柔軟に対応できます。</p></blockquote>



<p class="wp-block-paragraph">スプレッドシートのWEEKDAY関数について詳しく知りたい方は、「<a href="https://mashukabu.com/spreadsheet-weekday-function/">スプレッドシートのWEEKDAY関数の使い方</a>」もあわせてご覧ください。</p>



<h3 class="wp-block-heading"><span id="toc8">MONTH関数と組み合わせて四半期を判定する</span></h3>



<p class="wp-block-paragraph">MONTH関数は日付から月番号（1〜12）を返す関数です。CHOOSE関数と組み合わせれば、四半期ラベルを振れます。</p>



<pre class="wp-block-code"><code>=CHOOSE(MONTH(A2), &quot;Q3&quot;,&quot;Q3&quot;,&quot;Q3&quot;, &quot;Q4&quot;,&quot;Q4&quot;,&quot;Q4&quot;, &quot;Q1&quot;,&quot;Q1&quot;,&quot;Q1&quot;, &quot;Q2&quot;,&quot;Q2&quot;,&quot;Q2&quot;)</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/05_result_choose-month.png" alt="05 result choose month" /></figure>



<p class="wp-block-paragraph">日本の会計年度（4月始まり）に合わせた対応表はこちらです。</p>



<figure class="wp-block-table"><table><thead><tr><th>月</th><th>1〜3月</th><th>4〜6月</th><th>7〜9月</th><th>10〜12月</th></tr></thead><tbody><tr><td>四半期</td><td>Q3</td><td>Q4</td><td>Q1</td><td>Q2</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IF関数で同じ処理を書くと条件式が複雑になります。CHOOSE関数なら月番号と値を1対1で並べるだけです。</p>



<p class="wp-block-paragraph">値の順番を変えれば、1月始まりにも対応できますよ。</p>



<h3 class="wp-block-heading"><span id="toc9">セル参照や数式を値に指定する</span></h3>



<p class="wp-block-paragraph">CHOOSE関数の値には、文字列や数値だけでなくセル参照や数式も指定できます。</p>



<p class="wp-block-paragraph">たとえば、集計モード（1=合計、2=平均、3=最大値）に応じて計算方法を切り替えるケースです。</p>



<pre class="wp-block-code"><code>=CHOOSE(D2, SUM(B2:B10), AVERAGE(B2:B10), MAX(B2:B10))</code></pre>



<p class="wp-block-paragraph">D2が <code>1</code> ならSUM、<code>2</code> ならAVERAGE、<code>3</code> ならMAXの結果です。切り替えが簡単にできて便利ですよ。</p>



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



<p class="wp-block-paragraph">CHOOSE関数で発生しやすいエラーをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#VALUE!</code></td><td>インデックスに文字列や空白を指定した</td><td>インデックスが数値になっているか確認する</td></tr><tr><td><code>#VALUE!</code></td><td>インデックスが0以下、または値の個数を超えている</td><td>値の個数（1〜30）の範囲内か確認する</td></tr><tr><td><code>#REF!</code></td><td>値に指定したセル参照が無効になった</td><td>参照先のセルが削除されていないか確認する</td></tr><tr><td>意図しない結果</td><td>インデックスに小数が入っている</td><td>INT関数で整数に変換してから渡す</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">インデックスが範囲外のときにエラーを回避したい場合は、IFERROR関数で囲むのがおすすめです。</p>



<pre class="wp-block-code"><code>=IFERROR(CHOOSE(A2, &quot;優&quot;, &quot;良&quot;, &quot;可&quot;), &quot;対象外&quot;)</code></pre>



<p class="wp-block-paragraph">A2が1〜3以外の値でも「対象外」と表示されるので、エラー表示を防げます。</p>



<h2 class="wp-block-heading"><span id="toc11">IF・SWITCH関数との違い・使い分け</span></h2>



<p class="wp-block-paragraph">CHOOSE関数と似た働きをするIF関数・SWITCH関数との違いを比較表で整理しました。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>CHOOSE関数</th><th>IF関数</th><th>SWITCH関数</th></tr></thead><tbody><tr><td>判定方法</td><td>インデックス番号（1, 2, 3&#8230;）</td><td>条件式（TRUE/FALSE）</td><td>値の一致判定</td></tr><tr><td>得意な場面</td><td>連番に対応する値を返す</td><td>「〇〇以上」「〇〇かつ〇〇」の判定</td><td>不連続な値（&#8221;A&#8221;, &#8220;B&#8221;, &#8220;C&#8221;）の振り分け</td></tr><tr><td>数式の読みやすさ</td><td>値を並べるだけでシンプル</td><td>ネストが深いと読みにくい</td><td>条件と結果がペアで読みやすい</td></tr><tr><td>最大分岐数</td><td>30パターン</td><td>ネスト制限あり</td><td>最大126ペア</td></tr><tr><td>条件の柔軟性</td><td>低い（1始まりの連番のみ）</td><td>高い（自由な条件式）</td><td>中程度（値の一致のみ）</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">迷ったときは、次の基準で選んでみてください。</p>



<ul class="wp-block-list"><li><strong>CHOOSE関数</strong>: WEEKDAY・MONTHなど「1から始まる連番」を返す関数と組み合わせるとき</li><li><strong>IF関数</strong>: 「売上が10万円以上なら」のように、数値の大小や複合条件で分岐するとき</li><li><strong>SWITCH関数</strong>: 「商品コードがA001なら〜、B002なら〜」のように、不連続な値で分岐するとき</li></ul>



<p class="wp-block-paragraph">IF関数やSWITCH関数の詳しい使い方は、以下の記事で解説しています。</p>



<ul class="wp-block-list"><li>INDEX関数で行列を指定して値を取得する方法は「<a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a>」をご覧ください</li><li>VLOOKUPで検索キーから値を引く方法は「<a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方</a>」をご覧ください</li></ul>



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



<p class="wp-block-paragraph">この記事では、スプレッドシートのCHOOSE関数の使い方を解説しました。</p>



<p class="wp-block-paragraph">ポイントをおさらいしましょう。</p>



<ul class="wp-block-list"><li>CHOOSE関数は、インデックス番号に対応する値を返す関数</li><li>WEEKDAY関数やMONTH関数と組み合わせると、曜日名や四半期ラベルを簡単に表示できる</li><li>値にはセル参照や数式も指定できるので、集計方法の切り替えにも使える</li><li>インデックスが範囲外のときはIFERROR関数でエラーを回避する</li><li>連番以外の条件分岐にはIF関数やSWITCH関数を使い分ける</li></ul>



<p class="wp-block-paragraph">IF関数のネストが深くなってきたら、CHOOSE関数を試してみてください。数式がすっきり読みやすくなりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-choose-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのCHOOSE関数の使い方｜IFネストをすっきり書き換える</title>
		<link>https://mashukabu.com/excel-function-howto-use-choose/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-choose/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 29 Oct 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CHOOSE関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[IFS関数]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[SWITCH関数]]></category>
		<category><![CDATA[条件分岐]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2914</guid>

					<description><![CDATA[ExcelのCHOOSE関数の使い方をわかりやすく解説。IFネスト多段分岐をすっきり書き換える方法から、WEEKDAY関数との曜日表示、MONTH関数を使った四半期算出まで実務パターンを網羅。IF・IFS・SWITCHとの使い分けも比較表で確認できます。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「1なら電車、2ならバス、3なら飛行機…」。こんなふうに番号で値を振り分けたいとき、IF関数のネストで対応していませんか？</p>



<p class="wp-block-paragraph">条件が増えるたびに括弧が深くなって、読むのも修正するのも大変ですよね。</p>



<p class="wp-block-paragraph">そんなときに便利なのが、ExcelのCHOOSE関数です。この記事では基本の構文から実務で役立つ応用パターン、IF・IFS・SWITCHとの使い分けまでわかりやすく解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-5" checked><label class="toc-title" for="toc-checkbox-5">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのCHOOSE関数とは？</a><ol><li><a href="#toc2" tabindex="0">CHOOSE関数でできること</a></li><li><a href="#toc3" tabindex="0">どんな場面で使う？</a></li></ol></li><li><a href="#toc4" tabindex="0">CHOOSE関数の構文と引数</a><ol><li><a href="#toc5" tabindex="0">構文の読み方</a></li><li><a href="#toc6" tabindex="0">引数の指定ルール（最大254値）</a></li></ol></li><li><a href="#toc7" tabindex="0">基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">シンプルな番号→値の変換</a></li><li><a href="#toc9" tabindex="0">IFネスト3段とCHOOSEのビフォー・アフター</a></li></ol></li><li><a href="#toc10" tabindex="0">実践的な使い方（応用3パターン）</a><ol><li><a href="#toc11" tabindex="0">WEEKDAY関数と組み合わせて曜日名を表示する</a></li><li><a href="#toc12" tabindex="0">MONTH関数と組み合わせて四半期を求める</a></li><li><a href="#toc13" tabindex="0">集計方法を切り替える（SUM・AVERAGE・COUNTなど）</a></li></ol></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc15" tabindex="0">#VALUE! エラー：インデックスが0以下・上限超過</a></li><li><a href="#toc16" tabindex="0">IFERROR関数でエラーをやさしく処理する</a></li></ol></li><li><a href="#toc17" tabindex="0">IF・IFS・SWITCH関数との使い分け</a><ol><li><a href="#toc18" tabindex="0">4関数の特徴比較表</a></li><li><a href="#toc19" tabindex="0">シーン別おすすめ関数</a></li></ol></li><li><a href="#toc20" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのCHOOSE関数とは？</span></h2>



<h3 class="wp-block-heading"><span id="toc2">CHOOSE関数でできること</span></h3>



<p class="wp-block-paragraph">CHOOSE関数（読み方：チューズ関数）は、<strong>インデックス番号に対応する値を返す関数</strong>です。英語の「choose（選ぶ）」がそのまま名前の由来になっています。</p>



<p class="wp-block-paragraph">たとえば「1番なら営業部、2番なら総務部、3番なら経理部」のように、番号と値をセットで指定するだけでOKです。</p>



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



<ul class="wp-block-list"><li>番号に応じた値をかんたんに返せる</li><li><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>のネストをすっきり書き換えられる</li><li>値には数値・文字列・数式・セル参照など何でも指定できる</li><li>最大254個の値を扱える</li></ul>



<p class="wp-block-paragraph">「番号で値を選ぶ関数」と覚えておくとわかりやすいですよ。</p>



<h3 class="wp-block-heading"><span id="toc3">どんな場面で使う？</span></h3>



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



<ul class="wp-block-list"><li>番号に対応する項目名を表示したい</li><li><a href="https://mashukabu.com/excel-function-howto-use-weekday/">WEEKDAY関数</a>と組み合わせて曜日名を出したい</li><li>月ごとに四半期（Q1〜Q4）を振り分けたい</li><li>集計方法（合計・平均・件数など）を切り替えたい</li></ul>



<p class="wp-block-paragraph">いずれも「連番の整数がキーになる」パターンです。このパターンではIF関数のネストより圧倒的に読みやすくなります。</p>



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



<h3 class="wp-block-heading"><span id="toc5">構文の読み方</span></h3>



<p class="wp-block-paragraph">まずはCHOOSE関数の構文を確認しましょう。</p>



<pre class="wp-block-code"><code>=CHOOSE(インデックス, 値1, [値2], ...)</code></pre>



<p class="wp-block-paragraph">第1引数に「何番目を選ぶか」を指定し、第2引数以降に「選択肢」を並べます。インデックスが1なら値1、2なら値2…というシンプルな仕組みです。</p>



<h3 class="wp-block-heading"><span id="toc6">引数の指定ルール（最大254値）</span></h3>



<p class="wp-block-paragraph">各引数のルールを表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>インデックス</td><td>必須</td><td>1〜254の整数、またはそれを返す数式・セル参照</td></tr><tr><td>値1</td><td>必須</td><td>インデックスが1のときに返す値</td></tr><tr><td>値2〜値254</td><td>省略可</td><td>インデックスが2〜254のときに返す値</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">押さえておきたいポイントは次の3つです。</p>



<ul class="wp-block-list"><li><strong>インデックスは整数のみ</strong>：小数を指定すると、小数部分は切り捨てて整数として処理されます（例：2.9 → 2）</li><li><strong>値引数は何でもOK</strong>：数値・文字列・セル参照・定義名・数式・関数・セル範囲を指定できます</li><li><strong>最大254個まで</strong>：値1〜値254の最大254個の選択肢を設定できます</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>CHOOSE関数はExcel 2016以降、Microsoft 365、Excel for the webで使えます。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc8">シンプルな番号→値の変換</span></h3>



<p class="wp-block-paragraph">もっとも基本的な使い方は、番号を項目名に変換するパターンです。</p>



<p class="wp-block-paragraph">たとえば交通手段を番号で管理しているとします。セルA2に「1〜3」の番号が入っている場合、次のように書きます。</p>



<pre class="wp-block-code"><code>=CHOOSE(A2, &quot;電車&quot;, &quot;バス&quot;, &quot;飛行機&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>値</th></tr></thead><tbody><tr><td>A2</td><td>2</td></tr><tr><td>B2（数式）</td><td>=CHOOSE(A2, &#8220;電車&#8221;, &#8220;バス&#8221;, &#8220;飛行機&#8221;)</td></tr><tr><td>B2（結果）</td><td>バス</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">A2が1なら「電車」、2なら「バス」、3なら「飛行機」を返します。番号と値の対応がひと目でわかりますよね。</p>



<h3 class="wp-block-heading"><span id="toc9">IFネスト3段とCHOOSEのビフォー・アフター</span></h3>



<p class="wp-block-paragraph">同じ処理をIF関数で書くとこうなります。</p>



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



<pre class="wp-block-code"><code>=IF(A2=1,&quot;電車&quot;,IF(A2=2,&quot;バス&quot;,IF(A2=3,&quot;飛行機&quot;,&quot;&quot;)))</code></pre>



<p class="wp-block-paragraph"><strong>After：CHOOSE関数</strong></p>



<pre class="wp-block-code"><code>=CHOOSE(A2,&quot;電車&quot;,&quot;バス&quot;,&quot;飛行機&quot;)</code></pre>



<p class="wp-block-paragraph">IFネストは括弧の対応を追いかけるだけでも大変です。CHOOSE関数なら引数を順番に並べるだけなので、読みやすさが段違いですよね。</p>



<p class="wp-block-paragraph">選択肢が5個、10個と増えても、CHOOSE関数なら値を追加するだけで済みます。IFネストだと括弧が何重にもなって保守がむずかしくなりますが、CHOOSE関数ならそんな心配はありません。</p>



<h2 class="wp-block-heading"><span id="toc10">実践的な使い方（応用3パターン）</span></h2>



<h3 class="wp-block-heading"><span id="toc11">WEEKDAY関数と組み合わせて曜日名を表示する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-weekday/">WEEKDAY関数</a>は日付から曜日番号（1〜7）を返します。この番号をCHOOSE関数に渡せば、曜日名を日本語で表示できます。</p>



<pre class="wp-block-code"><code>=CHOOSE(WEEKDAY(A2),&quot;日&quot;,&quot;月&quot;,&quot;火&quot;,&quot;水&quot;,&quot;木&quot;,&quot;金&quot;,&quot;土&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>値</th></tr></thead><tbody><tr><td>A2</td><td>2026/03/21（土曜日）</td></tr><tr><td>B2（数式）</td><td>=CHOOSE(WEEKDAY(A2),&#8221;日&#8221;,&#8221;月&#8221;,&#8221;火&#8221;,&#8221;水&#8221;,&#8221;木&#8221;,&#8221;金&#8221;,&#8221;土&#8221;)</td></tr><tr><td>B2（結果）</td><td>土</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">WEEKDAY関数はデフォルトで日曜=1、月曜=2…土曜=7を返します。CHOOSE関数の値1〜値7にそれぞれの曜日名を並べればOKです。</p>



<p class="wp-block-paragraph">月曜始まりにしたい場合は、WEEKDAYの第2引数に2を指定します。</p>



<pre class="wp-block-code"><code>=CHOOSE(WEEKDAY(A2,2),&quot;月&quot;,&quot;火&quot;,&quot;水&quot;,&quot;木&quot;,&quot;金&quot;,&quot;土&quot;,&quot;日&quot;)</code></pre>



<p class="wp-block-paragraph">この場合は月曜=1、火曜=2…日曜=7になるので、値の並び順を変えてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc12">MONTH関数と組み合わせて四半期を求める</span></h3>



<p class="wp-block-paragraph">MONTH関数は日付から月（1〜12）を返します。この番号をCHOOSE関数に渡すと、月ごとの四半期がかんたんに求められます。</p>



<pre class="wp-block-code"><code>=CHOOSE(MONTH(A2),&quot;Q1&quot;,&quot;Q1&quot;,&quot;Q1&quot;,&quot;Q2&quot;,&quot;Q2&quot;,&quot;Q2&quot;,&quot;Q3&quot;,&quot;Q3&quot;,&quot;Q3&quot;,&quot;Q4&quot;,&quot;Q4&quot;,&quot;Q4&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>値</th></tr></thead><tbody><tr><td>A2</td><td>2026/03/21</td></tr><tr><td>B2（数式）</td><td>=CHOOSE(MONTH(A2),&#8221;Q1&#8243;,&#8221;Q1&#8243;,&#8221;Q1&#8243;,&#8221;Q2&#8243;,&#8221;Q2&#8243;,&#8221;Q2&#8243;,&#8221;Q3&#8243;,&#8221;Q3&#8243;,&#8221;Q3&#8243;,&#8221;Q4&#8243;,&#8221;Q4&#8243;,&#8221;Q4&#8243;)</td></tr><tr><td>B2（結果）</td><td>Q1</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">1月〜3月がQ1、4月〜6月がQ2…というように、12か月分の値を並べるだけで四半期の振り分けが完成します。IFやIFS関数で条件を書くよりずっとシンプルですよね。</p>



<p class="wp-block-paragraph">日本の会計年度（4月始まり）に合わせる場合は、並び順を変えましょう。</p>



<pre class="wp-block-code"><code>=CHOOSE(MONTH(A2),&quot;Q4&quot;,&quot;Q4&quot;,&quot;Q4&quot;,&quot;Q1&quot;,&quot;Q1&quot;,&quot;Q1&quot;,&quot;Q2&quot;,&quot;Q2&quot;,&quot;Q2&quot;,&quot;Q3&quot;,&quot;Q3&quot;,&quot;Q3&quot;)</code></pre>



<p class="wp-block-paragraph">4月がQ1、1月〜3月がQ4になるように配置すればOKです。</p>



<h3 class="wp-block-heading"><span id="toc13">集計方法を切り替える（SUM・AVERAGE・COUNTなど）</span></h3>



<p class="wp-block-paragraph">CHOOSE関数の値引数には数式や関数も指定できます。これを利用すると、セルの値で集計方法を切り替える仕組みが作れます。</p>



<p class="wp-block-paragraph">たとえばセルE1に「1＝合計、2＝平均、3＝件数」と番号を入力して、集計結果を動的に切り替えてみましょう。</p>



<pre class="wp-block-code"><code>=CHOOSE(E1, SUM(B2:B10), AVERAGE(B2:B10), COUNT(B2:B10))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>E1の値</th><th>返される結果</th></tr></thead><tbody><tr><td>1</td><td>SUM（合計）</td></tr><tr><td>2</td><td>AVERAGE（平均）</td></tr><tr><td>3</td><td>COUNT（件数）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、やっていることはシンプルです。E1の番号に応じて「どの関数を実行するか」を選んでいるだけですよ。</p>



<p class="wp-block-paragraph">ダッシュボードやレポートで集計方法を切り替えたいときに使えるテクニックです。</p>



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



<h3 class="wp-block-heading"><span id="toc15">#VALUE! エラー：インデックスが0以下・上限超過</span></h3>



<p class="wp-block-paragraph">CHOOSE関数で最も多いのが <code>#VALUE!</code> エラーです。次のケースで発生します。</p>



<ul class="wp-block-list"><li>インデックスが <strong>1より小さい</strong>（0や負の数）</li><li>インデックスが <strong>用意した値の数を超えている</strong></li></ul>



<pre class="wp-block-code"><code>=CHOOSE(0, &quot;電車&quot;, &quot;バス&quot;, &quot;飛行機&quot;)   → #VALUE!（0は範囲外）
=CHOOSE(4, &quot;電車&quot;, &quot;バス&quot;, &quot;飛行機&quot;)   → #VALUE!（値は3つしかない）</code></pre>



<p class="wp-block-paragraph">対処法はシンプルです。インデックスが必ず「1〜値の個数」の範囲に収まるようにデータを確認してください。</p>



<h3 class="wp-block-heading"><span id="toc16">IFERROR関数でエラーをやさしく処理する</span></h3>



<p class="wp-block-paragraph">データの入力ミスなどで範囲外の値が入る可能性がある場合は、<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で囲んでおくと安心です。</p>



<pre class="wp-block-code"><code>=IFERROR(CHOOSE(A2,&quot;電車&quot;,&quot;バス&quot;,&quot;飛行機&quot;), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">エラーが出たときに「該当なし」などのメッセージを表示できます。ユーザーが入力するシートでは、この書き方をしておくと親切ですよ。</p>



<h2 class="wp-block-heading"><span id="toc17">IF・IFS・SWITCH関数との使い分け</span></h2>



<h3 class="wp-block-heading"><span id="toc18">4関数の特徴比較表</span></h3>



<p class="wp-block-paragraph">条件分岐に使える4つの関数を比較表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th><a href="https://mashukabu.com/excel-function-howto-use-if/">IF</a></th><th><a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS</a></th><th><a href="https://mashukabu.com/excel-function-howto-use-switch/">SWITCH</a></th><th>CHOOSE</th></tr></thead><tbody><tr><td>条件の書き方</td><td>TRUE/FALSEの2択</td><td>複数条件を順番に評価</td><td>値の完全一致</td><td>連番インデックス</td></tr><tr><td>ネストの必要性</td><td>3分岐以上はネスト必要</td><td>不要</td><td>不要</td><td>不要</td></tr><tr><td>文字列キーの使用</td><td>可</td><td>可</td><td>可</td><td>不可（数値のみ）</td></tr><tr><td>デフォルト値</td><td>ELSEで指定</td><td>最終条件にTRUEで代用</td><td>最終引数で指定</td><td>なし（#VALUE!）</td></tr><tr><td>対応バージョン</td><td>全バージョン</td><td>2019以降/365</td><td>2019以降/365</td><td>2016以降</td></tr><tr><td>最大分岐数</td><td>ネスト64段</td><td>127条件</td><td>126ペア</td><td>254値</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc19">シーン別おすすめ関数</span></h3>



<p class="wp-block-paragraph">どの関数を選ぶか迷ったときは、次の基準で判断してみてください。</p>



<ul class="wp-block-list"><li><strong>2〜3択のシンプルな分岐</strong> → <a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>が手軽</li><li><strong>4つ以上の条件を順番に評価したい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS関数</a>がすっきり</li><li><strong>文字列キーや不連続な値で分岐＋デフォルト値が必要</strong> → <a href="https://mashukabu.com/excel-function-howto-use-switch/">SWITCH関数</a>が最適</li><li><strong>連番の整数（WEEKDAY・MONTHなど）で分岐</strong> → CHOOSE関数が一番シンプル</li></ul>



<p class="wp-block-paragraph">Excel 2016環境でも使える互換性の高さはCHOOSE関数の大きなメリットです。SWITCH関数はExcel 2019以降またはMicrosoft 365でしか使えません。共有ファイルの互換性を重視するなら、CHOOSE関数を選びましょう。</p>



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



<p class="wp-block-paragraph">この記事では、ExcelのCHOOSE関数の使い方を基本から応用まで解説しました。</p>



<p class="wp-block-paragraph">ポイントをおさらいしましょう。</p>



<ul class="wp-block-list"><li>CHOOSE関数は「インデックス番号に対応する値を返す」関数</li><li>IFネストの書き換えに使うと数式がすっきりする</li><li>WEEKDAY関数と組み合わせれば曜日名の表示がかんたん</li><li>MONTH関数と組み合わせれば四半期の振り分けもワンステップ</li><li>インデックスが範囲外だと#VALUE!エラーになるので注意</li><li>Excel 2016以降で使えるので互換性も安心</li></ul>



<p class="wp-block-paragraph">CHOOSE関数はシンプルな仕組みですが、使いどころを知っていると数式がぐっと読みやすくなります。まずはIFネストの置き換えから試してみてください。</p>



<p class="wp-block-paragraph">条件分岐の関数をもっと知りたい方は、あわせてこちらの記事もチェックしてみてくださいね。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-if/">ExcelのIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-ifs/">ExcelのIFS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-switch/">ExcelのSWITCH関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-choose-function/">スプレッドシートのCHOOSE関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-choose/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのWEEKDAY関数の使い方｜曜日番号の取得と土日色分けを解説</title>
		<link>https://mashukabu.com/excel-function-howto-use-weekday/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-weekday/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 29 Sep 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CHOOSE関数]]></category>
		<category><![CDATA[SWITCH関数]]></category>
		<category><![CDATA[TEXT関数]]></category>
		<category><![CDATA[WEEKDAY関数]]></category>
		<category><![CDATA[日付関数]]></category>
		<category><![CDATA[曜日取得]]></category>
		<category><![CDATA[条件付き書式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2335</guid>

					<description><![CDATA[ExcelのWEEKDAY関数で日付から曜日番号を取得する方法を解説。種類引数の使い分け（日曜始まり/月曜始まり）、TEXT・CHOOSE・SWITCH関数との組み合わせ、条件付き書式での土日色分け、SUMPRODUCTでの平日集計まで実務テンプレ付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「日付から曜日を自動で出したい」「スケジュール表で土日だけ色を変えたい」――こんな場面、仕事でよくありますよね。</p>



<p class="wp-block-paragraph">日付を見ながら手作業で「月・火・水&#8230;」と入力するのは手間ですし、ミスのもとです。ExcelのWEEKDAY関数を使えば、日付から曜日の番号を一発で取り出せます。</p>



<p class="wp-block-paragraph">この記事では、WEEKDAY関数の基本構文と種類引数の使い分けを最初に整理します。あわせて、TEXT・CHOOSE・SWITCH関数との組み合わせ、土日色分け、平日合計のテンプレートまで実務で使える形で紹介します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>この記事は次のような人におすすめ</strong></p><p>&#8211; 日付から曜日を自動表示したい<br>&#8211; スケジュール表で土日を色分けしたい<br>&#8211; WEEKDAY関数の種類引数の違いをはっきり理解したい<br>&#8211; 平日だけの売上を一発で集計したい</p></blockquote>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのWEEKDAY関数とは？（日付から曜日番号を返す関数）</a></li><li><a href="#toc2" tabindex="0">WEEKDAY関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">種類（第2引数）の一覧表</a></li></ol></li><li><a href="#toc6" tabindex="0">WEEKDAY関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">日曜始まり（種類1 / 省略時）で曜日番号を取得する</a></li><li><a href="#toc8" tabindex="0">月曜始まり（種類2）で曜日番号を取得する</a></li><li><a href="#toc9" tabindex="0">日付文字列を直接指定する</a></li><li><a href="#toc10" tabindex="0">今日の曜日番号を取得する</a></li></ol></li><li><a href="#toc11" tabindex="0">WEEKDAY関数の実務活用パターン</a><ol><li><a href="#toc12" tabindex="0">パターン1: TEXT関数で曜日名を表示する</a></li><li><a href="#toc13" tabindex="0">パターン2: CHOOSE関数で曜日名を自由にカスタマイズする</a></li><li><a href="#toc14" tabindex="0">パターン3: SWITCH関数で曜日名を表示する（Excel 2019以降）</a></li><li><a href="#toc15" tabindex="0">パターン4: 条件付き書式で土日を色分けする</a></li><li><a href="#toc16" tabindex="0">パターン5: 平日だけ集計する（SUMPRODUCT連携）</a></li><li><a href="#toc17" tabindex="0">パターン6: IF関数で「土日休み」フラグを付ける</a></li><li><a href="#toc18" tabindex="0">パターン7: Microsoft 365の動的配列でまとめて変換する</a></li></ol></li><li><a href="#toc19" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc20" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc21" tabindex="0">Q1. WEEKDAY関数で「月曜日」のように文字で表示できる？</a></li><li><a href="#toc22" tabindex="0">Q2. 種類2と種類11はどちらを使うべき？</a></li><li><a href="#toc23" tabindex="0">Q3. 土日に行全体の色を付けたい</a></li><li><a href="#toc24" tabindex="0">Q4. 祝日も自動で色分けしたい</a></li><li><a href="#toc25" tabindex="0">Q5. WEEKDAY関数とWORKDAY関数の違いは？</a></li><li><a href="#toc26" tabindex="0">Q6. セルの表示形式で曜日を出すのとWEEKDAY関数は何が違う？</a></li></ol></li><li><a href="#toc27" tabindex="0">似た関数との違い・使い分け</a></li><li><a href="#toc28" tabindex="0">まとめ</a><ol><li><a href="#toc29" tabindex="0">この記事で紹介した関数</a></li><li><a href="#toc30" tabindex="0">Excel関数リファレンス</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのWEEKDAY関数とは？（日付から曜日番号を返す関数）</span></h2>



<p class="wp-block-paragraph">WEEKDAY関数（読み方：ウィークデイ）は、指定した日付が何曜日かを<strong>整数で返す</strong>関数です。関数名は英語の weekday（平日・曜日）に由来します。</p>



<p class="wp-block-paragraph">たとえば、2026年3月20日（金曜日）をWEEKDAY関数に渡すと <code>6</code> が返ります。これは「日曜=1」始まりの番号体系で、金曜が6番目だからです。</p>



<p class="wp-block-paragraph">返ってくるのは曜日の「番号」であって、「月曜日」のような文字列ではありません。曜日名を表示したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-switch/">SWITCH関数</a>と組み合わせます。</p>



<p class="wp-block-paragraph">対応バージョンはExcel 2003以降すべてです。Microsoft 365、Excel for Mac、Excel for the Webでも使えますよ。</p>



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



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



<pre class="wp-block-code"><code>=WEEKDAY(シリアル値, [種類])</code></pre>



<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>シリアル値</td><td>必須</td><td>曜日を調べたい日付。セル参照や日付文字列を指定</td></tr><tr><td>種類</td><td>省略可</td><td>曜日番号の割り当て方を指定する数値（省略時は1）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>シリアル値</strong>には、日付が入ったセル（A2など）を指定するのが一般的です。<code>"2026/3/20"</code> のように日付文字列を直接書くこともできます。<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数</a>で日付を組み立てて渡すことも可能です。</p>



<h3 class="wp-block-heading"><span id="toc5">種類（第2引数）の一覧表</span></h3>



<p class="wp-block-paragraph">種類引数によって「何曜日を1にするか」が変わります。実務でよく使うのは <strong>1（日曜始まり）</strong> と <strong>2（月曜始まり）</strong> の2つです。</p>



<figure class="wp-block-table"><table><thead><tr><th>種類</th><th>戻り値の範囲</th><th>週の始まり</th><th>補足</th></tr></thead><tbody><tr><td>1（省略時）</td><td>1（日）〜 7（土）</td><td>日曜始まり</td><td>米国式・既定値</td></tr><tr><td>2</td><td>1（月）〜 7（日）</td><td>月曜始まり</td><td>日本のビジネス向き</td></tr><tr><td>3</td><td>0（月）〜 6（日）</td><td>月曜始まり（0始まり）</td><td>プログラミング寄り</td></tr><tr><td>11</td><td>1（月）〜 7（日）</td><td>月曜始まり</td><td>種類2と同じ結果</td></tr><tr><td>12</td><td>1（火）〜 7（月）</td><td>火曜始まり</td><td>Excel 2010で追加</td></tr><tr><td>13</td><td>1（水）〜 7（火）</td><td>水曜始まり</td><td>Excel 2010で追加</td></tr><tr><td>14</td><td>1（木）〜 7（水）</td><td>木曜始まり</td><td>Excel 2010で追加</td></tr><tr><td>15</td><td>1（金）〜 7（木）</td><td>金曜始まり</td><td>Excel 2010で追加</td></tr><tr><td>16</td><td>1（土）〜 7（金）</td><td>土曜始まり</td><td>Excel 2010で追加</td></tr><tr><td>17</td><td>1（日）〜 7（土）</td><td>日曜始まり</td><td>種類1と同じ結果</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>種類2と種類11は同じ結果</strong></p><p>どちらも「月曜=1〜日曜=7」を返します。種類11はExcel 2010で追加された新しい書き方です。どちらを使っても問題ありません。</p></blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>実務での選び方</strong></p><p>日本のビジネスでは<strong>種類2（月曜始まり）</strong>が使いやすいです。カレンダーや勤怠表は月曜始まりが多いですよね。「土日判定」だけなら種類1（省略）でも十分です。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc7">日曜始まり（種類1 / 省略時）で曜日番号を取得する</span></h3>



<p class="wp-block-paragraph">セルA2に <code>2026/3/20</code>（金曜日）が入っているとします。</p>



<pre class="wp-block-code"><code>=WEEKDAY(A2)</code></pre>



<p class="wp-block-paragraph">結果は <code>6</code> です。日曜=1で数えると金曜は6番目になります。</p>



<h3 class="wp-block-heading"><span id="toc8">月曜始まり（種類2）で曜日番号を取得する</span></h3>



<p class="wp-block-paragraph">月曜始まりにしたい場合は、第2引数に <code>2</code> を指定します。</p>



<pre class="wp-block-code"><code>=WEEKDAY(A2, 2)</code></pre>



<p class="wp-block-paragraph">結果は <code>5</code> です。月曜=1で数えると金曜は5番目になります。</p>



<h3 class="wp-block-heading"><span id="toc9">日付文字列を直接指定する</span></h3>



<p class="wp-block-paragraph">セル参照を使わず、日付を直接書くこともできます。</p>



<pre class="wp-block-code"><code>=WEEKDAY(&quot;2026/3/20&quot;)</code></pre>



<p class="wp-block-paragraph">結果は <code>6</code> です。ただし実務ではセル参照のほうが使い回しがきくので、セル参照をおすすめしますよ。</p>



<h3 class="wp-block-heading"><span id="toc10">今日の曜日番号を取得する</span></h3>



<p class="wp-block-paragraph">TODAY関数やNOW関数と組み合わせれば、当日の曜日番号を取得できます。</p>



<pre class="wp-block-code"><code>=WEEKDAY(TODAY(), 2)</code></pre>



<p class="wp-block-paragraph">時刻付きの日付でも、WEEKDAY関数は時刻部分を無視するので、<code>NOW()</code>を渡しても正しく動作します。</p>



<h2 class="wp-block-heading"><span id="toc11">WEEKDAY関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc12">パターン1: TEXT関数で曜日名を表示する</span></h3>



<p class="wp-block-paragraph">WEEKDAY関数は番号を返すだけなので、「月曜日」のような文字列にはなりません。曜日名を表示したいときは<a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a>を使うのが最もシンプルです。</p>



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



<p class="wp-block-paragraph"><code>"aaa"</code> を指定すると「金」のように短縮表記になります。<code>"aaaa"</code> なら「金曜日」とフル表記です。</p>



<figure class="wp-block-table"><table><thead><tr><th>書式コード</th><th>表示例</th><th>用途</th></tr></thead><tbody><tr><td><code>"aaa"</code></td><td>金</td><td>短縮表示（日本語専用）</td></tr><tr><td><code>"aaaa"</code></td><td>金曜日</td><td>フル表示（日本語専用）</td></tr><tr><td><code>"ddd"</code></td><td>Fri</td><td>短縮表示（英語）</td></tr><tr><td><code>"dddd"</code></td><td>Friday</td><td>フル表示（英語）</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>aaaとdddの違い</strong></p><p>日本語環境では <code>"aaa"</code> と <code>"ddd"</code> はどちらも「金」を返す場合があります。ただし <code>"aaa"</code> は日本語専用のコードです。英語表記が必要なら <code>"ddd"</code> を使ってください。表示言語はExcelのシステムロケールによって変わります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc13">パターン2: CHOOSE関数で曜日名を自由にカスタマイズする</span></h3>



<p class="wp-block-paragraph">「月」「火」ではなく「Mon」「Tue」のように表示したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-choose/">CHOOSE関数</a>が便利です。</p>



<pre class="wp-block-code"><code>=CHOOSE(WEEKDAY(A2), &quot;日&quot;,&quot;月&quot;,&quot;火&quot;,&quot;水&quot;,&quot;木&quot;,&quot;金&quot;,&quot;土&quot;)</code></pre>



<p class="wp-block-paragraph">WEEKDAY関数が返す番号（1〜7）に対応する文字列をCHOOSE関数で選択します。好きな表記に変えられるのがメリットです。</p>



<p class="wp-block-paragraph">英語表記にしたい場合は次のようにします。</p>



<pre class="wp-block-code"><code>=CHOOSE(WEEKDAY(A2), &quot;Sun&quot;,&quot;Mon&quot;,&quot;Tue&quot;,&quot;Wed&quot;,&quot;Thu&quot;,&quot;Fri&quot;,&quot;Sat&quot;)</code></pre>



<p class="wp-block-paragraph">第1引数のWEEKDAY関数が「種類1（日曜始まり）」なので、CHOOSE関数の選択肢も日曜から並べる点に注意してください。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン3: SWITCH関数で曜日名を表示する（Excel 2019以降）</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-switch/">SWITCH関数</a>を使えば、値と結果のペアを並べて書けます。</p>



<pre class="wp-block-code"><code>=SWITCH(WEEKDAY(A2,2), 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">CHOOSE関数との違いは、番号の順番に縛られない点です。種類2（月曜始まり）の番号にも対応しやすくなります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>SWITCH関数の対応バージョン</strong></p><p>SWITCH関数はExcel 2019以降またはMicrosoft 365で使用できます。お使いのバージョンが対応しているか、確認しておきましょう。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc15">パターン4: 条件付き書式で土日を色分けする</span></h3>



<p class="wp-block-paragraph">スケジュール表で土日の行だけ背景色を変えたい場合は、条件付き書式とWEEKDAY関数を組み合わせます。</p>



<p class="wp-block-paragraph"><strong>設定手順</strong>:</p>



<ol class="wp-block-list"><li>色を付けたいセル範囲を選択する</li><li>「ホーム」タブ →「条件付き書式」→「新しいルール」を選択</li><li>「数式を使用して、書式設定するセルを決定」を選択</li><li>以下の数式を入力する</li><li>「書式」ボタンから背景色を指定して完了</li></ol>



<p class="wp-block-paragraph"><strong>土曜日を青くする数式</strong>:</p>



<pre class="wp-block-code"><code>=WEEKDAY($A2)=7</code></pre>



<p class="wp-block-paragraph"><strong>日曜日を赤くする数式</strong>:</p>



<pre class="wp-block-code"><code>=WEEKDAY($A2)=1</code></pre>



<p class="wp-block-paragraph">ポイントは列を <code>$A</code> で固定し、行は固定しないことです。これで各行の日付に応じて色が変わりますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>土日をまとめて判定するテクニック</strong></p><p><code>=OR(WEEKDAY($A2)=1, WEEKDAY($A2)=7)</code> と書けば、1つのルールで土曜と日曜の両方に同じ書式を適用できます。</p></blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>絶対参照を忘れると色がずれる</strong></p><p><code>=WEEKDAY(A2)=1</code> のように <code>$</code> を付け忘れると、Excelが自動で参照をずらしてしまい、思った行に色が付きません。<strong>列だけ固定</strong> が鉄則です。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc16">パターン5: 平日だけ集計する（SUMPRODUCT連携）</span></h3>



<p class="wp-block-paragraph">売上データから平日分だけを合計したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-sumproduct/">SUMPRODUCT関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((WEEKDAY(A2:A31,2)&lt;=5)*(B2:B31))</code></pre>



<p class="wp-block-paragraph"><code>WEEKDAY(日付, 2)<=5</code> で月曜〜金曜が <code>TRUE</code> になります。これを売上列と掛け合わせて、平日分だけ合計できます。</p>



<p class="wp-block-paragraph">土日だけの売上を合計したいときは、不等号を反転して <code>>=6</code> にします。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((WEEKDAY(A2:A31,2)&gt;=6)*(B2:B31))</code></pre>



<p class="wp-block-paragraph">祝日も除外したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-networkdays/">NETWORKDAYS関数</a>のほうが簡単です。祝日リストを引数に渡せるので、手動で除外する手間が省けますよ。</p>



<h3 class="wp-block-heading"><span id="toc17">パターン6: IF関数で「土日休み」フラグを付ける</span></h3>



<p class="wp-block-paragraph">シフト表や勤怠表で「土日は休み」と自動表示したい場合は、IF関数とOR関数を組み合わせます。</p>



<pre class="wp-block-code"><code>=IF(OR(WEEKDAY(A2)=1, WEEKDAY(A2)=7), &quot;休&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">A2の日付が土日なら「休」、平日なら空欄になります。<code>""</code>の部分を <code>"出勤"</code> に変えれば、平日に文字を表示することもできます。</p>



<h3 class="wp-block-heading"><span id="toc18">パターン7: Microsoft 365の動的配列でまとめて変換する</span></h3>



<p class="wp-block-paragraph">Microsoft 365 または Excel 2021以降では、WEEKDAY関数にセル範囲を渡すと、結果が配列でスピルします。</p>



<pre class="wp-block-code"><code>=WEEKDAY(A2:A31, 2)</code></pre>



<p class="wp-block-paragraph">A2からA31までの曜日番号が、1つの数式で一気に出力されます。1行ずつ数式をコピーする手間が省けて便利ですよ。</p>



<p class="wp-block-paragraph">Excel 2019以前では Ctrl+Shift+Enter で配列数式として確定する必要があります。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#VALUE!</code></td><td>シリアル値に日付以外の文字列を指定した</td><td>日付が正しい形式か確認する</td></tr><tr><td><code>#NUM!</code></td><td>種類引数に無効な値（4〜10、18以上など）を指定した</td><td>1, 2, 3, 11〜17 のいずれかを使う</td></tr><tr><td><code>#NUM!</code></td><td>シリアル値が負の数</td><td>1900/1/1以降の日付を指定する</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>文字列の日付に注意</strong></p><p>セルに「3月20日」と入力しても、表示形式が文字列になっていると日付として認識されません。<code>#VALUE!</code> エラーが出たら、セルの書式が「日付」になっているか確認してみてください。文字列の場合は<a href="https://mashukabu.com/excel-function-howto-use-datevalue/">DATEVALUE関数</a>でシリアル値に変換できます。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc21">Q1. WEEKDAY関数で「月曜日」のように文字で表示できる？</span></h3>



<p class="wp-block-paragraph">A. WEEKDAY関数自体は数字を返すだけです。「月曜日」のように文字で表示したい場合は、TEXT関数 <code>=TEXT(A2,"aaaa")</code> を使うのが最も簡単です。CHOOSE関数やSWITCH関数を組み合わせる方法もあります。</p>



<h3 class="wp-block-heading"><span id="toc22">Q2. 種類2と種類11はどちらを使うべき？</span></h3>



<p class="wp-block-paragraph">A. どちらを使っても結果は同じです。種類11はExcel 2010で追加された新しい記法で、種類2は古くから使われています。実務では昔から馴染みのある <strong>種類2</strong> を使うケースが多いですよ。</p>



<h3 class="wp-block-heading"><span id="toc23">Q3. 土日に行全体の色を付けたい</span></h3>



<p class="wp-block-paragraph">A. 条件付き書式で行全体（例: A2:E2）を選択し、数式を <code>=WEEKDAY($A2)=7</code> のように列だけ <code>$</code> で固定します。これで日付列を基準に行全体が色付けされます。</p>



<h3 class="wp-block-heading"><span id="toc24">Q4. 祝日も自動で色分けしたい</span></h3>



<p class="wp-block-paragraph">A. WEEKDAY関数だけでは祝日を判定できません。別シートに祝日リストを作成し、COUNTIF関数で「祝日リストに含まれるかどうか」を判定して条件付き書式に組み込みます。例: <code>=COUNTIF(祝日リスト!$A:$A, $A2)>0</code></p>



<h3 class="wp-block-heading"><span id="toc25">Q5. WEEKDAY関数とWORKDAY関数の違いは？</span></h3>



<p class="wp-block-paragraph">A. 名前は似ていますが機能はまったく別です。<strong>WEEKDAY</strong> は「日付 → 曜日番号」を返す関数、<strong>WORKDAY</strong> は「開始日 + 日数 → N日後の営業日」を返す関数です。曜日を知りたいときはWEEKDAY、納期や支払期日を計算したいときはWORKDAYと覚えておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc26">Q6. セルの表示形式で曜日を出すのとWEEKDAY関数は何が違う？</span></h3>



<p class="wp-block-paragraph">A. 表示形式（<code>aaa</code> などのユーザー定義書式）は「見た目だけ」を変えるため、IF関数や条件付き書式の判定には使えません。WEEKDAY関数やTEXT関数なら、結果を他の数式で参照できるのが大きな違いです。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>関数名</th><th>機能</th><th>使い分けのポイント</th></tr></thead><tbody><tr><td>WEEKDAY</td><td>日付 → 曜日番号</td><td>曜日の判定・条件分岐に使う</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT</a></td><td>日付 → 曜日名（文字列）</td><td>「月曜日」と直接表示したいとき</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-workday/">WORKDAY</a></td><td>営業日後の日付を計算</td><td>納期計算・支払期日の算出に使う</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-networkdays/">NETWORKDAYS</a></td><td>2つの日付間の営業日数</td><td>稼働日数のカウントに使う</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-year/">YEAR</a> / <a href="https://mashukabu.com/excel-function-howto-use-month/">MONTH</a> / <a href="https://mashukabu.com/excel-function-howto-use-day/">DAY</a></td><td>日付 → 年/月/日</td><td>日付の各パーツを取り出すとき</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>WEEKDAY関数とWORKDAY関数の混同に注意</strong>してください。名前が似ていますが機能はまったく別です。WEEKDAYは「曜日の番号を返す」関数、WORKDAYは「営業日後の日付を返す」関数です。</p>



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



<p class="wp-block-paragraph">ExcelのWEEKDAY関数は日付から曜日番号を取り出す関数です。この記事で紹介したポイントをおさらいしましょう。</p>



<ul class="wp-block-list"><li><strong>基本構文</strong>: <code>=WEEKDAY(シリアル値, [種類])</code></li><li><strong>種類引数</strong>: 1（日曜始まり）と2（月曜始まり）をまず覚えればOK</li><li><strong>曜日名の表示</strong>: <a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a> <code>=TEXT(A2,"aaa")</code> が最もシンプル</li><li><strong>自由な表記</strong>: <a href="https://mashukabu.com/excel-function-howto-use-choose/">CHOOSE関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-switch/">SWITCH関数</a>で好きな文字列に変換</li><li><strong>土日の色分け</strong>: 条件付き書式で <code>=WEEKDAY($A2)=1</code> のように設定（列だけ固定）</li><li><strong>平日の集計</strong>: <code>=SUMPRODUCT((WEEKDAY(A2:A31,2)<=5)*(B2:B31))</code> で一発</li></ul>



<p class="wp-block-paragraph">「番号を返すだけ」のシンプルな関数ですが、他の関数や条件付き書式と組み合わせると活用の幅が大きく広がります。ぜひ日常の業務で試してみてください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-switch/">SWITCH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-choose/">CHOOSE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-workday/">WORKDAY関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-networkdays/">NETWORKDAYS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sumproduct/">SUMPRODUCT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-datevalue/">DATEVALUE関数の使い方</a></li></ul>



<h3 class="wp-block-heading"><span id="toc30">Excel関数リファレンス</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">Excel関数 アルファベット順</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数 機能別一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-weekday/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのERROR.TYPE関数の使い方｜エラーの種類を番号で判別する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-error-type/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-error-type/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 29 Jun 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[ERROR.TYPE関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[IFERROR]]></category>
		<category><![CDATA[ISERROR]]></category>
		<category><![CDATA[SWITCH関数]]></category>
		<category><![CDATA[エラー処理]]></category>
		<category><![CDATA[エラー判定]]></category>
		<category><![CDATA[情報関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2261</guid>

					<description><![CDATA[ExcelのERROR.TYPE関数の使い方を解説。エラーの種類を番号で判別する基本から、IF・SWITCHとの組み合わせ、ISERROR・IFERROR・TYPE関数との違いまで、実務に役立つ活用パターンを紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">数式がエラーになったとき、「とりあえずIFERRORで非表示にする」で済ませていませんか？</p>



<p class="wp-block-paragraph">「#VALUE!」なのか「#N/A」なのかでは、原因も対処法もまったく違います。エラーの種類がわからないまま一括で隠してしまうと、本当に修正が必要な問題を見逃してしまうかもしれません。</p>



<p class="wp-block-paragraph">そんなときに使えるのがERROR.TYPE関数です。エラーの種類を番号で返してくれるので、「どのエラーか」に応じて処理を分けられます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>この記事は次のような人におすすめ</p><p>&#8211; エラーの種類を自動で判別して処理を分岐したい<br>&#8211; 数式のトラブル原因を素早く特定したい<br>&#8211; ISERROR関数やIFERROR関数との違いを知りたい</p></blockquote>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-7" checked><label class="toc-title" for="toc-checkbox-7">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ERROR.TYPE関数とは？エラーの種類を番号で返す情報関数</a></li><li><a href="#toc2" tabindex="0">ERROR.TYPE関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">戻り値一覧（エラー番号早見表）</a></li></ol></li><li><a href="#toc6" tabindex="0">ERROR.TYPE関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">エラー種類ごとの判定結果</a></li><li><a href="#toc8" tabindex="0">セル参照と数式の直接指定</a></li></ol></li><li><a href="#toc9" tabindex="0">ERROR.TYPE関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: IF関数でエラー種類ごとにメッセージを出し分ける</a></li><li><a href="#toc11" tabindex="0">パターン2: SWITCH関数で複数のエラーを整理する（Microsoft 365）</a></li><li><a href="#toc12" tabindex="0">パターン3: エラー種類をCOUNTIFで集計してトラブル箇所を特定する</a></li><li><a href="#toc13" tabindex="0">パターン4: エラーの種類に応じて代替値を変える</a></li></ol></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc15" tabindex="0">似た関数との違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">ERROR.TYPE vs ISERROR：種類の判別 vs 有無の判定</a></li><li><a href="#toc17" tabindex="0">ERROR.TYPE vs IFERROR：判別 vs 一括処理</a></li><li><a href="#toc18" tabindex="0">ERROR.TYPE vs TYPE関数：エラーの種類 vs データの種類</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">まとめ</a><ol><li><a href="#toc22" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ERROR.TYPE関数とは？エラーの種類を番号で返す情報関数</span></h2>



<p class="wp-block-paragraph">ERROR.TYPE（えらー たいぷ）関数は、エラー値の<strong>種類を番号（数値）で返す</strong>情報関数です。&#8221;ERROR&#8221;は「誤り」、&#8221;TYPE&#8221;は「種類」を意味します。</p>



<p class="wp-block-paragraph">たとえば #N/A なら 7、#VALUE! なら 3 のように、エラーごとに決まった番号を返します。エラーでない正常な値を渡すと #N/A を返すのが特徴です。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>は「エラーかどうか」をTRUE/FALSEで判定します。一方、ERROR.TYPE関数は「<strong>どの種類のエラーか</strong>」まで特定できるのがポイントです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ERROR.TYPE関数は Excel 2003 以降のすべてのバージョンで使用できます。Microsoft 365 でも同じ書き方で使えますよ。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=ERROR.TYPE(エラー値)</code></pre>



<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>エラー値</td><td>必須</td><td>エラーの種類を調べたい値またはセル参照</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は1つだけです。省略はできません。セル参照・直接入力した値・数式の結果のいずれも指定できます。</p>



<h3 class="wp-block-heading"><span id="toc5">戻り値一覧（エラー番号早見表）</span></h3>



<p class="wp-block-paragraph">ERROR.TYPE関数が返す番号とエラーの対応表です。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー値</th><th>戻り値</th><th>エラーの意味</th><th>よくある原因</th></tr></thead><tbody><tr><td>#NULL!</td><td>1</td><td>セル範囲の共通部分がない</td><td>範囲演算子（スペース）の誤り</td></tr><tr><td>#DIV/0!</td><td>2</td><td>ゼロで除算した</td><td>割り算の分母が0または空白セル</td></tr><tr><td>#VALUE!</td><td>3</td><td>データ型が不正</td><td>数値を期待する場所に文字列</td></tr><tr><td>#REF!</td><td>4</td><td>参照先が無効</td><td>セルや行・列の削除</td></tr><tr><td>#NAME?</td><td>5</td><td>関数名やセル名が不正</td><td>関数名のスペルミス</td></tr><tr><td>#NUM!</td><td>6</td><td>数値が範囲外</td><td>SQRT関数に負の数を指定</td></tr><tr><td>#N/A</td><td>7</td><td>値が見つからない</td><td>VLOOKUPの検索値が存在しない</td></tr><tr><td>#GETTING_DATA</td><td>8</td><td>データ取得中（外部接続）</td><td>外部データソースの応答待ち</td></tr><tr><td>エラーでない値</td><td>#N/A</td><td>正常な値にはエラー番号がない</td><td>―</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">番号は1から始まり、エラーの種類ごとに固定されています。この番号を暗記する必要はありません。必要なときにこの早見表を参照してください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>#SPILL!や#CALC!など、Microsoft 365で追加されたエラーはERROR.TYPE関数で判定できません（#N/Aを返します）。これらのエラーには<a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>で対応してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">ERROR.TYPE関数の基本的な使い方</span></h2>



<p class="wp-block-paragraph">まずはシンプルな例で動きを確認してみましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">エラー種類ごとの判定結果</span></h3>



<p class="wp-block-paragraph">さまざまなエラーをERROR.TYPE関数で判定すると、次のような結果になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列の値</th><th>数式</th><th>結果</th><th>理由</th></tr></thead><tbody><tr><td>=10/0 (#DIV/0!)</td><td>=ERROR.TYPE(A2)</td><td>2</td><td>ゼロ除算エラー</td></tr><tr><td>=VLOOKUP(&#8220;Z&#8221;,D:E,2,0) (#N/A)</td><td>=ERROR.TYPE(A3)</td><td>7</td><td>検索値が見つからない</td></tr><tr><td>=&#8221;あ&#8221;+1 (#VALUE!)</td><td>=ERROR.TYPE(A4)</td><td>3</td><td>データ型が不正</td></tr><tr><td>=SQRT(-1) (#NUM!)</td><td>=ERROR.TYPE(A5)</td><td>6</td><td>数値が範囲外</td></tr><tr><td>100</td><td>=ERROR.TYPE(A6)</td><td>#N/A</td><td>正常な数値なので判定不可</td></tr><tr><td>東京</td><td>=ERROR.TYPE(A7)</td><td>#N/A</td><td>正常な文字列なので判定不可</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">正常な値を渡すと #N/A を返す点に注意してください。「エラーかどうか」だけを判定したい場合は <a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a> のほうが適しています。</p>



<h3 class="wp-block-heading"><span id="toc8">セル参照と数式の直接指定</span></h3>



<p class="wp-block-paragraph">ERROR.TYPE関数にはセル参照と数式のどちらも渡せます。</p>



<p class="wp-block-paragraph"><strong>セル参照で判定する場合:</strong></p>



<pre class="wp-block-code"><code>=ERROR.TYPE(A1)</code></pre>



<p class="wp-block-paragraph">A1にエラー値が表示されていれば対応する番号を返します。正常な値が入っていれば #N/A です。</p>



<p class="wp-block-paragraph"><strong>数式を直接指定する場合:</strong></p>



<pre class="wp-block-code"><code>=ERROR.TYPE(VLOOKUP(&quot;Z&quot;,A:B,2,0))</code></pre>



<p class="wp-block-paragraph">VLOOKUPの結果が #N/A なら 7 を返します。数式の結果をいちいち別のセルに出す必要がないので便利です。</p>



<h2 class="wp-block-heading"><span id="toc9">ERROR.TYPE関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc10">パターン1: IF関数でエラー種類ごとにメッセージを出し分ける</span></h3>



<p class="wp-block-paragraph">IF関数と組み合わせると、エラーの種類に応じて異なるメッセージを表示できます。</p>



<pre class="wp-block-code"><code>=IF(ISERROR(A2),IF(ERROR.TYPE(A2)=7,&quot;該当データなし&quot;,IF(ERROR.TYPE(A2)=3,&quot;入力値が不正&quot;,&quot;その他のエラー&quot;)),&quot;OK&quot;)</code></pre>



<p class="wp-block-paragraph">この数式は、まず<a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>でエラーかどうかを判定します。エラーの場合、#N/A（番号7）なら「該当データなし」を返します。#VALUE!（番号3）なら「入力値が不正」です。それ以外のエラーには「その他のエラー」、正常値には「OK」を表示します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ISERRORを先に入れないと、正常な値のセルにも「その他のエラー」が表示されてしまいます。ERROR.TYPE関数は正常な値にも #N/A を返すため、必ずISERRORと組み合わせてください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc11">パターン2: SWITCH関数で複数のエラーを整理する（Microsoft 365）</span></h3>



<p class="wp-block-paragraph">Microsoft 365をお使いなら、SWITCH関数と組み合わせるとIFのネストを避けてスッキリ書けます。</p>



<pre class="wp-block-code"><code>=IF(ISERROR(A2),SWITCH(ERROR.TYPE(A2),2,&quot;0で割っています&quot;,3,&quot;入力値の型が違います&quot;,7,&quot;該当データがありません&quot;,&quot;その他のエラーです&quot;),&quot;正常&quot;)</code></pre>



<p class="wp-block-paragraph">IFで何段もネストする必要がないので、可読性が格段に上がりますよ。エラー番号ごとに対応するメッセージをSWITCH関数で振り分けています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>SWITCH関数はMicrosoft 365とExcel 2019以降で使えます。Excel 2016以前をお使いの場合はパターン1のIF関数ネストを使ってください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc12">パターン3: エラー種類をCOUNTIFで集計してトラブル箇所を特定する</span></h3>



<p class="wp-block-paragraph">大量のデータを処理しているとき、どのエラーが多いかをCOUNTIF関数で集計できます。</p>



<p class="wp-block-paragraph">まず作業列にERROR.TYPE関数の結果を出しておきます。</p>



<pre class="wp-block-code"><code>=IFERROR(ERROR.TYPE(A2),&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">正常な値は空文字にしておくのがポイントです。<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>でERROR.TYPE自体が返す #N/A を空文字に変換しています。</p>



<p class="wp-block-paragraph">次に、この作業列をCOUNTIFで集計します。</p>



<pre class="wp-block-code"><code>=COUNTIF(B:B,7)</code></pre>



<p class="wp-block-paragraph">これで #N/A エラー（番号7）の件数がわかります。エラーが集中している種類を把握できると、修正の優先順位が立てやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: エラーの種類に応じて代替値を変える</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>はすべてのエラーを同じ代替値に置き換えます。ERROR.TYPE関数を使えば、エラーの種類ごとに異なる代替値を返せます。</p>



<pre class="wp-block-code"><code>=IF(ISERROR(A2),IF(ERROR.TYPE(A2)=7,0,IF(ERROR.TYPE(A2)=2,&quot;&quot;,A2)),A2)</code></pre>



<p class="wp-block-paragraph">この数式では、#N/A（検索値なし）なら 0 を返し、#DIV/0!（ゼロ除算）なら空文字にしています。それ以外のエラーはそのまま表示して、見逃しを防ぎます。</p>



<p class="wp-block-paragraph">「VLOOKUPの #N/A は 0 に変えたいけど、#REF! や #VALUE! はそのまま見えていてほしい」。そんな場面で役立つパターンです。</p>



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



<p class="wp-block-paragraph">ERROR.TYPE関数そのものでエラーが出るケースをまとめました。</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>仕様どおりの動作です。<a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>で先にエラーかどうかを判定しましょう</td></tr><tr><td>#N/A が返る</td><td>引数を省略した</td><td>引数は必須です。判定したいセルまたは数式を指定してください</td></tr><tr><td>#N/A が返る</td><td>#SPILL! や #CALC! を渡した</td><td>Microsoft 365 で追加されたエラーはERROR.TYPEで判定できません。ISERRORで対応してください</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>ERROR.TYPE関数が #N/A を返したとき、「エラーがない正常な状態」と「引数の省略」の区別がつかない場合があります。<a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>で先にチェックすれば確実に区別できますよ。</p></blockquote>



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



<p class="wp-block-paragraph">ERROR.TYPE関数と似た働きをする関数を比較してみましょう。</p>



<h3 class="wp-block-heading"><span id="toc16">ERROR.TYPE vs ISERROR：種類の判別 vs 有無の判定</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>ERROR.TYPE</th><th>ISERROR</th></tr></thead><tbody><tr><td>戻り値</td><td>エラー番号（1〜8）</td><td>TRUE / FALSE</td></tr><tr><td>正常値の場合</td><td>#N/A</td><td>FALSE</td></tr><tr><td>用途</td><td>エラーの<strong>種類を特定</strong>したい</td><td>エラーの<strong>有無だけ</strong>を確認したい</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>は「エラーかどうか」を判定するだけです。ERROR.TYPE関数は「どのエラーか」まで踏み込めます。エラーの種類ごとに処理を変えたいときはERROR.TYPE関数を選んでください。</p>



<h3 class="wp-block-heading"><span id="toc17">ERROR.TYPE vs IFERROR：判別 vs 一括処理</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>ERROR.TYPE</th><th>IFERROR</th></tr></thead><tbody><tr><td>戻り値</td><td>エラー番号（1〜8）</td><td>エラー時は代替値、正常時は元の値</td></tr><tr><td>エラー種類の区別</td><td>できる</td><td>できない（全エラー同じ扱い）</td></tr><tr><td>用途</td><td>エラーの<strong>種類に応じて</strong>分岐したい</td><td>エラーを<strong>まとめて</strong>代替値に置き換えたい</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>は「エラーなら全部これに置き換える」という一括処理です。ERROR.TYPE関数は「#N/Aのときはこう、#VALUE!のときはこう」と細かく分岐できます。</p>



<h3 class="wp-block-heading"><span id="toc18">ERROR.TYPE vs TYPE関数：エラーの種類 vs データの種類</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>ERROR.TYPE</th><th>TYPE</th></tr></thead><tbody><tr><td>対象</td><td>エラー値のみ</td><td>すべてのデータ型</td></tr><tr><td>戻り値</td><td>エラー番号（1〜8）</td><td>データ型コード（1=数値, 2=文字列, 4=論理値, 16=エラー, 64=配列）</td></tr><tr><td>エラー値を渡した場合</td><td>エラーの種類を特定</td><td>一律 16（エラー型）</td></tr><tr><td>正常値を渡した場合</td><td>#N/A</td><td>データ型に応じた番号</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-type/">TYPE関数</a>は「そのセルに何が入っているか（数値・文字列・エラーなど）」を判別します。ERROR.TYPE関数は「どの種類のエラーか」を判別します。目的が違うので、混同しないようにしましょう。</p>



<h3 class="wp-block-heading"><span id="toc19">エラー判定関数の使い分けフロー</span></h3>



<p class="wp-block-paragraph">どの関数を使うか迷ったときは、次の順番で判断してみてください。</p>



<ol class="wp-block-list"><li>エラーを代替値に置き換えるだけでよい → <a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a></li><li>エラーかどうかをTRUE/FALSEで判定したい → <a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a></li><li>#N/Aだけを判定したい → <a href="https://mashukabu.com/excel-function-howto-use-isna/">ISNA関数</a></li><li>#N/A以外のエラーだけを判定したい → <a href="https://mashukabu.com/excel-function-howto-use-iserr/">ISERR関数</a></li><li>#N/Aだけを代替値に置き換えたい → <a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a></li><li>エラーの種類ごとに処理を変えたい → <strong>ERROR.TYPE関数</strong></li></ol>



<h3 class="wp-block-heading"><span id="toc20">エラー判定関数の対応範囲</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>エラー値</th><th>ERROR.TYPE</th><th>ISERROR</th><th>ISERR</th><th>ISNA</th><th>IFERROR</th><th>IFNA</th></tr></thead><tbody><tr><td>#NULL!</td><td>1</td><td>TRUE</td><td>TRUE</td><td>FALSE</td><td>代替値</td><td>―</td></tr><tr><td>#DIV/0!</td><td>2</td><td>TRUE</td><td>TRUE</td><td>FALSE</td><td>代替値</td><td>―</td></tr><tr><td>#VALUE!</td><td>3</td><td>TRUE</td><td>TRUE</td><td>FALSE</td><td>代替値</td><td>―</td></tr><tr><td>#REF!</td><td>4</td><td>TRUE</td><td>TRUE</td><td>FALSE</td><td>代替値</td><td>―</td></tr><tr><td>#NAME?</td><td>5</td><td>TRUE</td><td>TRUE</td><td>FALSE</td><td>代替値</td><td>―</td></tr><tr><td>#NUM!</td><td>6</td><td>TRUE</td><td>TRUE</td><td>FALSE</td><td>代替値</td><td>―</td></tr><tr><td>#N/A</td><td>7</td><td>TRUE</td><td>FALSE</td><td>TRUE</td><td>代替値</td><td>代替値</td></tr><tr><td>正常値</td><td>#N/A</td><td>FALSE</td><td>FALSE</td><td>FALSE</td><td>元の値</td><td>元の値</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">ERROR.TYPE関数は、エラーの種類を番号で判別できる関数です。</p>



<ul class="wp-block-list"><li>7種類のエラーに対して1〜8の番号を返す</li><li>正常な値には #N/A を返す</li><li>ISERRORと組み合わせると安全に判別できる</li><li>IF関数やSWITCH関数との組み合わせでメッセージの出し分けが可能</li><li>#SPILL!など365固有のエラーには対応していない</li></ul>



<p class="wp-block-paragraph">エラーの種類ごとに処理を変えたいときは、ERROR.TYPE関数の出番です。「とりあえずエラーを非表示にしたい」だけなら<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>、「エラーかどうかだけ知りたい」なら<a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数</a>を使いましょう。</p>



<p class="wp-block-paragraph">エラー処理全般の使い分けを知りたい方は、<a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a>も参考にしてみてください。</p>



<h3 class="wp-block-heading"><span id="toc22">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-iserror/">ISERROR関数の使い方</a> &#8212; すべてのエラーをまとめて判定</li><li><a href="https://mashukabu.com/excel-function-howto-use-iserr/">ISERR関数の使い方</a> &#8212; #N/A以外のエラーを判定</li><li><a href="https://mashukabu.com/excel-function-howto-use-isna/">ISNA関数の使い方</a> &#8212; #N/Aだけを判定</li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方</a> &#8212; エラーを代替値に置き換え</li><li><a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数の使い方</a> &#8212; #N/Aだけを代替値に置き換え</li><li><a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧</a> &#8212; 7種類のエラーの原因と対処法</li><li><a href="https://mashukabu.com/excel-function-howto-use-type/">TYPE関数の使い方</a> &#8212; セルのデータ型を番号で判別</li><li><a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a> &#8212; エラー処理関数の選び方フロー</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-error-type/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのSWITCH関数の使い方｜IFネスト不要で条件分岐をすっきり書く</title>
		<link>https://mashukabu.com/excel-function-howto-use-switch/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-switch/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 27 Jun 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CHOOSE関数]]></category>
		<category><![CDATA[IFS関数]]></category>
		<category><![CDATA[IF関数]]></category>
		<category><![CDATA[SWITCH関数]]></category>
		<category><![CDATA[VLOOKUP関数]]></category>
		<category><![CDATA[条件分岐]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2109</guid>

					<description><![CDATA[ExcelのSWITCH関数の使い方を実例つきで解説。IFネストが複数段に増えたとき、値と結果をペアで並べるだけでスッキリ書けるSWITCH関数が役立ちます。IF・IFS・CHOOSEとの使い分け、バージョン制約、エラー対処法まで網羅しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「部署コードを部署名に変換したい」「ランクごとにコメントを振り分けたい」――こんなとき、<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>をネストして書いていませんか？ 条件が3つ、5つと増えるたびにカッコが深くなり、どこが何の条件か追いかけるだけで疲れてしまいますよね。</p>



<p class="wp-block-paragraph">ExcelのSWITCH関数を使えば、IFのネストは不要です。値と結果のペアを並べるだけで、条件分岐がすっきり1行で書けます。この記事では、SWITCH関数の構文と基本の使い方から、IF・IFS・CHOOSEとの使い分けまでまとめて解説します。エラー対処法や応用テクニックも紹介しますよ。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのSWITCH関数とは？（完全一致で値を振り分ける関数）</a><ol><li><a href="#toc2" tabindex="0">SWITCH関数が使えるExcelバージョン</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">引数の数え方（ペア数の見分け方）</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></ol></li><li><a href="#toc11" tabindex="0">IFネストとSWITCH関数の書き換え比較</a><ol><li><a href="#toc12" tabindex="0">IF関数のネストが3段を超えたらSWITCHに切り替えるサイン</a></li><li><a href="#toc13" tabindex="0">書き換え例：5段IFネスト → SWITCH関数1行</a></li><li><a href="#toc14" tabindex="0">読み手の負担が減る3つの理由</a></li></ol></li><li><a href="#toc15" tabindex="0">SWITCH・IFS・IF・CHOOSEの使い分け</a><ol><li><a href="#toc16" tabindex="0">完全一致ならSWITCH、不等号条件ならIFS</a></li><li><a href="#toc17" tabindex="0">連番・インデックスで選ぶならCHOOSE</a></li><li><a href="#toc18" tabindex="0">使い分けフロー（判断チャート）</a></li><li><a href="#toc19" tabindex="0">ひと目でわかる4関数の比較表</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">#NAME?：Excel 2016以前では使えない</a></li><li><a href="#toc23" tabindex="0">#VALUE!：引数の型が合っていない</a></li><li><a href="#toc24" tabindex="0">よくある誤解：「SWITCHで範囲比較」はできない</a></li></ol></li><li><a href="#toc25" tabindex="0">SWITCH関数の応用テクニック</a><ol><li><a href="#toc26" tabindex="0">WEEKDAY関数と組み合わせて曜日名を表示する</a></li><li><a href="#toc27" tabindex="0">MONTH関数で月別の区分を作る</a></li><li><a href="#toc28" tabindex="0">SWITCH(TRUE,&#8230;)で範囲条件を処理する裏ワザ</a></li><li><a href="#toc29" tabindex="0">SWITCHとVLOOKUPの使い分け基準</a></li><li><a href="#toc30" tabindex="0">データの入力規則とセットで使う</a></li></ol></li><li><a href="#toc31" tabindex="0">SWITCH関数の実務でよく使うパターン集</a><ol><li><a href="#toc32" tabindex="0">パターン1：ステータスコードの日本語化</a></li><li><a href="#toc33" tabindex="0">パターン2：優先度ランクのアイコン表示</a></li><li><a href="#toc34" tabindex="0">パターン3：エラー判定の分類</a></li><li><a href="#toc35" tabindex="0">パターン4：アンケート選択肢の集計用変換</a></li></ol></li><li><a href="#toc36" tabindex="0">よくある質問（FAQ）</a><ol><li><a href="#toc37" tabindex="0">SWITCH関数は大文字小文字を区別しますか？</a></li><li><a href="#toc38" tabindex="0">ワイルドカード（*や?）は使えますか？</a></li><li><a href="#toc39" tabindex="0">配列を返すことはできますか？</a></li><li><a href="#toc40" tabindex="0">最大何個のペアを書けますか？</a></li><li><a href="#toc41" tabindex="0">Googleスプレッドシートでも同じ構文で使えますか？</a></li></ol></li><li><a href="#toc42" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのSWITCH関数とは？（完全一致で値を振り分ける関数）</span></h2>



<p class="wp-block-paragraph">SWITCH関数は、1つの値を複数の候補と照合する関数です。一致した候補に対応する結果を返します。読み方は「スイッチ関数」で、英語の「switch（切り替える）」から来ています。プログラミング言語の switch 文と同じ発想ですね。</p>



<p class="wp-block-paragraph">たとえば「コードがS01なら営業部、A01なら総務部」のように、<strong>完全一致で値を振り分ける</strong>のが得意です。</p>



<p class="wp-block-paragraph">特徴をまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>1つの式（セル）を複数の値と比較できる</li><li>値と結果をペアで並べるので、IFネストより読みやすい</li><li>最大126ペアまで指定できる</li><li>既定値（デフォルト）を最後の引数で指定できる</li></ul>



<h3 class="wp-block-heading"><span id="toc2">SWITCH関数が使えるExcelバージョン</span></h3>



<p class="wp-block-paragraph">SWITCH関数は比較的新しい関数です。Microsoft公式ドキュメントによると、使えるバージョンは以下のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>バージョン</th><th>対応状況</th></tr></thead><tbody><tr><td>Microsoft 365</td><td>使える</td></tr><tr><td>Excel 2024</td><td>使える</td></tr><tr><td>Excel 2021</td><td>使える</td></tr><tr><td>Excel 2019</td><td>使える</td></tr><tr><td>Excel 2016以前</td><td>使えない</td></tr><tr><td>Excel for the web</td><td>使える</td></tr><tr><td>Excel for Mac（2019以降）</td><td>使える</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>Excel 2016以前をお使いの場合は、IFのネストや<a href="https://mashukabu.com/excel-function-howto-use-choose/">CHOOSE関数</a>で代替できます。この記事の「使い分け」セクションで詳しく紹介しています。</p></blockquote>



<p class="wp-block-paragraph">SWITCH関数はGoogleスプレッドシートでも使えます。スプレッドシートでは最大38ペアという違いはありますが、構文と動作はExcelと同じです。</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>



<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>どの値にも一致しなかったときの戻り値</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">値と結果は必ずセットで指定します。最大126ペアまで設定できますよ。</p>



<p class="wp-block-paragraph">既定値は「ペアにならず余った最後の引数」です。省略すると、一致しなかったときに<code>#N/A</code>エラーになります。「該当なし」などの既定値を入れておくのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc6">引数の数え方（ペア数の見分け方）</span></h3>



<p class="wp-block-paragraph">「引数が奇数個か偶数個か」で既定値の有無がわかります。</p>



<ul class="wp-block-list"><li>奇数個（例: 式 + 3ペア = 7個）: 最後が既定値</li><li>偶数個（例: 式 + 3ペア = 6個 ではなく、式 + 3ペア × 2 = 7個）: 既定値なし</li></ul>



<p class="wp-block-paragraph">細かい話ですが、引数の数を数えると既定値の漏れをチェックできます。数式を見直すときに使ってみてください。</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">部署コードから部署名を表示する例で、基本の流れを見ていきましょう。</p>



<p class="wp-block-paragraph"><strong>サンプルデータ</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列（部署コード）</th><th>B列（部署名）</th></tr></thead><tbody><tr><td>2行目</td><td>S01</td><td>←ここに数式を入れる</td></tr><tr><td>3行目</td><td>A01</td><td>&nbsp;</td></tr><tr><td>4行目</td><td>F01</td><td>&nbsp;</td></tr><tr><td>5行目</td><td>X99</td><td>&nbsp;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">B2セルに次の数式を入力します。</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"><strong>結果</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列</th><th>B列（結果）</th></tr></thead><tbody><tr><td>2行目</td><td>S01</td><td>営業部</td></tr><tr><td>3行目</td><td>A01</td><td>総務部</td></tr><tr><td>4行目</td><td>F01</td><td>経理部</td></tr><tr><td>5行目</td><td>X99</td><td>該当なし</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">A2の値「S01」が最初のペア「S01→営業部」に一致するので、「営業部」が返ります。X99はどのペアにも一致しないので、既定値の「該当なし」が表示されますね。</p>



<p class="wp-block-paragraph">数式の組み立ては「式→値と結果のペア→既定値」の順番で書くだけです。</p>



<h3 class="wp-block-heading"><span id="toc9">既定値（デフォルト）を設定する方法</span></h3>



<p class="wp-block-paragraph">既定値の仕組みをもう少し詳しく見てみましょう。</p>



<p class="wp-block-paragraph">既定値なしの場合はこうなります。</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>エラーが出ます。</p>



<p class="wp-block-paragraph">既定値を追加すると、エラーを防げます。</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">末尾の「該当なし」が既定値です。想定外の値が入ってもエラーにならないので、実務では必ず設定しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc10">数値の一致で振り分ける</span></h3>



<p class="wp-block-paragraph">SWITCH関数は文字列だけでなく、数値の完全一致にも使えます。たとえばステータスコードで処理状況を表示するパターンです。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, 1,&quot;受付中&quot;, 2,&quot;処理中&quot;, 3,&quot;完了&quot;, 9,&quot;キャンセル&quot;, &quot;不明&quot;)</code></pre>



<p class="wp-block-paragraph">数値はダブルクォートで囲まずに書きます。1、2、3のような連番コードを扱うときによく使うパターンです。</p>



<h2 class="wp-block-heading"><span id="toc11">IFネストとSWITCH関数の書き換え比較</span></h2>



<h3 class="wp-block-heading"><span id="toc12">IF関数のネストが3段を超えたらSWITCHに切り替えるサイン</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>のネストが3段を超えると、カッコの対応がわかりにくくなります。完全一致の条件分岐なら、SWITCH関数への切り替えを検討してみてください。</p>



<p class="wp-block-paragraph">目安は次のとおりです。</p>



<ul class="wp-block-list"><li><strong>2〜3段のIFネスト</strong>: そのままでもOK</li><li><strong>4段以上のIFネスト</strong>: SWITCH関数にすると読みやすい</li><li><strong>5段以上</strong>: SWITCH関数に書き換えたほうが保守しやすい</li></ul>



<h3 class="wp-block-heading"><span id="toc13">書き換え例：5段IFネスト → SWITCH関数1行</span></h3>



<p class="wp-block-paragraph">5つの部署コードを判定する例で比べてみましょう。</p>



<p class="wp-block-paragraph"><strong>Before（IFネスト5段）：</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;,IF(A2=&quot;H01&quot;,&quot;人事部&quot;,IF(A2=&quot;M01&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;H01&quot;,&quot;人事部&quot;, &quot;M01&quot;,&quot;マーケ部&quot;, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">IFネストでは「A2=」を5回書いて、閉じカッコも5つ必要です。SWITCH関数なら式は1回、カッコも1組で済みます。条件が増えるほど差が広がりますよ。</p>



<h3 class="wp-block-heading"><span id="toc14">読み手の負担が減る3つの理由</span></h3>



<p class="wp-block-paragraph">SWITCH関数に書き換えると、単にコードが短くなるだけではありません。読み手の負担も3つのポイントで減らせます。</p>



<ol class="wp-block-list"><li><strong>式を1回しか書かない</strong>: 「A2」の値を何と比べているかが一目でわかります</li><li><strong>カッコのネストがない</strong>: 閉じカッコの位置で迷うことがなくなります</li><li><strong>値と結果がペアで並ぶ</strong>: 「このコードならこの部署」が視覚的に追いやすいです</li></ol>



<p class="wp-block-paragraph">数式を修正する人が自分以外でも、SWITCH版のほうが引き継ぎやすいですね。</p>



<h2 class="wp-block-heading"><span id="toc15">SWITCH・IFS・IF・CHOOSEの使い分け</span></h2>



<h3 class="wp-block-heading"><span id="toc16">完全一致ならSWITCH、不等号条件ならIFS</span></h3>



<p class="wp-block-paragraph">SWITCH関数は<strong>完全一致（=）しか判定できません</strong>。「80点以上ならA」のような範囲条件には対応できないので、その場合は<a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS関数</a>を使いましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>SWITCH</th><th>IFS</th></tr></thead><tbody><tr><td>判定方式</td><td>完全一致のみ</td><td>条件式を自由に記述</td></tr><tr><td>範囲比較（>=など）</td><td>不可</td><td>可</td></tr><tr><td>既定値の指定</td><td>最後の引数</td><td>TRUE条件で代用</td></tr><tr><td>向いている場面</td><td>コード→名称の変換</td><td>範囲・大小の条件分岐</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc17">連番・インデックスで選ぶならCHOOSE</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-choose/">CHOOSE関数</a>は、整数インデックス（1, 2, 3&#8230;）で結果を選ぶ関数です。SWITCH関数との違いは次のとおりです。</p>



<ul class="wp-block-list"><li><strong>CHOOSE</strong>: インデックスは1から始まる連続整数のみ</li><li><strong>SWITCH</strong>: 任意の値（文字列・数値・日付など）で比較できる</li></ul>



<p class="wp-block-paragraph">連番で管理しているデータならCHOOSE、それ以外はSWITCHが便利です。</p>



<h3 class="wp-block-heading"><span id="toc18">使い分けフロー（判断チャート）</span></h3>



<p class="wp-block-paragraph">条件分岐の関数選びに迷ったら、次の順番で判断してみてください。</p>



<ol class="wp-block-list"><li><strong>完全一致か？</strong> → はい → <strong>SWITCH関数</strong></li><li><strong>範囲や大小を比較するか？</strong> → はい → <strong><a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS関数</a></strong></li><li><strong>連続整数のインデックスか？</strong> → はい → <strong><a href="https://mashukabu.com/excel-function-howto-use-choose/">CHOOSE関数</a></strong></li><li><strong>条件が2〜3個程度か？</strong> → はい → <strong><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>のネスト</strong></li></ol>



<p class="wp-block-paragraph">条件分岐の関数選びについては、<a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a>の記事でさらに詳しくまとめています。</p>



<h3 class="wp-block-heading"><span id="toc19">ひと目でわかる4関数の比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>判定方式</th><th>主な用途</th><th>既定値</th></tr></thead><tbody><tr><td>SWITCH</td><td>完全一致</td><td>コード→名称変換</td><td>最後の引数</td></tr><tr><td>IFS</td><td>条件式</td><td>範囲・大小比較</td><td>TRUE条件で代用</td></tr><tr><td>IF</td><td>2分岐</td><td>シンプルな二択</td><td>FALSE側で指定</td></tr><tr><td>CHOOSE</td><td>連番</td><td>1〜Nのインデックス</td><td>なし（IFERRORで補う）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">このマトリクスを頭に入れておくと、数式を書く前に関数選びで迷わなくなりますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc21">#N/A：既定値を忘れると一致しない値でエラーに</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: どの値にも一致せず、既定値も未指定の場合に<code>#N/A</code>が出ます。</p>



<p class="wp-block-paragraph"><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">末尾の「該当なし」が既定値です。ペアにならず余った引数が既定値として扱われます。</p>



<p class="wp-block-paragraph">SWITCH関数で最もよくあるエラーなので、既定値は必ず入れるようにしてみてください。</p>



<h3 class="wp-block-heading"><span id="toc22">#NAME?：Excel 2016以前では使えない</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: SWITCH関数はExcel 2019以降の関数です。Excel 2016以前で入力すると<code>#NAME?</code>エラーになります。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: バージョンを確認するには「ファイル → アカウント」を開きます。Excel 2016以前の場合は、IFのネストで代替しましょう。</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">エラーをまとめて防ぎたいときは、<a href="https://mashukabu.com/excel-function-howto-use-iferror/">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>



<h3 class="wp-block-heading"><span id="toc23">#VALUE!：引数の型が合っていない</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 式の結果と値のデータ型が一致しないときに出る場合があります。たとえば式が数値を返すのに値を文字列で書いている、という不整合です。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 式と値のデータ型を揃えましょう。数値どうしで比較するか、TEXT関数や<code>&""</code>で文字列化して揃える方法が確実です。</p>



<pre class="wp-block-code"><code>=SWITCH(TEXT(A2,&quot;0&quot;), &quot;1&quot;,&quot;受付中&quot;, &quot;2&quot;,&quot;処理中&quot;, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">A2が数値でも文字列でもブレない書き方です。入力値の型が不安定なときの保険として覚えておくと便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc24">よくある誤解：「SWITCHで範囲比較」はできない</span></h3>



<p class="wp-block-paragraph">SWITCH関数を「80点以上ならA、70点以上ならB」のように使おうとして、うまくいかずハマるパターンがあります。SWITCH関数は完全一致しか判定できません。</p>



<p class="wp-block-paragraph">範囲条件は<a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS関数</a>の出番です。それでもSWITCHで書きたい場合は、後述の「TRUEトリック」を使います。</p>



<h2 class="wp-block-heading"><span id="toc25">SWITCH関数の応用テクニック</span></h2>



<h3 class="wp-block-heading"><span id="toc26">WEEKDAY関数と組み合わせて曜日名を表示する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-weekday/">WEEKDAY関数</a>は曜日を1〜7の数字で返します。SWITCH関数と組み合わせれば、日本語の曜日名に変換できます。</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=土曜）をそのまま値として並べるだけです。曜日のように候補が決まっている場面にはピッタリですよ。</p>



<h3 class="wp-block-heading"><span id="toc27">MONTH関数で月別の区分を作る</span></h3>



<p class="wp-block-paragraph">同じ発想で、月を四半期に変換するパターンも書けます。</p>



<pre class="wp-block-code"><code>=SWITCH(MONTH(A2), 1,&quot;Q4&quot;, 2,&quot;Q4&quot;, 3,&quot;Q4&quot;, 4,&quot;Q1&quot;, 5,&quot;Q1&quot;, 6,&quot;Q1&quot;, 7,&quot;Q2&quot;, 8,&quot;Q2&quot;, 9,&quot;Q2&quot;, 10,&quot;Q3&quot;, 11,&quot;Q3&quot;, 12,&quot;Q3&quot;)</code></pre>



<p class="wp-block-paragraph">日本の会計年度（4月始まり）で四半期を割り当てる例です。数式は長めですが、条件の対応が明確で読みやすいですよね。</p>



<h3 class="wp-block-heading"><span id="toc28">SWITCH(TRUE,&#8230;)で範囲条件を処理する裏ワザ</span></h3>



<p class="wp-block-paragraph">SWITCH関数は完全一致が基本ですが、TRUEトリックを使うと範囲条件も処理できます。</p>



<pre class="wp-block-code"><code>=SWITCH(TRUE, A2&gt;=90,&quot;A評価&quot;, A2&gt;=70,&quot;B評価&quot;, A2&gt;=50,&quot;C評価&quot;, &quot;D評価&quot;)</code></pre>



<p class="wp-block-paragraph">式にTRUEを指定して、各値の位置に条件式を書きます。上から順に評価され、最初にTRUEになった結果が返ります。</p>



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、やっていることはシンプルです。「どの条件がTRUEか？」を上から順にチェックしているだけですね。</p>



<p class="wp-block-paragraph">ただし、範囲条件の本来の用途は<a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS関数</a>です。TRUEトリックは「裏ワザ」として知っておく程度でOKですよ。</p>



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



<p class="wp-block-paragraph">コード変換なら<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>でもできます。どちらを使うか迷ったら、対応の件数で判断してみてください。</p>



<figure class="wp-block-table"><table><thead><tr><th>基準</th><th>SWITCH関数</th><th>VLOOKUP関数</th></tr></thead><tbody><tr><td>対応の件数</td><td>5〜10件程度に最適</td><td>大量データに最適</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></tbody></table></figure>



<p class="wp-block-paragraph">対応が5〜10件で変更が少ないならSWITCH、それ以上ならVLOOKUPが向いています。</p>



<h3 class="wp-block-heading"><span id="toc30">データの入力規則とセットで使う</span></h3>



<p class="wp-block-paragraph">SWITCH関数は「想定した値しか入ってこない列」と相性がよい関数です。データの入力規則（リスト選択）とセットで使うと、未知の値が入ることを防げます。</p>



<ol class="wp-block-list"><li>入力規則で「S01, A01, F01, H01, M01」のリストを設定</li><li>SWITCHで各コードの部署名に変換</li><li>既定値「該当なし」は入力規則の例外対策として保険で残す</li></ol>



<p class="wp-block-paragraph">入力規則とSWITCHを組み合わせると、入力ミスと数式エラーをダブルで防げますね。</p>



<h2 class="wp-block-heading"><span id="toc31">SWITCH関数の実務でよく使うパターン集</span></h2>



<p class="wp-block-paragraph">よくある業務シーンでの使い方を4つ紹介します。テンプレートとしてコピペで使ってください。</p>



<h3 class="wp-block-heading"><span id="toc32">パターン1：ステータスコードの日本語化</span></h3>



<p class="wp-block-paragraph">業務システムから出力したCSVなどで、ステータスが英語コードのまま入っていることがあります。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;OPEN&quot;,&quot;受付中&quot;, &quot;WIP&quot;,&quot;処理中&quot;, &quot;DONE&quot;,&quot;完了&quot;, &quot;CANCEL&quot;,&quot;キャンセル&quot;, A2)</code></pre>



<p class="wp-block-paragraph">最後の既定値をA2にすることで、未知のコードはそのまま表示されます。データの確認用に一時的に使うときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc33">パターン2：優先度ランクのアイコン表示</span></h3>



<p class="wp-block-paragraph">優先度を1〜3で管理しているとき、視覚的にわかりやすく変換できます。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, 1,&quot;★★★（高）&quot;, 2,&quot;★★（中）&quot;, 3,&quot;★（低）&quot;, &quot;未設定&quot;)</code></pre>



<p class="wp-block-paragraph">ダッシュボードやレポートで、数字より一目で判別しやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc34">パターン3：エラー判定の分類</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>と組み合わせて、エラーの種類別に対応することもできます。</p>



<pre class="wp-block-code"><code>=IFERROR(VLOOKUP(A2,テーブル,2,FALSE), SWITCH(TRUE, A2=&quot;&quot;,&quot;値未入力&quot;, LEN(A2)&lt;3,&quot;コード桁数不足&quot;, &quot;マスタ未登録&quot;))</code></pre>



<p class="wp-block-paragraph">VLOOKUPがエラーになったときだけ、原因を分類して表示するパターンです。チェック作業のフィードバックに使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc35">パターン4：アンケート選択肢の集計用変換</span></h3>



<p class="wp-block-paragraph">5段階評価を数値スコアに変換するパターンです。</p>



<pre class="wp-block-code"><code>=SWITCH(A2, &quot;非常に満足&quot;,5, &quot;満足&quot;,4, &quot;普通&quot;,3, &quot;不満&quot;,2, &quot;非常に不満&quot;,1, 0)</code></pre>



<p class="wp-block-paragraph">アンケートの文字列回答を数値化できるので、このあと平均や分布の集計に使えます。既定値0は未回答扱いです。</p>



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



<h3 class="wp-block-heading"><span id="toc37">SWITCH関数は大文字小文字を区別しますか？</span></h3>



<p class="wp-block-paragraph">SWITCH関数は<strong>大文字小文字を区別しません</strong>。「S01」と「s01」は同じ値として扱われます。大文字小文字を厳密に区別したい場合は、EXACT関数と組み合わせた別の書き方が必要です。</p>



<pre class="wp-block-code"><code>=SWITCH(TRUE, EXACT(A2,&quot;S01&quot;),&quot;営業部&quot;, EXACT(A2,&quot;s01&quot;),&quot;営業部（小文字）&quot;, &quot;該当なし&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc38">ワイルドカード（*や?）は使えますか？</span></h3>



<p class="wp-block-paragraph">SWITCH関数は<strong>ワイルドカードに対応していません</strong>。値はあくまで完全一致で比較されます。部分一致で振り分けたいときは、IF関数とSEARCH関数の組み合わせなどを検討してください。</p>



<h3 class="wp-block-heading"><span id="toc39">配列を返すことはできますか？</span></h3>



<p class="wp-block-paragraph">1つの値に対して1つの結果しか返せません。ただし、スピル対応のExcel（Microsoft 365・Excel 2021以降）なら話が変わります。式の部分に配列を入れれば、結果もスピルして並びます。</p>



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



<p class="wp-block-paragraph">縦方向の範囲A2:A5をSWITCHで一括変換する書き方です。</p>



<h3 class="wp-block-heading"><span id="toc40">最大何個のペアを書けますか？</span></h3>



<p class="wp-block-paragraph"><strong>Excel版は最大126ペア</strong>まで指定できます。実務では20ペアを超えるなら、マスタテーブル＋<a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数</a>への切り替えを検討するのがおすすめですよ。</p>



<h3 class="wp-block-heading"><span id="toc41">Googleスプレッドシートでも同じ構文で使えますか？</span></h3>



<p class="wp-block-paragraph">構文は同じですが、Googleスプレッドシート版のSWITCH関数は<strong>最大38ペア</strong>という違いがあります。また、スプレッドシートでは配列処理の挙動が少し異なるので、大量データで使うときはテストしてから本番投入してください。</p>



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



<p class="wp-block-paragraph">ExcelのSWITCH関数の使い方を紹介しました。最後にポイントを整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>内容</th></tr></thead><tbody><tr><td>機能</td><td>1つの値を複数の候補と照合して結果を返す</td></tr><tr><td>構文</td><td><code>=SWITCH(式, 値1, 結果1, …, [既定値])</code></td></tr><tr><td>最大ペア数</td><td>126ペア（Googleスプレッドシートは38ペア）</td></tr><tr><td>対応バージョン</td><td>Excel 2019 / 2021 / 2024 / Microsoft 365</td></tr><tr><td>得意な場面</td><td>コード→名称の変換（完全一致の分岐）</td></tr><tr><td>苦手な場面</td><td>範囲条件（>=など）→ <a href="https://mashukabu.com/excel-function-howto-use-ifs/">IFS関数</a>を使う</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SWITCH関数は、IFのネストを置き換えるだけで数式がグッと読みやすくなります。完全一致の分岐が出てきたら、ぜひ試してみてください。既定値の設定と、他関数との使い分けを意識するのが使いこなしのコツですよ。</p>



<p class="wp-block-paragraph">条件分岐の関数をもっと深く知りたい方は、<a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a>もあわせてご覧ください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-switch/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのIFS関数の使い方｜IFネストを卒業して複数条件をスッキリ書く方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-ifs/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-ifs/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 27 Feb 2022 13:37:37 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[AND関数]]></category>
		<category><![CDATA[IFS関数]]></category>
		<category><![CDATA[IF関数 違い]]></category>
		<category><![CDATA[SWITCH関数]]></category>
		<category><![CDATA[条件分岐]]></category>
		<category><![CDATA[複数条件]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1264</guid>

					<description><![CDATA[IFS関数の基本構文から「それ以外」の書き方、AND/ORとの組み合わせ、評価・分類・期限判定など実務パターン6選、IF関数・SWITCH関数との使い分けまでをわかりやすく解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「IF関数のネストが3段になると、もう何がなんだか分からない……」</p>



<p class="wp-block-paragraph">Excelで複数の条件分岐を書くとき、こんな経験はありませんか？ カッコの対応を間違えてエラーになったり、あとから見返しても条件の意味が読み取れなかったり。 実はExcelには、こうした「IFのネスト地獄」から解放してくれる関数があります。</p>



<p class="wp-block-paragraph">それが <strong>IFS関数</strong> です。 複数の条件をフラットに並べるだけで、ネストなしの分岐処理を実現できます。 この記事では、IFS関数の基本から実務パターン、よくあるエラーの対処法まで丁寧に解説していきますね。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-9" checked><label class="toc-title" for="toc-checkbox-9">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">IFS関数とは？IF関数との違いをひとことで</a><ol><li><a href="#toc2" tabindex="0">基本構文と引数の意味</a></li><li><a href="#toc3" tabindex="0">使えるバージョン（Excel 2019以降 / Microsoft 365）</a></li></ol></li><li><a href="#toc4" tabindex="0">IFS関数の基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">3段階判定の例（成績評価）</a></li><li><a href="#toc6" tabindex="0">「それ以外」はTRUEで受け取る</a></li><li><a href="#toc7" tabindex="0">引数の順番が結果を左右する理由</a></li></ol></li><li><a href="#toc8" tabindex="0">IFS × AND関数 / OR関数の組み合わせ</a><ol><li><a href="#toc9" tabindex="0">AND（〜かつ〜）で複数列を同時チェック</a></li><li><a href="#toc10" tabindex="0">OR（〜または〜）で広げる条件分岐</a></li></ol></li><li><a href="#toc11" tabindex="0">実務パターン6選</a><ol><li><a href="#toc12" tabindex="0">パターン1: 評価・査定ランク付け</a></li><li><a href="#toc13" tabindex="0">パターン2: 数値の区分分け</a></li><li><a href="#toc14" tabindex="0">パターン3: 文字列分類</a></li><li><a href="#toc15" tabindex="0">パターン4: 日付・期限判定</a></li><li><a href="#toc16" tabindex="0">パターン5: 複合条件で複数列参照</a></li><li><a href="#toc17" tabindex="0">パターン6: IFERRORと組み合わせてエラーを握りつぶさない方法</a></li></ol></li><li><a href="#toc18" tabindex="0">IF関数・SWITCH関数との使い分け</a><ol><li><a href="#toc19" tabindex="0">IFS関数を選ぶとき</a></li><li><a href="#toc20" tabindex="0">ネストIFを選ぶとき</a></li><li><a href="#toc21" tabindex="0">SWITCH関数を選ぶとき</a></li></ol></li><li><a href="#toc22" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc23" tabindex="0">#N/Aエラー</a></li><li><a href="#toc24" tabindex="0">条件の順番ミス</a></li><li><a href="#toc25" tabindex="0">そのほかのエラー</a></li></ol></li><li><a href="#toc26" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">IFS関数とは？IF関数との違いをひとことで</span></h2>



<p class="wp-block-paragraph">IFS関数（読み方: イフエス）は、<strong>複数の条件を上から順に判定して、最初にTRUEになった条件の値を返す関数</strong>です。 名前のとおり、IF関数の複数形にあたります。</p>



<p class="wp-block-paragraph">IF関数との一番の違いは「ネストが不要」なこと。 IF関数で3段階の判定をしようとすると、こうなりますよね。</p>



<pre class="wp-block-code"><code>=IF(A1&gt;=90, &quot;優&quot;, IF(A1&gt;=70, &quot;良&quot;, IF(A1&gt;=50, &quot;可&quot;, &quot;不可&quot;)))</code></pre>



<p class="wp-block-paragraph">これをIFS関数で書くと、こうなります。</p>



<pre class="wp-block-code"><code>=IFS(A1&gt;=90, &quot;優&quot;, A1&gt;=70, &quot;良&quot;, A1&gt;=50, &quot;可&quot;, TRUE, &quot;不可&quot;)</code></pre>



<p class="wp-block-paragraph">カッコのネストがなくなり、条件と結果が一対一で並ぶのでとても読みやすくなります。 「条件が3つ以上になったらIFS関数を検討する」と覚えておくと便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">基本構文と引数の意味</span></h3>



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



<pre class="wp-block-code"><code>=IFS(論理式1, 値1, [論理式2, 値2], ...)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>論理式1</td><td>必須</td><td>1つ目の条件（TRUE/FALSEを返す式）</td></tr><tr><td>値1</td><td>必須</td><td>論理式1がTRUEのときに返す値</td></tr><tr><td>論理式2, 値2 &#8230;</td><td>省略可</td><td>2つ目以降の条件と値のペア（最大127組）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは、<strong>論理式と値が必ずペア</strong>になっていること。 IF関数にある「偽の場合（value_if_false）」という引数はありません。 そのため、すべての条件に当てはまらなかったときの処理は、別の書き方で対応します（後ほど解説しますね）。</p>



<h3 class="wp-block-heading"><span id="toc3">使えるバージョン（Excel 2019以降 / Microsoft 365）</span></h3>



<p class="wp-block-paragraph">IFS関数が使えるのは、<strong>Excel 2019以降</strong> または <strong>Microsoft 365</strong> です。 Excel 2016以前のバージョンでは #NAME? エラーになります。</p>



<p class="wp-block-paragraph">もし社内でExcelのバージョンが統一されていない場合は、従来のIFネストを使ったほうが安全です。 共有ファイルを作るときは、相手の環境も確認しておくと安心ですよ。</p>



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



<p class="wp-block-paragraph">ここからは、実際にIFS関数を使った具体例を見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc5">3段階判定の例（成績評価）</span></h3>



<p class="wp-block-paragraph">テストの点数に応じて「優」「良」「可」「不可」を判定する例です。 セルA2に点数が入っているとします。</p>



<pre class="wp-block-code"><code>=IFS(A2&gt;=90, &quot;優&quot;, A2&gt;=70, &quot;良&quot;, A2&gt;=50, &quot;可&quot;, TRUE, &quot;不可&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列（点数）</th><th>結果</th></tr></thead><tbody><tr><td>95</td><td>優</td></tr><tr><td>75</td><td>良</td></tr><tr><td>50</td><td>可</td></tr><tr><td>30</td><td>不可</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">IFS関数は条件を<strong>上から順番に評価</strong>します。 95点なら最初の A2>=90 がTRUEになるので「優」が返ります。 75点なら A2>=90 はFALSE、次の A2>=70 がTRUEなので「良」になります。</p>



<h3 class="wp-block-heading"><span id="toc6">「それ以外」はTRUEで受け取る</span></h3>



<p class="wp-block-paragraph">IFS関数にはIF関数のような「偽の場合」がありません。 すべての条件がFALSEだと、#N/A エラーが返ってしまいます。</p>



<p class="wp-block-paragraph">これを防ぐために、<strong>最後の条件を TRUE にする</strong>のが定番テクニックです。</p>



<pre class="wp-block-code"><code>=IFS(A2&gt;=90, &quot;優&quot;, A2&gt;=70, &quot;良&quot;, A2&gt;=50, &quot;可&quot;, TRUE, &quot;不可&quot;)</code></pre>



<p class="wp-block-paragraph">最後の TRUE は「上のどの条件にも当てはまらなければ」という意味になります。 IF関数でいう「偽の場合」の代わりですね。 IFS関数を使うときは、<strong>最後にTRUEを入れる</strong>のをクセにしておくとエラーを防げますよ。</p>



<h3 class="wp-block-heading"><span id="toc7">引数の順番が結果を左右する理由</span></h3>



<p class="wp-block-paragraph">IFS関数は<strong>最初にTRUEになった条件で確定</strong>します。 つまり、条件の並び順がそのまま優先順位になります。</p>



<p class="wp-block-paragraph">たとえば、次の数式を見てください。</p>



<pre class="wp-block-code"><code>=IFS(A2&gt;=50, &quot;可&quot;, A2&gt;=70, &quot;良&quot;, A2&gt;=90, &quot;優&quot;, TRUE, &quot;不可&quot;)</code></pre>



<p class="wp-block-paragraph">この書き方だと、90点でも最初の A2>=50 がTRUEになるので「可」になってしまいます。 正しくは<strong>厳しい条件（大きい値）を先に書く</strong>必要があります。</p>



<pre class="wp-block-code"><code>=IFS(A2&gt;=90, &quot;優&quot;, A2&gt;=70, &quot;良&quot;, A2&gt;=50, &quot;可&quot;, TRUE, &quot;不可&quot;)</code></pre>



<p class="wp-block-paragraph">「条件は上から優先」という仕組みを意識しておくと、思わぬミスを防げますよ。</p>



<h2 class="wp-block-heading"><span id="toc8">IFS × AND関数 / OR関数の組み合わせ</span></h2>



<p class="wp-block-paragraph">IFS関数の条件部分には、<a href="https://mashukabu.com/excel-function-howto-use-and/">AND関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-or/">OR関数</a>を組み込むことができます。 「〜かつ〜」「〜または〜」の複合条件を表現できるので、実務での活用の幅がぐっと広がります。</p>



<h3 class="wp-block-heading"><span id="toc9">AND（〜かつ〜）で複数列を同時チェック</span></h3>



<p class="wp-block-paragraph">点数（A列）と提出状況（B列）の両方を見て評価を出す例です。</p>



<pre class="wp-block-code"><code>=IFS(
  AND(A2&gt;=90, B2=&quot;提出済&quot;), &quot;S評価&quot;,
  AND(A2&gt;=70, B2=&quot;提出済&quot;), &quot;A評価&quot;,
  AND(A2&gt;=50, B2=&quot;提出済&quot;), &quot;B評価&quot;,
  TRUE, &quot;要フォロー&quot;
)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列（点数）</th><th>B列（提出状況）</th><th>結果</th></tr></thead><tbody><tr><td>95</td><td>提出済</td><td>S評価</td></tr><tr><td>80</td><td>提出済</td><td>A評価</td></tr><tr><td>80</td><td>未提出</td><td>要フォロー</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">AND関数を使うことで、「点数が90以上 <strong>かつ</strong> 提出済」のような複合条件を1つの論理式にまとめられます。 提出していなければ点数に関係なく「要フォロー」になる、というロジックも自然に書けますよね。</p>



<h3 class="wp-block-heading"><span id="toc10">OR（〜または〜）で広げる条件分岐</span></h3>



<p class="wp-block-paragraph">勤怠ステータスに応じて区分を振り分ける例です。</p>



<pre class="wp-block-code"><code>=IFS(
  OR(A2=&quot;欠勤&quot;, A2=&quot;遅刻&quot;), &quot;要確認&quot;,
  OR(A2=&quot;出勤&quot;, A2=&quot;テレワーク&quot;), &quot;正常&quot;,
  TRUE, &quot;未記入&quot;
)</code></pre>



<p class="wp-block-paragraph">OR関数を使えば、「欠勤 <strong>または</strong> 遅刻なら要確認」のように、複数の値をまとめて1つの条件として扱えます。 条件ごとに別々の行を書かなくてよいので、数式がコンパクトになりますよ。</p>



<h2 class="wp-block-heading"><span id="toc11">実務パターン6選</span></h2>



<p class="wp-block-paragraph">ここからは、IFS関数が活躍する実務シーンを6パターン紹介します。 そのまま使えるテンプレートとして活用してみてください。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン1: 評価・査定ランク付け</span></h3>



<p class="wp-block-paragraph">売上金額に応じてランクを付ける定番パターンです。</p>



<pre class="wp-block-code"><code>=IFS(C2&gt;=1000000, &quot;Sランク&quot;, C2&gt;=500000, &quot;Aランク&quot;, C2&gt;=200000, &quot;Bランク&quot;, TRUE, &quot;Cランク&quot;)</code></pre>



<p class="wp-block-paragraph">100万以上ならSランク、50万以上ならAランクという具合です。 人事評価やKPI管理にも応用できますよ。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン2: 数値の区分分け</span></h3>



<p class="wp-block-paragraph">残業時間を区分ごとに分類する例です。</p>



<pre class="wp-block-code"><code>=IFS(D2&gt;=80, &quot;要注意&quot;, D2&gt;=60, &quot;特別手当&quot;, D2&gt;=20, &quot;通常手当&quot;, TRUE, &quot;手当なし&quot;)</code></pre>



<p class="wp-block-paragraph">数値の範囲でラベルを振り分ける処理は、IFS関数の得意分野です。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン3: 文字列分類</span></h3>



<p class="wp-block-paragraph">部署名に応じてメッセージを切り替える例です。</p>



<pre class="wp-block-code"><code>=IFS(
  F2=&quot;営業部&quot;, &quot;顧客対応優先&quot;,
  F2=&quot;経理部&quot;, &quot;月末処理注意&quot;,
  F2=&quot;総務部&quot;, &quot;備品管理確認&quot;,
  TRUE, &quot;共通事項確認&quot;
)</code></pre>



<p class="wp-block-paragraph">文字列の完全一致で分岐する場合は、SWITCH関数も候補になります。 ただし「それ以外」をTRUEで拾いたいときは、IFS関数のほうが柔軟に対応できますよ。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン4: 日付・期限判定</span></h3>



<p class="wp-block-paragraph">日付をもとに年度区分を判定する例です。</p>



<pre class="wp-block-code"><code>=IFS(A2&lt;DATE(2025,4,1), &quot;旧年度&quot;, A2&lt;DATE(2026,4,1), &quot;当年度&quot;, TRUE, &quot;翌年度以降&quot;)</code></pre>



<p class="wp-block-paragraph">DATE関数と組み合わせれば、期限管理やキャンペーン期間の判定にも使えます。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン5: 複合条件で複数列参照</span></h3>



<p class="wp-block-paragraph">3科目の点数を同時にチェックして合否を判定する例です。</p>



<pre class="wp-block-code"><code>=IFS(
  AND(B2&gt;=60, C2&gt;=60, D2&gt;=60), &quot;合格&quot;,
  OR(B2&lt;30, C2&lt;30, D2&lt;30), &quot;不合格（要補講）&quot;,
  TRUE, &quot;再試験&quot;
)</code></pre>



<p class="wp-block-paragraph">AND関数とOR関数を混在させることもできます。「全科目60点以上なら合格、1科目でも30点未満なら不合格」というルールも、IFS関数なら1つの数式に収められますよ。</p>



<h3 class="wp-block-heading"><span id="toc17">パターン6: IFERRORと組み合わせてエラーを握りつぶさない方法</span></h3>



<p class="wp-block-paragraph">IFS関数の結果が #N/A になる可能性がある場合、<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で一律「エラー」としてしまうのは危険です。 本当のデータ不備を見逃すことにつながります。</p>



<p class="wp-block-paragraph">おすすめは、<a href="https://mashukabu.com/excel-function-howto-use-ifna/">IFNA関数</a>でN/Aエラーだけをキャッチする方法です。</p>



<pre class="wp-block-code"><code>=IFNA(IFS(A2&gt;=90, &quot;優&quot;, A2&gt;=70, &quot;良&quot;, A2&gt;=50, &quot;可&quot;), &quot;判定不能&quot;)</code></pre>



<p class="wp-block-paragraph">IFNA関数なら #N/A だけを処理して、#VALUE! などの想定外エラーはそのまま表示してくれます。 「エラーを握りつぶさず、N/Aだけ拾う」のが安全な使い方ですよ。</p>



<h2 class="wp-block-heading"><span id="toc18">IF関数・SWITCH関数との使い分け</span></h2>



<p class="wp-block-paragraph">条件分岐に使える関数は、IFS以外にも<a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-switch/">SWITCH関数</a>があります。 それぞれ得意なシーンが違うので、使い分けの基準を整理しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc19">IFS関数を選ぶとき</span></h3>



<ul class="wp-block-list"><li>条件が3つ以上ある</li><li>「以上」「未満」のような範囲比較で分岐したい</li><li>条件にAND/ORを組み込みたい</li></ul>



<p class="wp-block-paragraph">IFS関数は範囲比較に強く、条件が増えても可読性が落ちにくいのが特徴です。</p>



<h3 class="wp-block-heading"><span id="toc20">ネストIFを選ぶとき</span></h3>



<ul class="wp-block-list"><li>条件が2つまでのシンプルな分岐</li><li>Excel 2016以前との互換性が必要</li><li>「TRUE/FALSEの2択」で十分なケース</li></ul>



<p class="wp-block-paragraph">条件が1〜2つなら、IF関数のほうがシンプルに書けます。 バージョン互換性を重視する場合もIF関数が安全です。</p>



<h3 class="wp-block-heading"><span id="toc21">SWITCH関数を選ぶとき</span></h3>



<ul class="wp-block-list"><li>特定の値との<strong>完全一致</strong>で分岐する</li><li>「1なら月、2なら火、3なら水……」のようなマッピング</li></ul>



<p class="wp-block-paragraph">SWITCH関数は値の完全一致に特化しています。 「>=」や「<」のような範囲比較には対応していないので注意してください。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>IFS関数</th><th>IF関数（ネスト）</th><th>SWITCH関数</th></tr></thead><tbody><tr><td>条件の数</td><td>3つ以上に最適</td><td>1〜2つに最適</td><td>値の一覧向き</td></tr><tr><td>範囲比較</td><td>対応</td><td>対応</td><td>非対応</td></tr><tr><td>完全一致</td><td>対応</td><td>対応</td><td>得意</td></tr><tr><td>可読性（条件多数時）</td><td>高い</td><td>低い（ネスト深い）</td><td>高い</td></tr><tr><td>対応バージョン</td><td>2019以降</td><td>全バージョン</td><td>2019以降</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったときは「範囲比較ならIFS、完全一致ならSWITCH、2択ならIF」と覚えておくと選びやすいですよ。</p>



<p class="wp-block-paragraph">もっと詳しく知りたい方は「<a href="https://mashukabu.com/excel-if-ifs-iferror-ifna-comparison/">IF・IFS・IFERROR・IFNAの使い分け</a>」の記事もチェックしてみてください。</p>



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



<p class="wp-block-paragraph">IFS関数で発生しやすいエラーと、その原因・対処法をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc23">#N/Aエラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: すべての条件がFALSEで、TRUEになる条件が1つもなかった場合に発生します。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 最後の条件に TRUE を追加して「それ以外」を必ず受け止めるようにしましょう。</p>



<pre class="wp-block-code"><code>× =IFS(A2&gt;=90, &quot;優&quot;, A2&gt;=70, &quot;良&quot;, A2&gt;=50, &quot;可&quot;)
○ =IFS(A2&gt;=90, &quot;優&quot;, A2&gt;=70, &quot;良&quot;, A2&gt;=50, &quot;可&quot;, TRUE, &quot;不可&quot;)</code></pre>



<p class="wp-block-paragraph">IFS関数を書いたら「TRUEで締めているか」を確認するクセをつけておくと安心です。 エラー値の詳細は「<a href="https://mashukabu.com/excel-error-value-list/">Excelエラー値一覧</a>」も参考にしてみてください。</p>



<h3 class="wp-block-heading"><span id="toc24">条件の順番ミス</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 緩い条件を先に書いてしまい、厳しい条件が評価されないケースです。</p>



<pre class="wp-block-code"><code>× =IFS(A2&gt;=50, &quot;可&quot;, A2&gt;=70, &quot;良&quot;, A2&gt;=90, &quot;優&quot;)</code></pre>



<p class="wp-block-paragraph">この書き方だと、90点でも A2>=50 が先にTRUEになるので「可」になってしまいます。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 厳しい条件（大きい値）を先に書きましょう。</p>



<pre class="wp-block-code"><code>○ =IFS(A2&gt;=90, &quot;優&quot;, A2&gt;=70, &quot;良&quot;, A2&gt;=50, &quot;可&quot;, TRUE, &quot;不可&quot;)</code></pre>



<p class="wp-block-paragraph">「上から優先」を意識するだけで、このミスは防げますよ。</p>



<h3 class="wp-block-heading"><span id="toc25">そのほかのエラー</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>条件がTRUE/FALSEを返さない式になっている</td><td>論理式を見直す</td></tr><tr><td>「引数が少なすぎます」</td><td>条件と値がペアになっていない</td><td>引数の数が偶数か確認する</td></tr><tr><td>#NAME?</td><td>Excel 2016以前で使用している</td><td>バージョンを確認し、IFネストに書き換える</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">IFS関数は、IF関数のネストをフラットに書き直せる便利な関数です。 この記事のポイントを振り返っておきましょう。</p>



<ul class="wp-block-list"><li>IFS関数は<strong>条件と値のペア</strong>を並べるだけで複数条件の分岐ができる</li><li>「それ以外」を表現するには、<strong>最後の条件をTRUE</strong>にする</li><li>条件は<strong>上から順に評価</strong>されるので、厳しい条件を先に書く</li><li>AND関数やOR関数と組み合わせれば、複合条件も対応できる</li><li>Excel 2019以降 / Microsoft 365で利用可能</li></ul>



<p class="wp-block-paragraph">IF関数のネストで消耗していた方は、ぜひIFS関数を試してみてください。 数式がスッキリ読みやすくなるのを実感できるはずですよ。</p>



<p class="wp-block-paragraph">Excel関数の基礎をもっと固めたい方は「<a href="https://mashukabu.com/excel-function/">Excel関数の基本</a>」、関数を探したい方は「<a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数一覧</a>」もあわせてどうぞ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-ifs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
