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

<channel>
	<title>排他的論理和 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%E6%8E%92%E4%BB%96%E7%9A%84%E8%AB%96%E7%90%86%E5%92%8C/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sun, 17 May 2026 09:17:25 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.3</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>排他的論理和 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのXOR関数の使い方｜排他的論理和で条件判定する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-xor/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-xor/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Jan 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[XOR関数]]></category>
		<category><![CDATA[排他的論理和]]></category>
		<category><![CDATA[条件判定]]></category>
		<category><![CDATA[論理関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3285</guid>

					<description><![CDATA[ExcelのXOR関数（排他的論理和）の使い方を基礎からわかりやすく解説。「どちらか一方だけTRUE」を判定する仕組み、IF関数との組み合わせ、3つ以上の条件での注意点、AND・OR関数との違いと使い分けまで実務に直結する具体例つきで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「2つの条件のうち、どちらか一方だけが当てはまるかを判定したい」と思ったことはありませんか？</p>



<p class="wp-block-paragraph">AND関数やOR関数では「両方TRUE」「どちらかTRUE」の判定はできますが、<strong>「片方だけTRUE」</strong> を判定するのはちょっと面倒ですよね。</p>



<p class="wp-block-paragraph">そんなときに使えるのが <strong>XOR関数</strong> です。この記事では、XOR関数の基本的な使い方から、IF関数との組み合わせ、AND・OR関数との違いまでわかりやすく解説します。</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">XOR関数とは？</a></li><li><a href="#toc2" tabindex="0">XOR関数の書き方（構文と引数）</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">基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">数式に直接条件を書く方法</a></li><li><a href="#toc7" tabindex="0">セル参照を使う方法</a></li></ol></li><li><a href="#toc8" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc9" tabindex="0">IF関数と組み合わせて結果を表示する</a></li><li><a href="#toc10" tabindex="0">3つ以上の条件を判定する</a></li></ol></li><li><a href="#toc11" tabindex="0">エラー対処とAND・OR関数との違い</a><ol><li><a href="#toc12" tabindex="0">#VALUE! エラーの原因と対処</a></li><li><a href="#toc13" tabindex="0">AND・OR関数との違い</a></li></ol></li><li><a href="#toc14" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">XOR関数は、指定した論理値の <strong>排他的論理和（Exclusive OR）</strong> を返す関数です。</p>



<p class="wp-block-paragraph">読み方は「エクスクルーシブ オア」で、「エックスオア」と呼ばれることもあります。</p>



<p class="wp-block-paragraph">簡単に言うと、「指定した条件のうち、TRUEが <strong>奇数個</strong> のときにTRUEを返す」という動作をします。</p>



<p class="wp-block-paragraph">条件が2つの場合は、次のようなイメージです。</p>



<figure class="wp-block-table"><table><thead><tr><th style="text-align:center">条件1</th><th style="text-align:center">条件2</th><th style="text-align:center">XOR関数の結果</th></tr></thead><tbody><tr><td style="text-align:center">TRUE</td><td style="text-align:center">TRUE</td><td style="text-align:center">FALSE</td></tr><tr><td style="text-align:center">TRUE</td><td style="text-align:center">FALSE</td><td style="text-align:center">TRUE</td></tr><tr><td style="text-align:center">FALSE</td><td style="text-align:center">TRUE</td><td style="text-align:center">TRUE</td></tr><tr><td style="text-align:center">FALSE</td><td style="text-align:center">FALSE</td><td style="text-align:center">FALSE</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは「両方TRUE」のときにFALSEになること。AND関数やOR関数にはないXOR関数ならではの特徴です。</p>



<p class="wp-block-paragraph">XOR関数は <strong>Excel 2013以降</strong> および <strong>Microsoft 365</strong> で使用できます。Excel 2010以前のバージョンでは使用できないので注意してください。</p>



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



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



<pre class="wp-block-code"><code>=XOR(論理式1, [論理式2], ...)</code></pre>



<p class="wp-block-paragraph"><code>[]</code> で囲まれた引数は省略可能です。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th style="text-align:center">必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>論理式1</td><td style="text-align:center">必須</td><td>判定したい条件や論理値（TRUE/FALSE）</td></tr><tr><td>論理式2〜254</td><td style="text-align:center">省略可</td><td>追加の条件。最大254個まで指定可能</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数には、論理値（TRUE/FALSE）のほかに、論理式（<code>A1>10</code> など）やセル参照、配列を指定できます。</p>



<p class="wp-block-paragraph">文字列や空白セルは無視されます。指定した範囲に論理値が1つも含まれない場合は <code>#VALUE!</code> エラーになります。</p>



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



<h3 class="wp-block-heading"><span id="toc6">数式に直接条件を書く方法</span></h3>



<p class="wp-block-paragraph">まずは、XOR関数の中に直接条件式を書く基本的な使い方です。</p>



<pre class="wp-block-code"><code>=XOR(3&gt;12, 4&gt;6)</code></pre>



<p class="wp-block-paragraph">この式では、<code>3>12</code> はFALSE、<code>4>6</code> もFALSEです。TRUEが0個（偶数個）なので、結果は <strong>FALSE</strong> になります。</p>



<p class="wp-block-paragraph">次の式を見てみましょう。</p>



<pre class="wp-block-code"><code>=XOR(10&gt;5, 4&gt;6)</code></pre>



<p class="wp-block-paragraph"><code>10>5</code> はTRUE、<code>4>6</code> はFALSEです。TRUEが1個（奇数個）なので、結果は <strong>TRUE</strong> になります。</p>



<h3 class="wp-block-heading"><span id="toc7">セル参照を使う方法</span></h3>



<p class="wp-block-paragraph">実務では、セルに入力された値を参照するケースが一般的です。</p>



<p class="wp-block-paragraph">たとえば、B2セルに営業部の達成フラグ（TRUE/FALSE）、C2セルに企画部の達成フラグが入っているとします。</p>



<pre class="wp-block-code"><code>=XOR(B2, C2)</code></pre>



<p class="wp-block-paragraph">この式は「どちらか一方の部署だけが目標を達成している」場合にTRUEを返します。</p>



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



<h3 class="wp-block-heading"><span id="toc9">IF関数と組み合わせて結果を表示する</span></h3>



<p class="wp-block-paragraph">XOR関数はTRUEかFALSEしか返さないので、実務では <a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a> と組み合わせて使うことが多いです。</p>



<p class="wp-block-paragraph">たとえば、午前シフトと午後シフトのどちらか一方だけに出勤しているかを判定する場面を考えてみましょう。</p>



<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>TRUE</td><td>FALSE</td></tr><tr><td>3</td><td>佐藤</td><td>TRUE</td><td>TRUE</td></tr><tr><td>4</td><td>鈴木</td><td>FALSE</td><td>FALSE</td></tr></tbody></table></figure>



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



<pre class="wp-block-code"><code>=IF(XOR(B2, C2), &quot;半日勤務&quot;, &quot;該当なし&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>社員名</th><th style="text-align:center">午前出勤</th><th style="text-align:center">午後出勤</th><th>判定結果</th></tr></thead><tbody><tr><td>田中</td><td style="text-align:center">TRUE</td><td style="text-align:center">FALSE</td><td>半日勤務</td></tr><tr><td>佐藤</td><td style="text-align:center">TRUE</td><td style="text-align:center">TRUE</td><td>該当なし</td></tr><tr><td>鈴木</td><td style="text-align:center">FALSE</td><td style="text-align:center">FALSE</td><td>該当なし</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">田中さんは午前だけ出勤しているので「半日勤務」と表示されます。佐藤さんは両方出勤、鈴木さんは両方欠勤なので「該当なし」です。</p>



<h3 class="wp-block-heading"><span id="toc10">3つ以上の条件を判定する</span></h3>



<p class="wp-block-paragraph">XOR関数は3つ以上の条件を指定することもできます。ただし、動作が少し変わるので注意してください。</p>



<p class="wp-block-paragraph">XOR関数は「TRUEの数が奇数個のときにTRUE」を返します。2つの条件なら直感的ですが、3つ以上になるとやや複雑です。</p>



<pre class="wp-block-code"><code>=XOR(TRUE, TRUE, TRUE)</code></pre>



<p class="wp-block-paragraph">TRUEが3個（奇数個）なので、結果は <strong>TRUE</strong> です。</p>



<pre class="wp-block-code"><code>=XOR(TRUE, TRUE, FALSE)</code></pre>



<p class="wp-block-paragraph">TRUEが2個（偶数個）なので、結果は <strong>FALSE</strong> です。</p>



<p class="wp-block-paragraph">3つ以上の条件で「どれか1つだけTRUE」を判定したい場合は、XOR関数ではなく <a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数</a> などで「TRUEの数が1」かどうかを確認する方法がより確実です。</p>



<h2 class="wp-block-heading"><span id="toc11">エラー対処とAND・OR関数との違い</span></h2>



<h3 class="wp-block-heading"><span id="toc12">#VALUE! エラーの原因と対処</span></h3>



<p class="wp-block-paragraph">指定した範囲に論理値（TRUE/FALSE）が1つも含まれない場合に <code>#VALUE!</code> エラーが発生します。</p>



<pre class="wp-block-code"><code>=XOR(&quot;あ&quot;, &quot;い&quot;)</code></pre>



<p class="wp-block-paragraph">文字列だけを指定するとエラーになります。引数に論理値や論理式を指定しているか確認してください。</p>



<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(XOR(A1, B1), &quot;判定不可&quot;)</code></pre>



<p class="wp-block-paragraph">また、XOR関数はExcel 2013で追加された関数です。それ以前のバージョンでは <code>#NAME?</code> エラーが表示されます。古いバージョンで同じ処理をしたい場合は、次の代替式を使ってください。</p>



<pre class="wp-block-code"><code>=OR(A1, B1) - AND(A1, B1)</code></pre>



<p class="wp-block-paragraph">これは「A1かB1の少なくとも一方がTRUE」かつ「両方TRUEではない」ことを判定するので、XOR関数と同じ結果になります。</p>



<h3 class="wp-block-heading"><span id="toc13">AND・OR関数との違い</span></h3>



<p class="wp-block-paragraph">XOR関数と混同しやすい <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>



<figure class="wp-block-table"><table><thead><tr><th style="text-align:center">条件1</th><th style="text-align:center">条件2</th><th style="text-align:center">AND関数</th><th style="text-align:center">OR関数</th><th style="text-align:center">XOR関数</th></tr></thead><tbody><tr><td style="text-align:center">TRUE</td><td style="text-align:center">TRUE</td><td style="text-align:center">TRUE</td><td style="text-align:center">TRUE</td><td style="text-align:center">FALSE</td></tr><tr><td style="text-align:center">TRUE</td><td style="text-align:center">FALSE</td><td style="text-align:center">FALSE</td><td style="text-align:center">TRUE</td><td style="text-align:center">TRUE</td></tr><tr><td style="text-align:center">FALSE</td><td style="text-align:center">TRUE</td><td style="text-align:center">FALSE</td><td style="text-align:center">TRUE</td><td style="text-align:center">TRUE</td></tr><tr><td style="text-align:center">FALSE</td><td style="text-align:center">FALSE</td><td style="text-align:center">FALSE</td><td style="text-align:center">FALSE</td><td style="text-align:center">FALSE</td></tr></tbody></table></figure>



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



<ul class="wp-block-list"><li><strong>AND関数</strong>: すべての条件がTRUEのときにTRUEにしたい</li><li><strong>OR関数</strong>: いずれかの条件がTRUEのときにTRUEにしたい</li><li><strong>XOR関数</strong>: どちらか一方だけがTRUEのときにTRUEにしたい</li></ul>



<p class="wp-block-paragraph">また、ビット単位の排他的論理和を計算したい場合は <a href="https://mashukabu.com/excel-function-howto-use-bitxor/">BITXOR関数</a> を使います。XOR関数は論理値の判定、BITXOR関数は数値のビット演算という違いがあります。</p>



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



<p class="wp-block-paragraph">XOR関数は「どちらか一方だけがTRUEかどうか」を判定できる論理関数です。</p>



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



<ul class="wp-block-list"><li>XOR関数は <strong>TRUEの数が奇数個のときにTRUE</strong> を返す</li><li>IF関数と組み合わせると「片方だけ該当」の条件分岐ができる</li><li>3つ以上の条件では「奇数個がTRUE」の判定になるので注意</li><li>AND関数（すべてTRUE）・OR関数（いずれかTRUE）との使い分けがポイント</li><li>Excel 2013以降で使用可能。古いバージョンでは代替式を活用</li></ul>



<p class="wp-block-paragraph">XOR関数は使用頻度こそ高くありませんが、「片方だけ」の判定が必要な場面では非常に便利です。AND関数やOR関数と合わせて覚えておくと、条件分岐のバリエーションがぐっと広がりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-xor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのBITXOR関数の使い方｜ビットXOR演算の基本と実用例</title>
		<link>https://mashukabu.com/excel-function-howto-use-bitxor/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-bitxor/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 02 Nov 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[BITXOR関数]]></category>
		<category><![CDATA[XOR]]></category>
		<category><![CDATA[ビット演算]]></category>
		<category><![CDATA[フラグ管理]]></category>
		<category><![CDATA[排他的論理和]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2934</guid>

					<description><![CDATA[ExcelのBITXOR関数の使い方を初心者向けに解説。XOR（排他的論理和）の真理値表からフラグの切り替え・差分検出・簡易暗号化までの実務活用3パターンを2進数の具体例で図解。#NUM!エラー対処やBITAND・BITORとの違いも網羅したガイドです。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで2つの数値の「違い」だけをビット単位で取り出したいけれど、どうすればいいかわからない。そんな場面はありませんか？</p>



<p class="wp-block-paragraph">ビット演算のなかでも「排他的論理和（XOR）」は少しとっつきにくいですよね。でも、フラグのON/OFF切り替えやデータの差分チェックなど、業務で便利な場面が意外と多いんです。</p>



<p class="wp-block-paragraph">この記事では、ExcelのBITXOR関数の使い方を基本から丁寧に解説します。構文や引数だけでなく、フラグトグル・差分検出・簡易暗号化の実務3パターンも紹介。エラー対処法まで網羅しているので、ぜひ最後まで読んでみてください。</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">ExcelのBITXOR関数とは？</a><ol><li><a href="#toc2" tabindex="0">XOR演算の真理値表</a></li><li><a href="#toc3" tabindex="0">利用できるバージョン</a></li></ol></li><li><a href="#toc4" tabindex="0">BITXOR関数の構文と引数</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の詳細</a></li></ol></li><li><a href="#toc7" tabindex="0">BITXOR関数の基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">数値を直接指定する方法</a></li><li><a href="#toc9" tabindex="0">セル参照で指定する方法</a></li><li><a href="#toc10" tabindex="0">同じ数値同士のXORは必ず0</a></li></ol></li><li><a href="#toc11" tabindex="0">BITXOR関数の実務活用例3パターン</a><ol><li><a href="#toc12" tabindex="0">活用例1: フラグのON/OFF切り替え（トグル）</a></li><li><a href="#toc13" tabindex="0">活用例2: 2つの値の差分チェック</a></li><li><a href="#toc14" tabindex="0">活用例3: 簡易的なデータの暗号化と復号</a></li></ol></li><li><a href="#toc15" tabindex="0">他のExcelビット演算関数との使い分け</a></li><li><a href="#toc16" tabindex="0">BITXOR関数のよくあるエラーと対処法</a><ol><li><a href="#toc17" tabindex="0">#NUM! エラー</a></li><li><a href="#toc18" tabindex="0">#VALUE! エラー</a></li></ol></li><li><a href="#toc19" tabindex="0">BITXOR関数のFAQ</a><ol><li><a href="#toc20" tabindex="0">Q1. BITXOR関数はどのExcelバージョンから使えますか？</a></li><li><a href="#toc21" tabindex="0">Q2. なぜ引数の上限が(2^48)-1なのですか？</a></li><li><a href="#toc22" tabindex="0">Q3. 3つ以上の数値をXORする方法はありますか？</a></li><li><a href="#toc23" tabindex="0">Q4. BITXOR関数の結果はなぜ10進数で表示されるのですか？</a></li><li><a href="#toc24" tabindex="0">Q5. フラグ管理以外でBITXOR関数が役立つ場面はありますか？</a></li></ol></li><li><a href="#toc25" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">BITXOR関数（読み方：ビット・エクスクルーシブ・オア）は、ビット単位のXOR演算（排他的論理和）を行う関数です。関数名は「Bitwise Exclusive OR」の略に由来します。</p>



<p class="wp-block-paragraph">「排他的論理和」とは、2つの数値を2進数に変換して、同じ位置のビットが<strong>異なる</strong>ときだけ1を返す計算のことです。AND演算が「両方1」で1を返すのに対して、XOR演算は「片方だけ1」のときに1を返します。</p>



<h3 class="wp-block-heading"><span id="toc2">XOR演算の真理値表</span></h3>



<p class="wp-block-paragraph">XOR演算のルールはとてもシンプルです。真理値表で確認しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>ビットA</th><th>ビットB</th><th>XOR結果</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>1</td><td>1</td></tr><tr><td>1</td><td>0</td><td>1</td></tr><tr><td>1</td><td>1</td><td>0</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">つまり「2つの値が違うところだけを抜き出す」演算ですね。</p>



<h3 class="wp-block-heading"><span id="toc3">利用できるバージョン</span></h3>



<p class="wp-block-paragraph">BITXOR関数はExcel 2013以降で利用できます。Microsoft 365、Excel for the web、Excel for Mac でも問題なく使えますよ。</p>



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



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



<pre class="wp-block-code"><code>=BITXOR(数値1, 数値2)</code></pre>



<p class="wp-block-paragraph">引数は2つとも必須です。省略するとエラーになります。</p>



<h3 class="wp-block-heading"><span id="toc6">引数の詳細</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>XOR演算を行う1つ目の数値（0以上の整数）</td></tr><tr><td>数値2</td><td>必須</td><td>XOR演算を行う2つ目の数値（0以上の整数）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">どちらの引数にも、0以上かつ(2^48)-1（= 281,474,976,710,655）以下の整数を指定します。この範囲を超えると#NUM!エラーになるので注意してくださいね。</p>



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



<p class="wp-block-paragraph">まずはシンプルな使い方から見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc8">数値を直接指定する方法</span></h3>



<p class="wp-block-paragraph">セルに次のように入力します。</p>



<pre class="wp-block-code"><code>=BITXOR(5, 12)</code></pre>



<p class="wp-block-paragraph">結果は <strong>9</strong> になります。</p>



<p class="wp-block-paragraph">この計算を2進数で確認してみましょう。</p>



<ul class="wp-block-list"><li>5 = 0101（2進数）</li><li>12 = 1100（2進数）</li><li>XOR = 1001（2進数）= 9（10進数）</li></ul>



<p class="wp-block-paragraph">ビットが異なる桁（1桁目と4桁目）だけが1になっているのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc9">セル参照で指定する方法</span></h3>



<p class="wp-block-paragraph">A1セルに「13」、B1セルに「11」が入っているとします。次のように書きます。</p>



<pre class="wp-block-code"><code>=BITXOR(A1, B1)</code></pre>



<p class="wp-block-paragraph">結果は <strong>6</strong> です。</p>



<ul class="wp-block-list"><li>13 = 1101（2進数）</li><li>11 = 1011（2進数）</li><li>XOR = 0110（2進数）= 6（10進数）</li></ul>



<p class="wp-block-paragraph">DEC2BIN関数（10進数を2進数の文字列に変換する関数）を使うと、途中の2進数変換も確認できますよ。</p>



<pre class="wp-block-code"><code>=DEC2BIN(A1)
'--- 結果: &quot;1101&quot; ---
=DEC2BIN(B1)
'--- 結果: &quot;1011&quot; ---</code></pre>



<h3 class="wp-block-heading"><span id="toc10">同じ数値同士のXORは必ず0</span></h3>



<p class="wp-block-paragraph">BITXOR関数には覚えておきたい性質があります。同じ数値同士でXOR演算を行うと、結果は必ず <strong>0</strong> になります。</p>



<pre class="wp-block-code"><code>=BITXOR(7, 7)</code></pre>



<p class="wp-block-paragraph">結果は <strong>0</strong> です。すべてのビットが同じなので、XOR結果はすべて0になるわけですね。この性質は、2つの値が一致しているかどうかの判定に使えます。</p>



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



<p class="wp-block-paragraph">「XOR演算って実務で使うの？」と思った方もいるかもしれません。実は、フラグの切り替えやデータ比較で活躍する場面があるんです。代表的な3パターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc12">活用例1: フラグのON/OFF切り替え（トグル）</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>1桁目</td><td>通知ON</td><td>1</td></tr><tr><td>2桁目</td><td>ダークモード</td><td>2</td></tr><tr><td>3桁目</td><td>自動保存</td><td>4</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">現在の設定値が「5」（= 0101）の場合、「通知ON」と「自動保存」がONの状態です。</p>



<p class="wp-block-paragraph">ここで「ダークモード（= 2）」のON/OFFを切り替えたいときは、次のようにBITXOR関数を使います。</p>



<pre class="wp-block-code"><code>=BITXOR(5, 2)</code></pre>



<p class="wp-block-paragraph">結果は <strong>7</strong>（= 0111）です。ダークモードがONに切り替わりました。</p>



<p class="wp-block-paragraph">もう一度同じ操作をすると、元に戻ります。</p>



<pre class="wp-block-code"><code>=BITXOR(7, 2)</code></pre>



<p class="wp-block-paragraph">結果は <strong>5</strong>（= 0101）。ダークモードがOFFに戻りましたね。</p>



<p class="wp-block-paragraph">XOR演算には「同じ値で2回XORすると元に戻る」性質があります。そのため、フラグの切り替えにぴったりです。チェックボックスの状態管理や、複数設定の一括反転にも応用できます。</p>



<h3 class="wp-block-heading"><span id="toc13">活用例2: 2つの値の差分チェック</span></h3>



<p class="wp-block-paragraph">BITXOR関数の結果が0なら、2つの値は完全に一致しています。この性質を使って、データの差分チェックができます。</p>



<pre class="wp-block-code"><code>=IF(BITXOR(A2, B2)=0, &quot;一致&quot;, &quot;不一致&quot;)</code></pre>



<p class="wp-block-paragraph">A列とB列の値を比較して、ビット単位で違いがあるかどうかを判定できますよ。</p>



<p class="wp-block-paragraph">さらに、BITXOR関数の結果を2進数に変換すると、どのビットが異なるかも一目でわかります。</p>



<pre class="wp-block-code"><code>=DEC2BIN(BITXOR(A2, B2))</code></pre>



<p class="wp-block-paragraph">結果のなかで「1」になっている桁が、値が異なる位置です。設定値の差分を可視化するときに便利な使い方ですね。</p>



<h3 class="wp-block-heading"><span id="toc14">活用例3: 簡易的なデータの暗号化と復号</span></h3>



<p class="wp-block-paragraph">XOR演算には「同じキーで2回XORすると元に戻る」という性質があります。この仕組みを使えば、簡易的なデータの暗号化ができます。</p>



<p class="wp-block-paragraph">たとえば、元の値が「42」でキーが「15」の場合を見てみましょう。</p>



<p class="wp-block-paragraph">暗号化:</p>



<pre class="wp-block-code"><code>=BITXOR(42, 15)</code></pre>



<p class="wp-block-paragraph">結果は <strong>37</strong> です。元の値「42」が「37」に変換されました。</p>



<p class="wp-block-paragraph">復号（同じキーで再度XOR）:</p>



<pre class="wp-block-code"><code>=BITXOR(37, 15)</code></pre>



<p class="wp-block-paragraph">結果は <strong>42</strong> です。元の値に戻りましたね。</p>



<p class="wp-block-paragraph">本格的な暗号化には専用のツールが必要ですが、社内で数値データをちょっと隠したいときに使えるテクニックです。なお、同じキーを使い回すと脆弱になるので、本格運用には向きません。</p>



<h2 class="wp-block-heading"><span id="toc15">他のExcelビット演算関数との使い分け</span></h2>



<p class="wp-block-paragraph">Excelにはビット演算関数がいくつか用意されています。場面に応じて使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>演算</th><th>説明</th><th>使いどころ</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitand/">BITAND</a></td><td>AND（論理積）</td><td>両方1のビットだけ残す</td><td>権限チェック・フラグ抽出</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitor/">BITOR</a></td><td>OR（論理和）</td><td>どちらか1のビットを残す</td><td>権限の付与・フラグ追加</td></tr><tr><td>BITXOR</td><td>XOR（排他的論理和）</td><td>異なるビットだけ残す</td><td>フラグの切り替え・差分検出</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitlshift/">BITLSHIFT</a></td><td>左シフト</td><td>ビットを左にずらす</td><td>値の2倍・4倍計算</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitrshift/">BITRSHIFT</a></td><td>右シフト</td><td>ビットを右にずらす</td><td>値の半分計算</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">BITXOR関数は「フラグのON/OFFを切り替える」ときに使います。一方、特定のフラグが立っているか確認するならBITAND関数、フラグを追加するならBITOR関数が適しています。</p>



<p class="wp-block-paragraph">3つを組み合わせると、ビットフラグによる権限管理や設定管理を柔軟に実装できますよ。</p>



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



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



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



<p class="wp-block-paragraph">次のいずれかに該当すると#NUM!エラーになります。</p>



<ul class="wp-block-list"><li>引数に負の数を指定した場合（例: <code>=BITXOR(-1, 5)</code>）</li><li>引数に(2^48)-1を超える値を指定した場合</li><li>引数に小数を指定した場合（例: <code>=BITXOR(2.5, 1)</code>）</li></ul>



<p class="wp-block-paragraph"><strong>対処法</strong>: 引数には0以上の整数を指定してください。小数が入る可能性があるなら、INT関数（小数点以下を切り捨てる関数）で整数に変換しましょう。</p>



<pre class="wp-block-code"><code>=BITXOR(INT(A1), INT(B1))</code></pre>



<p class="wp-block-paragraph">範囲外の値が混ざる可能性があるなら、IF関数で事前にチェックする方法もあります。</p>



<pre class="wp-block-code"><code>=IF(AND(A1&gt;=0, A1&lt;2^48), BITXOR(A1, B1), &quot;範囲外&quot;)</code></pre>



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



<p class="wp-block-paragraph">引数に文字列を指定すると#VALUE!エラーになります。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: セル参照の場合は、参照先が数値であることを確認しましょう。VALUE関数（文字列を数値に変換する関数）で変換する方法もあります。</p>



<pre class="wp-block-code"><code>=BITXOR(VALUE(A1), VALUE(B1))</code></pre>



<p class="wp-block-paragraph">エラーを抑制してデフォルト値を返したいときは、IFERROR関数と組み合わせます。</p>



<pre class="wp-block-code"><code>=IFERROR(BITXOR(A1, B1), 0)</code></pre>



<h2 class="wp-block-heading"><span id="toc19">BITXOR関数のFAQ</span></h2>



<h3 class="wp-block-heading"><span id="toc20">Q1. BITXOR関数はどのExcelバージョンから使えますか？</span></h3>



<p class="wp-block-paragraph">Excel 2013以降で利用できます。Microsoft 365、Excel for the web、Excel for Mac でも問題なく使えます。Excel 2010 以前では使えないので、互換性が必要な環境では注意してください。</p>



<h3 class="wp-block-heading"><span id="toc21">Q2. なぜ引数の上限が(2^48)-1なのですか？</span></h3>



<p class="wp-block-paragraph">ExcelのBITXOR関数は48ビット符号なし整数の範囲で動作するためです。これは約281兆という大きな値なので、日常的な業務で上限に達することはほとんどありません。</p>



<h3 class="wp-block-heading"><span id="toc22">Q3. 3つ以上の数値をXORする方法はありますか？</span></h3>



<p class="wp-block-paragraph">BITXOR関数は引数を2つしか受け取れません。3つ以上の値をXORするには、ネストして使います。例えば3つの値A1・B1・C1をXORするなら、<code>=BITXOR(BITXOR(A1, B1), C1)</code> と書きます。XOR演算は結合律が成り立つので、組み合わせる順番を変えても結果は同じです。</p>



<h3 class="wp-block-heading"><span id="toc23">Q4. BITXOR関数の結果はなぜ10進数で表示されるのですか？</span></h3>



<p class="wp-block-paragraph">ExcelのBITXOR関数は、戻り値を必ず10進数で返す仕様です。2進数として確認したい場合は、DEC2BIN関数で変換しましょう。<code>=DEC2BIN(BITXOR(5, 12))</code> と書けば、結果「9」が2進数表記「1001」で表示されます。</p>



<h3 class="wp-block-heading"><span id="toc24">Q5. フラグ管理以外でBITXOR関数が役立つ場面はありますか？</span></h3>



<p class="wp-block-paragraph">データの差分検出や簡易的なチェックサム計算で使えます。例えば、複数の数値をすべてXORした結果を保持しておけば、後から「元の値が変更されていないか」を簡易的に検証できます。本格的なエラー検出にはCRCなどの専用アルゴリズムが必要ですが、簡易チェック程度なら十分に機能します。</p>



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



<p class="wp-block-paragraph">この記事では、ExcelのBITXOR関数の使い方を解説しました。</p>



<ul class="wp-block-list"><li>BITXOR関数は2つの数値のビット単位のXOR演算（排他的論理和）を行う関数</li><li>引数は2つとも必須で、0以上かつ(2^48)-1以下の整数を指定する</li><li>「同じ値で2回XORすると元に戻る」性質があり、フラグの切り替えに便利</li><li>フラグトグル・差分検出・簡易暗号化の3パターンで実務にも活用できる</li><li><a href="https://mashukabu.com/excel-function-howto-use-bitand/">BITAND</a>や<a href="https://mashukabu.com/excel-function-howto-use-bitor/">BITOR</a>など、他のビット演算関数と組み合わせるとさらに便利</li><li>#NUM!エラーは0以上の整数、#VALUE!エラーは数値型で対処する</li></ul>



<p class="wp-block-paragraph">ビット演算は一見むずかしそうに見えますが、BITXOR関数を使えばExcelで手軽に計算できます。まずは基本のフラグ切り替えから試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-bitxor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
