<?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>BITXOR &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/bitxor/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:25:46 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>BITXOR &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのBITXOR関数の使い方｜ビットXORでフラグの切り替え・差分検出</title>
		<link>https://mashukabu.com/spreadsheet-bitxor-function/</link>
					<comments>https://mashukabu.com/spreadsheet-bitxor-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 14:26:26 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[BITXOR]]></category>
		<category><![CDATA[エンジニアリング関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[トグル]]></category>
		<category><![CDATA[ビット演算]]></category>
		<category><![CDATA[フラグ管理]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6315</guid>

					<description><![CDATA[GoogleスプレッドシートのBITXOR関数の使い方を解説。2つの数値のビット単位XOR演算で、フラグの切り替え（トグル）や差分検出、権限の付け外しまで実例付きで紹介します。エラー対処法やBITAND・BITORとの使い分けも網羅。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「権限のON/OFFをワンタッチで切り替えたい&#8230;」「2つのフラグ値の違いだけを取り出したい&#8230;」</p>



<p class="wp-block-paragraph">スプレッドシートで権限管理シートやフラグ管理表を運用していると、「今ある権限を反転させたい」「先月と今月で何が変わったかだけ知りたい」といった場面が出てきますよね。IF関数の入れ子で書くと数式が長くなり、メンテナンスが大変になりがちです。</p>



<p class="wp-block-paragraph">そんなときに便利なのがGoogleスプレッドシートのBITXOR関数です。2つの数値をビット単位でXOR演算して、ビットの「切り替え」と「違い」を一発で取り出せますよ。</p>



<p class="wp-block-paragraph">しかも結果は数値型で返るので、IF関数やARRAYFORMULAと組み合わせて一覧を一括処理できます。Excelとも互換性があるため、ファイルをやり取りする現場でも安心して使えますね。</p>



<p class="wp-block-paragraph">この記事では、スプレッドシートのBITXOR関数の基本からフラグのトグル・差分検出・パリティ計算まで解説します。BITAND・BITORとの使い分けやエラー対処法にも触れていきますよ。</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">BITXOR関数とは？</a></li><li><a href="#toc2" tabindex="0">BITXOR関数の書き方（構文と引数）</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">ビットXOR演算のイメージ表</a></li><li><a href="#toc6" tabindex="0">BITXOR関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">数値を直接指定する</a></li><li><a href="#toc8" tabindex="0">セル参照で指定する</a></li><li><a href="#toc9" tabindex="0">ARRAYFORMULAで一括XORする</a></li></ol></li><li><a href="#toc10" tabindex="0">実務活用例1：権限フラグのON/OFF切り替え（トグル）</a><ol><li><a href="#toc11" tabindex="0">権限ビットの設計例</a></li><li><a href="#toc12" tabindex="0">単一権限のトグル</a></li><li><a href="#toc13" tabindex="0">複数権限を一気にトグル</a></li><li><a href="#toc14" tabindex="0">ARRAYFORMULAで一覧に一括トグル</a></li></ol></li><li><a href="#toc15" tabindex="0">実務活用例2：2つのフラグ値の差分を検出する</a><ol><li><a href="#toc16" tabindex="0">月次の権限変更を抽出する</a></li><li><a href="#toc17" tabindex="0">変化したビットの詳細を確認する</a></li></ol></li><li><a href="#toc18" tabindex="0">実務活用例3：パリティビット・チェックサムの計算</a><ol><li><a href="#toc19" tabindex="0">REDUCEで複数値のXORを取る</a></li><li><a href="#toc20" tabindex="0">入出庫データの差分チェック</a></li></ol></li><li><a href="#toc21" tabindex="0">BITXOR関数とExcelの互換性</a></li><li><a href="#toc22" tabindex="0">エラーの種類と対処法</a><ol><li><a href="#toc23" tabindex="0">#NUM! エラー</a></li><li><a href="#toc24" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc25" tabindex="0">#N/A エラー</a></li><li><a href="#toc26" tabindex="0">エラー対処：IFERRORで包む</a></li></ol></li><li><a href="#toc27" tabindex="0">他のビット演算関数との使い分け</a></li><li><a href="#toc28" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">スプレッドシートのBITXOR関数（ビットエックスオア関数）は、2つの数値をビット単位でXOR演算する関数です。結果は10進数の数値で返ります。</p>



<p class="wp-block-paragraph">「ビット単位のXOR演算」とは、2つの数値を2進数に変換し、同じ位置のビットを比べる計算のことです。両者のビットが異なるとき（一方が1で他方が0）だけ1になります。同じビット（両方0または両方1）の場合は0になりますよ。</p>



<p class="wp-block-paragraph">たとえば、5と6のビットXORを求める場合を見てみましょう。</p>



<ul class="wp-block-list"><li>5 を2進数にすると → <code>0101</code></li><li>6 を2進数にすると → <code>0110</code></li><li>XOR演算の結果 → <code>0011</code>（= 10進数の3）</li></ul>



<p class="wp-block-paragraph">「違うところだけ1になる」と覚えると分かりやすいですね。</p>



<p class="wp-block-paragraph">GoogleスプレッドシートのBITXOR関数は、ExcelのBITXOR関数と同じ構文で使えます。フラグのトグル操作や差分抽出など、「変化」を扱う業務で活躍してくれますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc3">基本構文</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="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>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以上かつ<code>(2^48)-1</code>（= 281,474,976,710,655）以下の整数を指定します。この範囲を超えると<code>#NUM!</code>エラーになるので注意してくださいね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>BITXOR関数はExcelとの互換性があるため、ExcelファイルをGoogleスプレッドシートで開いてもそのまま動作します。逆もまた然りです。バージョン違いで挙動が変わる心配はいりませんよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">ビットXOR演算のイメージ表</span></h2>



<p class="wp-block-paragraph">BITXOR関数の動きをイメージしやすくするため、よく使われる組み合わせを表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>値1</th><th>値2</th><th>値1（2進）</th><th>値2（2進）</th><th>XOR結果（2進）</th><th>結果（10進）</th></tr></thead><tbody><tr><td>5</td><td>6</td><td>0101</td><td>0110</td><td>0011</td><td>3</td></tr><tr><td>5</td><td>10</td><td>0101</td><td>1010</td><td>1111</td><td>15</td></tr><tr><td>7</td><td>5</td><td>0111</td><td>0101</td><td>0010</td><td>2</td></tr><tr><td>12</td><td>10</td><td>1100</td><td>1010</td><td>0110</td><td>6</td></tr><tr><td>5</td><td>5</td><td>0101</td><td>0101</td><td>0000</td><td>0</td></tr><tr><td>0</td><td>9</td><td>0000</td><td>1001</td><td>1001</td><td>9</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「同じビットなら0、違うビットなら1」というルールが見えてきますね。同じ値同士のXORが必ず0になる点もポイントです。</p>



<p class="wp-block-paragraph">このルールから、BITXORには次の2つの大きな特徴が生まれます。</p>



<ul class="wp-block-list"><li><strong>トグル</strong>: 同じ値で2回XORすると元に戻る（A XOR B XOR B = A）</li><li><strong>差分検出</strong>: 結果が0なら2つの値は等しく、結果のビットが立っている位置が違いを示す</li></ul>



<p class="wp-block-paragraph">この特徴を活かすと、フラグの切り替えや差分抽出がシンプルな数式で書けますよ。</p>



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



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



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



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



<p class="wp-block-paragraph">結果は「3」です。先ほどの表のとおり、<code>0101</code>と<code>0110</code>のXOR演算で<code>0011</code>（= 3）が返ります。</p>



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



<p class="wp-block-paragraph">結果は「0」です。同じ値同士のXORは必ず0になります。これが「2回XORで元に戻る」という性質の出発点ですよ。</p>



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



<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>



<p class="wp-block-paragraph">実務では、セルに入っているフラグ値同士をXORする場面が多いです。A2に「12」、B2に「10」が入っている場合は次のように書きます。</p>



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



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



<p class="wp-block-paragraph">結果は「6」です。<code>1100</code>と<code>1010</code>のXOR演算で<code>0110</code>（= 6）が返ります。</p>



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



<p class="wp-block-paragraph">途中の2進数表現を確認したいときは、<a href="https://mashukabu.com/spreadsheet-dec2bin-function/">DEC2BIN関数</a>を組み合わせると分かりやすいですよ。</p>



<pre class="wp-block-code"><code>=DEC2BIN(A2)  → &quot;1100&quot;
=DEC2BIN(B2)  → &quot;1010&quot;</code></pre>



<h3 class="wp-block-heading"><span id="toc9">ARRAYFORMULAで一括XORする</span></h3>



<p class="wp-block-paragraph">スプレッドシートならではの強みが、ARRAYFORMULA関数との組み合わせです。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(BITXOR(A2:A10, B2:B10))</code></pre>



<p class="wp-block-paragraph">A列とB列に並んだ値を、1つの数式でまとめてXORできます。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列: 先月の権限</th><th>B列: 今月の権限</th><th>結果（BITXOR）</th></tr></thead><tbody><tr><td>1</td><td>3</td><td>2</td></tr><tr><td>5</td><td>5</td><td>0</td></tr><tr><td>4</td><td>6</td><td>2</td></tr><tr><td>0</td><td>8</td><td>8</td></tr><tr><td>7</td><td>1</td><td>6</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">結果が0の行は「変化なし」、それ以外の行は「変わったビットだけ」が浮かび上がってきますよ。差分チェックがこれだけで完結するのは便利ですね。</p>



<h2 class="wp-block-heading"><span id="toc10">実務活用例1：権限フラグのON/OFF切り替え（トグル）</span></h2>



<p class="wp-block-paragraph">BITXOR関数のもっとも代表的な活用が、ビットフラグで管理された権限のトグル操作です。</p>



<h3 class="wp-block-heading"><span id="toc11">権限ビットの設計例</span></h3>



<p class="wp-block-paragraph">たとえば、社内システムの権限を以下のようにビットフラグで管理しているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>ビット位置</th><th>権限</th><th>値（10進）</th><th>値（2進）</th></tr></thead><tbody><tr><td>1桁目</td><td>閲覧</td><td>1</td><td>0001</td></tr><tr><td>2桁目</td><td>編集</td><td>2</td><td>0010</td></tr><tr><td>3桁目</td><td>削除</td><td>4</td><td>0100</td></tr><tr><td>4桁目</td><td>管理</td><td>8</td><td>1000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ユーザーの現在の権限値が「3」（閲覧＋編集）だとして、ここで「編集（= 2）」を切り替えたいケースを考えます。</p>



<h3 class="wp-block-heading"><span id="toc12">単一権限のトグル</span></h3>



<p class="wp-block-paragraph">「編集権限を持っていればOFFに、持っていなければONに切り替える」には、次の数式を使います。</p>



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



<p class="wp-block-paragraph">A2に「3」（閲覧＋編集）が入っていれば、結果は「1」（閲覧のみ）です。<code>0011</code>と<code>0010</code>のXORで<code>0001</code>になり、編集権限だけがOFFになりますね。</p>



<p class="wp-block-paragraph">A2に「1」（閲覧のみ）が入っていれば、結果は「3」（閲覧＋編集）になります。同じ数式で、ON/OFFを自動で切り替えできるのがBITXORの真骨頂ですよ。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_result_bitxor-toggle.png" alt="04 result bitxor toggle" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>BITORで「付与」、BITANDで「チェック」、BITXORで「トグル」と覚えておくと、ビット演算3兄弟の役割分担がスッキリします。トグルは「2回かければ元に戻る」性質を活かした処理ですよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc13">複数権限を一気にトグル</span></h3>



<p class="wp-block-paragraph">「閲覧と削除を同時に切り替えたい」場合は、対象ビットの合計値（1+4 = 5）をマスク値として渡します。</p>



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



<p class="wp-block-paragraph">A2が「3」（閲覧＋編集）なら、結果は「6」（編集＋削除）になります。閲覧がOFFになり、削除がONになる動きですね。</p>



<h3 class="wp-block-heading"><span id="toc14">ARRAYFORMULAで一覧に一括トグル</span></h3>



<p class="wp-block-paragraph">ユーザー一覧の全員に対して「編集権限（= 2）を一括トグル」したい場合は、次のように書きます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(BITXOR(B2:B100, 2))</code></pre>



<p class="wp-block-paragraph">B列に100人分の権限値が並んでいても、1つの数式で全員の編集権限を反転できますよ。月次のキャンペーンで「全員に一時的に編集権限を付与し、終わったら元に戻す」といった運用にも応用できますね。</p>



<h2 class="wp-block-heading"><span id="toc15">実務活用例2：2つのフラグ値の差分を検出する</span></h2>



<p class="wp-block-paragraph">BITXORは「2つの値で違うビットだけ取り出す」性質があるため、差分検出にぴったりです。</p>



<h3 class="wp-block-heading"><span id="toc16">月次の権限変更を抽出する</span></h3>



<p class="wp-block-paragraph">先月と今月の権限値を比べて、「どの権限が変わったか」を一覧化したい場面を考えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>社員</th><th>先月の権限（A列）</th><th>今月の権限（B列）</th><th>差分（BITXOR）</th><th>変化の意味</th></tr></thead><tbody><tr><td>田中</td><td>3</td><td>7</td><td>4</td><td>削除権限が変化（追加）</td></tr><tr><td>鈴木</td><td>5</td><td>5</td><td>0</td><td>変化なし</td></tr><tr><td>佐藤</td><td>7</td><td>3</td><td>4</td><td>削除権限が変化（剥奪）</td></tr><tr><td>山田</td><td>1</td><td>11</td><td>10</td><td>編集と管理が変化</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">C列に次の数式を入れるだけで差分が出ます。</p>



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



<p class="wp-block-paragraph">結果が0なら「変化なし」、それ以外なら「変わったビットの合計値」が出てきますよ。さらにIF関数と組み合わせれば、変化の有無だけを表示することもできます。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-bitxor-function/05_result_bitxor-diff.png/">_images/spreadsheet-bitxor-function/05_result_bitxor-diff.png</a></p>



<pre class="wp-block-code"><code>=IF(BITXOR(A2, B2)=0, &quot;変化なし&quot;, &quot;要確認&quot;)</code></pre>



<p class="wp-block-paragraph">監査やコンプライアンスチェックで「先月から権限が変わったユーザーだけ抽出したい」というニーズに、シンプルに応えられますね。</p>



<h3 class="wp-block-heading"><span id="toc17">変化したビットの詳細を確認する</span></h3>



<p class="wp-block-paragraph">差分の数値が「6」と出たとき、「どの権限が変わったのか」を確認するには2進数化が便利です。</p>



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



<p class="wp-block-paragraph">第2引数の「4」は表示桁数の指定です。結果が「0110」と出れば、「2桁目（編集）と3桁目（削除）が変わった」ことが一目で分かりますよ。</p>



<h2 class="wp-block-heading"><span id="toc18">実務活用例3：パリティビット・チェックサムの計算</span></h2>



<p class="wp-block-paragraph">BITXORの「同じ値で2回XORすると元に戻る」性質は、データの誤り検出にも使われています。複数の数値を全部XORした結果を「パリティ」や「チェックサム」と呼び、簡易的なデータ整合性チェックに使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc19">REDUCEで複数値のXORを取る</span></h3>



<p class="wp-block-paragraph">A2:A10に並んだ数値の全XORを求めるには、REDUCE関数（範囲を畳み込む関数）と組み合わせます。</p>



<pre class="wp-block-code"><code>=REDUCE(0, A2:A10, LAMBDA(acc, val, BITXOR(acc, val)))</code></pre>



<p class="wp-block-paragraph">初期値0から始めて、A2〜A10の各セルとBITXORを取り続け、最終的にすべての値のXOR結果を返します。</p>



<figure class="wp-block-table"><table><thead><tr><th>入力値（A2:A6）</th><th>XORの累積結果</th></tr></thead><tbody><tr><td>5</td><td>5</td></tr><tr><td>3</td><td>6</td></tr><tr><td>7</td><td>1</td></tr><tr><td>3</td><td>2</td></tr><tr><td>5</td><td>7</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">途中で「3」と「5」が2回ずつ登場していますが、最終的に残るのは「1回しか登場しなかった7」だけ。これがXORの面白い性質ですね。重複データの中から「ペアにならなかった1個」を見つけるテクニックとして使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc20">入出庫データの差分チェック</span></h3>



<p class="wp-block-paragraph">入庫リストと出庫リストの数値を全部XORして「結果が0なら全件ペア成立、0以外なら片側だけ存在する数値が残る」という整合性チェックにも応用できます。</p>



<pre class="wp-block-code"><code>=BITXOR(
  REDUCE(0, 入庫!A2:A100, LAMBDA(a,v, BITXOR(a,v))),
  REDUCE(0, 出庫!A2:A100, LAMBDA(a,v, BITXOR(a,v)))
)</code></pre>



<p class="wp-block-paragraph">完全な照合にはなりませんが、軽量な「1次チェック」としては十分実用的ですね。</p>



<h2 class="wp-block-heading"><span id="toc21">BITXOR関数とExcelの互換性</span></h2>



<p class="wp-block-paragraph">GoogleスプレッドシートのBITXOR関数は、ExcelのBITXOR関数と仕様が同じです。構文・引数・有効範囲・エラー条件のすべてが一致しています。</p>



<p class="wp-block-paragraph">ExcelファイルをGoogleスプレッドシートで開いた場合でも、BITXOR関数はそのまま動作します。逆にスプレッドシートで作成した数式をExcelで開いても問題ありませんよ。</p>



<p class="wp-block-paragraph">ExcelのBITXOR関数はExcel 2013以降で利用できます。古いバージョンのExcelファイルを扱うときは、互換性に注意してくださいね。</p>



<h2 class="wp-block-heading"><span id="toc22">エラーの種類と対処法</span></h2>



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



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



<ul class="wp-block-list"><li>引数に負の数を指定した</li><li>引数が <code>(2^48)-1</code>（= 281,474,976,710,655）を超えている</li><li>引数に小数を指定した</li></ul>



<pre class="wp-block-code"><code>=BITXOR(-1, 2)        → #NUM!（負の数は不可）
=BITXOR(2.5, 2)       → #NUM!（小数は不可）</code></pre>



<p class="wp-block-paragraph">対処法は、INT関数で整数化してから渡すことです。</p>



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



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



<p class="wp-block-paragraph">引数に文字列を指定すると <code>#VALUE!</code> エラーになります。MID関数などで取り出した文字列をそのまま渡すと発生しがちです。</p>



<p class="wp-block-paragraph">対処法はVALUE関数（文字列を数値に変換する関数）で数値化することです。</p>



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



<h3 class="wp-block-heading"><span id="toc25">#N/A エラー</span></h3>



<p class="wp-block-paragraph">引数が不足している場合は <code>#N/A</code> エラーになります。BITXORは引数2つが必須なので、片方しか渡していないと発生しますよ。</p>



<pre class="wp-block-code"><code>=BITXOR(5)            → #N/A（引数不足）</code></pre>



<h3 class="wp-block-heading"><span id="toc26">エラー対処：IFERRORで包む</span></h3>



<p class="wp-block-paragraph">入力データが信頼できない場合は、IFERRORで包んでおくと安心です。</p>



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



<p class="wp-block-paragraph">エラー時に0を返すようにしておけば、後続の集計が止まらずに済みますよ。</p>



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



<p class="wp-block-paragraph">スプレッドシートにはBITXOR以外にもビット演算関数が用意されています。場面に応じて使い分けましょう。</p>



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



<p class="wp-block-paragraph">BITXORは「変化させたい」「違いを取り出したい」とき、BITORは「足し合わせたい」とき、BITANDは「特定のフラグが立っているか確認する」ときに使います。詳しくは<a href="https://mashukabu.com/spreadsheet-bitand-function/">BITAND関数の記事</a>や<a href="https://mashukabu.com/spreadsheet-bitor-function/">BITOR関数の記事</a>も合わせて読むと、ビット演算3兄弟の役割が立体的に理解できますよ。</p>



<p class="wp-block-paragraph">「付与にBITOR・確認にBITAND・切り替えにBITXOR」という役割分担を覚えておくと、業務で迷わず使い分けられますね。</p>



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



<p class="wp-block-paragraph">GoogleスプレッドシートのBITXOR関数は、2つの数値をビット単位でXOR演算する関数です。フラグの切り替え（トグル）や差分検出といった「変化」を扱う処理で大きな威力を発揮しますよ。</p>



<ul class="wp-block-list"><li>構文は <code>=BITXOR(値1, 値2)</code>、引数は0以上の整数</li><li>「同じビットは0、違うビットは1」になるルールで差分が抽出できる</li><li>同じ値で2回XORすると元に戻る性質を使って、ON/OFFをトグル操作できる</li><li>IF・ARRAYFORMULA・REDUCEと組み合わせて一覧を一括処理できる</li><li>月次の権限変更チェックや簡易チェックサムにも応用可能</li><li>ExcelのBITXOR関数と完全互換（Excel 2013以降）</li></ul>



<p class="wp-block-paragraph">ビット演算は最初こそ難しく見えますが、BITXOR関数を使えば権限のトグルや差分検出がシンプルな数式で書けるようになります。まずは「<code>BITXOR(現在の権限, 切り替えたい権限)</code>」のパターンから試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-bitxor-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
