<?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/%e3%83%93%e3%83%83%e3%83%88%e6%bc%94%e7%ae%97/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Wed, 29 Apr 2026 12:05:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</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>スプレッドシートのBITRSHIFT関数の使い方｜ビット右シフトで2分の1計算とフラグ抽出</title>
		<link>https://mashukabu.com/spreadsheet-bitrshift-function/</link>
					<comments>https://mashukabu.com/spreadsheet-bitrshift-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 14:26:53 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[BITRSHIFT]]></category>
		<category><![CDATA[エンジニアリング関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[ビット演算]]></category>
		<category><![CDATA[フラグ管理]]></category>
		<category><![CDATA[右シフト]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6327</guid>

					<description><![CDATA[GoogleスプレッドシートのBITRSHIFT関数の使い方を解説。ビットを右にシフトして2分の1・4分の1・8分の1を高速計算する基本から、データ容量のバイト→KB→MB換算・パッキング値の分解・権限フラグの読み取りまで実例付きで紹介します。エラー対処法やBITLSHIFT・BITAND・BITORとの使い分けも網羅。]]></description>
										<content:encoded><![CDATA[
<p>「バイト単位のファイルサイズをKBやMBに換算したい&#8230;」「パッキングされた数値からRGB各色を取り出したい&#8230;」</p>



<p>スプレッドシートでデータ容量の換算表を作ったり、ビットフラグから個別の値を読み取ったりしていると、「2のN乗で割る計算をシンプルに書きたい」と感じる場面が出てきますよね。<code>=INT(値/POWER(2, n))</code> でも書けますが、ビット演算の文脈ではもう少し読みやすい方法がほしくなります。</p>



<p>そんなときに便利なのがGoogleスプレッドシートのBITRSHIFT関数です。指定した数値のビットを右にずらすだけで、「値を半分・4分の1・8分の1にする」「上位ビットを抽出する」といった処理を一発でこなせますよ。</p>



<p>しかも結果は数値型で返るので、BITANDやBITORと組み合わせてパッキングされた値の分解や容量換算をスマートに書けます。Excelとも互換性があるため、ファイルをやり取りする現場でも安心して使えますね。</p>



<p>この記事では、スプレッドシートのBITRSHIFT関数の基本から2分の1系列の計算・データ容量の単位換算・RGB値のアンパックまで解説します。BITLSHIFT・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">スプレッドシートのBITRSHIFT関数とは？</a></li><li><a href="#toc2" tabindex="0">BITRSHIFT関数の書き方（構文と引数）</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></li><li><a href="#toc6" tabindex="0">BITRSHIFT関数の基本的な使い方</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で一括シフトする</a></li></ol></li><li><a href="#toc10" tabindex="0">実務活用例1：データ容量のバイト→KB→MB→GB換算</a><ol><li><a href="#toc11" tabindex="0">容量換算は「10ビット右シフト = ÷1024」</a></li><li><a href="#toc12" tabindex="0">バイト数を一覧で換算する</a></li><li><a href="#toc13" tabindex="0">BITLSHIFTとセットで覚える</a></li></ol></li><li><a href="#toc14" tabindex="0">実務活用例2：パッキングされたRGB値を分解する</a><ol><li><a href="#toc15" tabindex="0">10進数のカラーコードからRGB各値を取り出す</a></li><li><a href="#toc16" tabindex="0">「右シフト → BITANDでマスク」の定石パターン</a></li></ol></li><li><a href="#toc17" tabindex="0">実務活用例3：ビットフラグから権限の有無を効率的に判定する</a><ol><li><a href="#toc18" tabindex="0">権限フラグの設計例</a></li><li><a href="#toc19" tabindex="0">BITRSHIFTで特定ビットを判定する</a></li><li><a href="#toc20" tabindex="0">一覧表で権限マトリクスを作る</a></li></ol></li><li><a href="#toc21" tabindex="0">BITRSHIFTとBITLSHIFTの関係</a></li><li><a href="#toc22" tabindex="0">BITRSHIFT関数とExcelの互換性</a></li><li><a href="#toc23" tabindex="0">エラーの種類と対処法</a><ol><li><a href="#toc24" tabindex="0">#NUM! エラー</a></li><li><a href="#toc25" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc26" tabindex="0">#N/A エラー</a></li><li><a href="#toc27" tabindex="0">エラー対処：IFERRORで包む</a></li></ol></li><li><a href="#toc28" tabindex="0">他のビット演算関数との使い分け</a></li><li><a href="#toc29" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>スプレッドシートのBITRSHIFT関数（ビットライトシフト関数）は、指定した数値のビットを右方向に指定した桁数だけずらす関数です。結果は10進数の数値で返ります。</p>



<p>「ビットを右にずらす」とは、数値を2進数に変換して各ビットを右に移動させる計算のことです。右にあふれたビットは消え、空いた左側には0が入ります。1桁右にずらすたびに値が半分になるのが大きな特徴ですよ。</p>



<p>たとえば、20を2桁右にシフトする場合を見てみましょう。</p>



<ul class="wp-block-list"><li>20 を2進数にすると → <code>00010100</code></li><li>2桁右にシフト → <code>00000101</code>（= 10進数の5）</li></ul>



<p>20 ÷ 2 ÷ 2 = 5 という計算になっていますね。「右に1桁シフト = 2分の1」と覚えると感覚がつかみやすいですよ。</p>



<p>GoogleスプレッドシートのBITRSHIFT関数は、ExcelのBITRSHIFT関数と同じ構文で使えます。データ容量の換算やパッキングされた値の分解など、ビット演算を扱う業務で活躍する関数ですね。</p>



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



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



<pre class="wp-block-code"><code>=BITRSHIFT(値, シフト量)</code></pre>



<p>引数は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>値</td><td>必須</td><td>右シフトする対象の数値（0以上の整数）</td></tr><tr><td>シフト量</td><td>必須</td><td>右にずらすビット数（-53〜53の整数）</td></tr></tbody></table></figure>



<p>第1引数の「値」には、0以上かつ<code>(2^48)-1</code>（= 281,474,976,710,655）以下の整数を指定します。</p>



<p>第2引数の「シフト量」は通常は正の整数を指定して右シフトしますが、負の値を指定すると左シフト（BITLSHIFTと同じ動き）になります。シフト量の絶対値は53以下である必要がありますよ。</p>



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



<h2 class="wp-block-heading"><span id="toc5">ビット右シフトのイメージ表</span></h2>



<p>BITRSHIFT関数の動きをイメージしやすいように、よく使う組み合わせを表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>シフト量</th><th>値（2進）</th><th>シフト後（2進）</th><th>結果（10進）</th><th>倍率</th></tr></thead><tbody><tr><td>8</td><td>0</td><td>1000</td><td>1000</td><td>8</td><td>×1</td></tr><tr><td>8</td><td>1</td><td>1000</td><td>0100</td><td>4</td><td>×1/2</td></tr><tr><td>8</td><td>2</td><td>1000</td><td>0010</td><td>2</td><td>×1/4</td></tr><tr><td>8</td><td>3</td><td>1000</td><td>0001</td><td>1</td><td>×1/8</td></tr><tr><td>12</td><td>2</td><td>1100</td><td>0011</td><td>3</td><td>×1/4</td></tr><tr><td>40</td><td>3</td><td>101000</td><td>000101</td><td>5</td><td>×1/8</td></tr><tr><td>112</td><td>4</td><td>1110000</td><td>0000111</td><td>7</td><td>×1/16</td></tr></tbody></table></figure>



<p>「シフト量が1増えるたびに結果が半分になる」というルールが見えてきますね。<code>BITRSHIFT(値, n)</code> は <code>INT(値 / 2^n)</code> と同じ結果を返します。</p>



<p>このルールから、BITRSHIFTには次の2つの代表的な使い道が生まれます。</p>



<ul class="wp-block-list"><li><strong>2のN乗で割る高速計算</strong>: バイト→KB→MBのような単位換算を1024ずつ割る代わりにシフト量で表現できる</li><li><strong>ビット位置の抽出</strong>: パッキングされた値から「特定ビット位置以降」を取り出せる（RGB値の分解など）</li></ul>



<p>この特徴を活かすと、容量換算表やパッキングデータの読み取りがぐっと楽になりますよ。</p>



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



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



<p>もっともシンプルな使い方から見ていきましょう。</p>



<pre class="wp-block-code"><code>=BITRSHIFT(20, 2)</code></pre>



<p>結果は「5」です。先ほどの説明のとおり、20を2桁右にシフトすると <code>00000101</code>（= 5）になります。20 ÷ 4 = 5 と同じ結果ですね。</p>



<pre class="wp-block-code"><code>=BITRSHIFT(8, 3)</code></pre>



<p>結果は「1」です。8を3桁右にシフトすると <code>0001</code>（= 1）になります。8 ÷ 8 = 1 と同じ意味ですよ。</p>



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



<p>実務では、セルに入っている値をシフトする場面が多いです。A2に「12」、B2に「2」が入っている場合は次のように書きます。</p>



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



<p>結果は「3」です。12を2桁右にシフトすると <code>0011</code>（= 3）になります。12 ÷ 4 = 3 と同じですね。</p>



<p>途中の2進数表現を確認したいときは、<a href="https://mashukabu.com/spreadsheet-dec2bin-function/">DEC2BIN関数</a>（10進数を2進数の文字列に変換する関数）を組み合わせると分かりやすいですよ。</p>



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



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



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



<pre class="wp-block-code"><code>=ARRAYFORMULA(BITRSHIFT(1024, A2:A10))</code></pre>



<p>A列に並んだシフト量に応じて、1024を順番に右シフトした結果を一括で取得できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列: シフト量</th><th>結果（BITRSHIFT）</th></tr></thead><tbody><tr><td>0</td><td>1024</td></tr><tr><td>1</td><td>512</td></tr><tr><td>2</td><td>256</td></tr><tr><td>3</td><td>128</td></tr><tr><td>4</td><td>64</td></tr><tr><td>5</td><td>32</td></tr><tr><td>6</td><td>16</td></tr><tr><td>7</td><td>8</td></tr></tbody></table></figure>



<p>2の累乗で割っていく一覧が、1つの数式で完成しますよ。半減期テーブルや段階的な値の減少をシミュレーションしたいときにも便利ですね。</p>



<h2 class="wp-block-heading"><span id="toc10">実務活用例1：データ容量のバイト→KB→MB→GB換算</span></h2>



<p>BITRSHIFT関数のもっとも代表的な活用が、データ容量の単位換算です。</p>



<h3 class="wp-block-heading"><span id="toc11">容量換算は「10ビット右シフト = ÷1024」</span></h3>



<p>データ容量は基本的に2の10乗（= 1024）ごとに単位が変わります。1KB = 1024バイト、1MB = 1024KB、1GB = 1024MB のように、各単位は前の単位を1024で割った値ですよ。</p>



<p>これを BITRSHIFT で表すと、「10ビット右シフト = 1024で割る」になります。</p>



<pre class="wp-block-code"><code>=BITRSHIFT(A2, 10)  → KB単位（バイトを1024で割る）
=BITRSHIFT(A2, 20)  → MB単位（バイトを1024×1024で割る）
=BITRSHIFT(A2, 30)  → GB単位（バイトを1024×1024×1024で割る）
=BITRSHIFT(A2, 40)  → TB単位（バイトを1024×1024×1024×1024で割る）</code></pre>



<p>シフト量を10ずつ増やすだけで、KB→MB→GB→TBの段階が自動で出てきますね。換算表を作るときに便利な書き方です。</p>



<h3 class="wp-block-heading"><span id="toc12">バイト数を一覧で換算する</span></h3>



<p>A2に「2147483648」（= 2GB相当のバイト数）が入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>意味</th></tr></thead><tbody><tr><td><code>=BITRSHIFT(A2, 10)</code></td><td>2097152</td><td>KB</td></tr><tr><td><code>=BITRSHIFT(A2, 20)</code></td><td>2048</td><td>MB</td></tr><tr><td><code>=BITRSHIFT(A2, 30)</code></td><td>2</td><td>GB</td></tr></tbody></table></figure>



<p>シンプルに「÷1024」「÷1024×1024」を表現できますね。<code>POWER(2, 10)</code> を使った書き方より直感的で、容量計算の意図が読み手に伝わりやすいですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>BITRSHIFTは整数除算（小数点以下を切り捨てる割り算）と同じ動きをします。<code>BITRSHIFT(1025, 10)</code> の結果は「1」になり、小数点以下は保持されません。小数まで欲しい場合は <code>=A2 / 1024</code> のように通常の割り算を使ってくださいね。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc13">BITLSHIFTとセットで覚える</span></h3>



<p>逆方向の単位換算（KB→MB→GB ではなく KB→バイト など）には、BITLSHIFT関数（左シフト関数）を使います。</p>



<pre class="wp-block-code"><code>=BITLSHIFT(1, 10)  → 1024（1KB = 1024B）
=BITLSHIFT(1, 20)  → 1048576（1MB = 1024KB）</code></pre>



<p>「単位を上げるときはBITRSHIFT、単位を下げるときはBITLSHIFT」とペアで覚えておくと混乱しませんね。詳しくは<a href="https://mashukabu.com/spreadsheet-bitlshift-function/">BITLSHIFT関数の記事</a>も合わせて読んでみてください。</p>



<h2 class="wp-block-heading"><span id="toc14">実務活用例2：パッキングされたRGB値を分解する</span></h2>



<p>BITRSHIFTを使うと、複数の小さな数値を1つの大きな数値にパッキングしたデータから、各値を取り出せます。色コード（RGB値）や日付の年月日コードなど、「複数の情報が1つの値に詰め込まれている」場面で活躍しますよ。</p>



<h3 class="wp-block-heading"><span id="toc15">10進数のカラーコードからRGB各値を取り出す</span></h3>



<p>色を表すRGB値は、それぞれ赤・緑・青を0〜255の数値で持ちます。HTMLでいう <code>#FF8040</code> のような色は、10進数では「16744512」という1つの整数で表せますよ。</p>



<p>この値からRGB各値を取り出すには、BITRSHIFTとBITANDを組み合わせます。</p>



<pre class="wp-block-code"><code>=BITRSHIFT(A2, 16)              → 赤の値（上位8ビットを取り出す）
=BITAND(BITRSHIFT(A2, 8), 255)  → 緑の値（中位8ビットを取り出す）
=BITAND(A2, 255)                 → 青の値（下位8ビットを取り出す）</code></pre>



<p>A2に「16744512」が入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>ステップ</th><th>数式</th><th>結果</th></tr></thead><tbody><tr><td>16ビット右シフトで赤を最下位に持ってくる</td><td><code>BITRSHIFT(16744512, 16)</code></td><td>255</td></tr><tr><td>8ビット右シフト後にBITANDで下位8ビットだけ残す</td><td><code>BITAND(BITRSHIFT(16744512, 8), 255)</code></td><td>128</td></tr><tr><td>BITANDで下位8ビットだけ残す</td><td><code>BITAND(16744512, 255)</code></td><td>64</td></tr></tbody></table></figure>



<p>結果は赤=255、緑=128、青=64で、<code>#FF8040</code> 相当の色情報が取り出せましたね。1セルに保存した色コードから、シェーディングやスタイル設定に使える各色値を分離できますよ。</p>



<h3 class="wp-block-heading"><span id="toc16">「右シフト → BITANDでマスク」の定石パターン</span></h3>



<p>パッキングされたデータから特定ビット位置の値を取り出す手順は、次の2ステップで覚えると応用しやすいですよ。</p>



<ol class="wp-block-list"><li><strong>BITRSHIFTで取り出したい位置を一番下に持ってくる</strong>（<code>BITRSHIFT(値, シフト量)</code>）</li><li><strong>BITANDで必要なビット数だけマスクする</strong>（<code>BITAND(結果, 2^ビット数 - 1)</code>）</li></ol>



<p>たとえば「中位8ビットだけ取り出したい」なら、8ビット右シフトしてからBITAND(255)（= 2^8 &#8211; 1）でマスクする、という流れですね。詳しい仕組みは<a href="https://mashukabu.com/spreadsheet-bitand-function/">BITAND関数の記事</a>も合わせて確認してみてくださいね。</p>



<h2 class="wp-block-heading"><span id="toc17">実務活用例3：ビットフラグから権限の有無を効率的に判定する</span></h2>



<p>権限管理をビットフラグで行っている場合、BITRSHIFTを使うと「nビット目が立っているか？」を1つの数式で判定できます。</p>



<h3 class="wp-block-heading"><span id="toc18">権限フラグの設計例</span></h3>



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



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



<p>ユーザーAの権限値が「11」（= 0001 + 0010 + 1000 = 閲覧＋編集＋管理）だったとします。</p>



<h3 class="wp-block-heading"><span id="toc19">BITRSHIFTで特定ビットを判定する</span></h3>



<p>「nビット目が立っているか？」を調べるには、対象の値をnビット右シフトしてから、最下位ビットだけを残します。</p>



<pre class="wp-block-code"><code>=BITAND(BITRSHIFT(A2, 0), 1)  → 0桁目（閲覧）が立っているか
=BITAND(BITRSHIFT(A2, 1), 1)  → 1桁目（編集）が立っているか
=BITAND(BITRSHIFT(A2, 2), 1)  → 2桁目（削除）が立っているか
=BITAND(BITRSHIFT(A2, 3), 1)  → 3桁目（管理）が立っているか</code></pre>



<p>A2が「11」（2進数で <code>1011</code>）の場合、結果は順に「1, 1, 0, 1」となります。閲覧・編集・管理が「1」（権限あり）、削除だけが「0」（権限なし）と判定できますね。</p>



<h3 class="wp-block-heading"><span id="toc20">一覧表で権限マトリクスを作る</span></h3>



<p>ARRAYFORMULAと組み合わせると、複数ユーザー × 複数権限のマトリクスを一気に作れます。</p>



<figure class="wp-block-table"><table><thead><tr><th>ユーザー</th><th>権限値</th><th>閲覧</th><th>編集</th><th>削除</th><th>管理</th></tr></thead><tbody><tr><td>A</td><td>11</td><td>1</td><td>1</td><td>0</td><td>1</td></tr><tr><td>B</td><td>7</td><td>1</td><td>1</td><td>1</td><td>0</td></tr><tr><td>C</td><td>8</td><td>0</td><td>0</td><td>0</td><td>1</td></tr></tbody></table></figure>



<p>各ユーザーの権限値を「BITRSHIFT → BITAND(1)」で各ビットに分解するだけで、権限マトリクスが完成しますよ。<code>=IF(BITAND(BITRSHIFT($B2, ビット位置), 1)=1, "○", "×")</code> のように○×に変換しても見やすいですね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>BITRSHIFTで「位置を取り出す」、BITAND/BITORで「合成・抽出」、BITLSHIFTで「位置を作る」、BITXORで「トグル」と覚えておくと、ビット演算4兄弟の役割分担がスッキリします。BITRSHIFTは「読み取り・分解」のフェーズで活躍しますよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc21">BITRSHIFTとBITLSHIFTの関係</span></h2>



<p>BITRSHIFT（右シフト）とBITLSHIFT（左シフト）は、シフト方向が逆のペア関数です。第2引数の符号で動きが切り替わります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>動作</th><th>値の変化</th><th>同等の演算</th></tr></thead><tbody><tr><td><code>BITRSHIFT(値, n)</code></td><td>右にnビットシフト</td><td>n回ぶん半分</td><td><code>INT(値 / 2^n)</code></td></tr><tr><td><code>BITLSHIFT(値, n)</code></td><td>左にnビットシフト</td><td>n回ぶん2倍</td><td><code>値 × 2^n</code></td></tr></tbody></table></figure>



<p>実は、BITRSHIFTの第2引数に負の値を渡すと、BITLSHIFTと同じ結果になります。</p>



<pre class="wp-block-code"><code>=BITRSHIFT(5, -3)   → 40（5を3ビット左シフト）
=BITLSHIFT(5, 3)    → 40（同じ結果）</code></pre>



<p>ただし、可読性のためには「右シフトはBITRSHIFT、左シフトはBITLSHIFT」と分けて書く方がおすすめですよ。読み手が数式の意図をすぐに把握できますね。</p>



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



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



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



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



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



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



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



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



<pre class="wp-block-code"><code>=BITRSHIFT(-1, 2)             → #NUM!（負の数は不可）
=BITRSHIFT(2.5, 2)            → #NUM!（小数は不可）
=BITRSHIFT(1024, 60)          → #NUM!（シフト量が大きすぎる）</code></pre>



<p>対処法は、INT関数（小数を切り捨てて整数化する関数）で値を整数化し、シフト量も適切な範囲に収めることです。</p>



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



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



<p>引数に文字列を指定すると <code>#VALUE!</code> エラーになります。テキストとして取り込んだ数値をそのまま渡すと発生しがちです。</p>



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



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



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



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



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



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



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



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



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



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



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



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



<p>BITRSHIFTは「パッキングされたデータから特定の位置を読み取りたい」「2のN乗で割る計算をしたい」ときに使います。設計したフラグを実際に運用する場面では、BITAND（<a href="https://mashukabu.com/spreadsheet-bitand-function/">BITAND関数の記事</a>）でチェック、BITOR（<a href="https://mashukabu.com/spreadsheet-bitor-function/">BITOR関数の記事</a>）で合成、BITXOR（<a href="https://mashukabu.com/spreadsheet-bitxor-function/">BITXOR関数の記事</a>）でトグルという役割分担になりますね。</p>



<p>「パッキングはBITLSHIFT、アンパックはBITRSHIFT、運用はAND/OR/XOR」という流れを覚えておくと、業務でビット演算を使うときの全体像が見えやすくなりますよ。</p>



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



<p>GoogleスプレッドシートのBITRSHIFT関数は、指定した数値のビットを右方向にずらす関数です。データ容量の単位換算やパッキングされた値の分解、ビットフラグの読み取りなど、ビット演算の「読み取り」面で活躍してくれますよ。</p>



<ul class="wp-block-list"><li>構文は <code>=BITRSHIFT(値, シフト量)</code>、両引数とも必須</li><li>「右に1桁シフト = 2分の1」のルールで値が減っていく</li><li><code>BITRSHIFT(値, 10)</code> でバイト→KB、<code>BITRSHIFT(値, 20)</code> でバイト→MB の換算ができる</li><li>ARRAYFORMULAと組み合わせて2のN乗で割る一覧を一発で作れる</li><li>「BITRSHIFT → BITAND」の組み合わせでパッキングされたRGB値を分解できる</li><li>権限フラグから「nビット目が立っているか」を効率的に判定できる</li><li>ExcelのBITRSHIFT関数と完全互換（Excel 2013以降）</li></ul>



<p>ビット演算は最初こそ難しく見えますが、BITRSHIFT関数を使えば容量換算やパッキングデータの分解がシンプルな数式で書けるようになります。まずは「<code>BITRSHIFT(バイト数, 10)</code>」の容量換算パターンから試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-bitrshift-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのBITAND関数の使い方｜ビットANDで権限・フラグ管理</title>
		<link>https://mashukabu.com/spreadsheet-bitand-function/</link>
					<comments>https://mashukabu.com/spreadsheet-bitand-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 14:26:49 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[BITAND]]></category>
		<category><![CDATA[エンジニアリング関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[ビット演算]]></category>
		<category><![CDATA[フラグ管理]]></category>
		<category><![CDATA[権限管理]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6325</guid>

					<description><![CDATA[GoogleスプレッドシートのBITAND関数の使い方を解説。2つの数値のビット単位AND演算で、アクセス権限チェック・複数フラグ判定・Linuxパーミッションのrwx分解まで実例付きで紹介します。エラー対処法やBITOR・BITXORとの使い分けも網羅。]]></description>
										<content:encoded><![CDATA[
<p>「ユーザーIDごとに付与された権限フラグの数値から、編集権限を持っている人だけを抽出したい&#8230;」</p>



<p>スプレッドシートでアカウント管理台帳やシステム権限の一覧を扱っていると、ビットフラグで管理された権限値を1件ずつ手で判定するのは大変ですよね。フラグの数が増えると、IF文を何重にも重ねた数式は保守も難しくなります。</p>



<p>そんなときに便利なのがGoogleスプレッドシートのBITAND関数です。2つの数値をビット単位でAND演算して、特定のビットが立っているかを一発で判定できますよ。</p>



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



<p>この記事では、スプレッドシートのBITAND関数の基本から権限チェック・複数フラグ判定・Linuxパーミッション解析まで解説します。BITOR・BITXORとの使い分けやエラー対処法にも触れていきますよ。</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">BITAND関数とは？</a></li><li><a href="#toc2" tabindex="0">BITAND関数の書き方（構文と引数）</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">ビットAND演算のイメージ表</a></li><li><a href="#toc6" tabindex="0">BITAND関数の基本的な使い方</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で一括判定する</a></li></ol></li><li><a href="#toc10" tabindex="0">実務活用例1：アクセス権限のチェック</a><ol><li><a href="#toc11" tabindex="0">権限ビットの設計例</a></li><li><a href="#toc12" tabindex="0">単一権限のチェック</a></li><li><a href="#toc13" tabindex="0">ARRAYFORMULAで一覧を一括判定</a></li></ol></li><li><a href="#toc14" tabindex="0">実務活用例2：複数フラグの一括チェック</a><ol><li><a href="#toc15" tabindex="0">商品属性のフラグ設計例</a></li><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：Linuxパーミッションのrwx分解</a><ol><li><a href="#toc19" tabindex="0">rwxフラグの設計</a></li><li><a href="#toc20" tabindex="0">オーナー権限を分解する</a></li><li><a href="#toc21" tabindex="0">rwx文字列で見やすく整形する</a></li></ol></li><li><a href="#toc22" tabindex="0">BITAND関数とExcelの互換性</a></li><li><a href="#toc23" tabindex="0">エラーの種類と対処法</a><ol><li><a href="#toc24" tabindex="0">#NUM! エラー</a></li><li><a href="#toc25" tabindex="0">#VALUE! エラー</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">BITAND関数とは？</span></h2>



<p>BITAND関数（ビットアンド関数）は、2つの数値をビット単位でAND演算（論理積）し、結果を10進数の数値で返す関数です。</p>



<p>「ビット単位のAND演算」とは、2つの数値を2進数に変換して、同じ位置のビットがどちらも1のときだけ1を返す計算のことです。</p>



<p>たとえば、5と12のビットANDを求める場合を見てみましょう。</p>



<ul class="wp-block-list"><li>5 を2進数にすると → <code>0101</code></li><li>12 を2進数にすると → <code>1100</code></li><li>AND演算の結果 → <code>0100</code>（= 10進数の4）</li></ul>



<p>両方のビットが1になっている桁だけが残るイメージですね。</p>



<p>GoogleスプレッドシートのBITAND関数は、Excelと同じ構文で使えます。アクセス権限のチェックやフラグ管理など、業務の自動化で活躍してくれますよ。</p>



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



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



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



<p>引数は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>AND演算を行う1つ目の数値（0以上の整数）</td></tr><tr><td>値2</td><td>必須</td><td>AND演算を行う2つ目の数値（0以上の整数）</td></tr></tbody></table></figure>



<p>どちらの引数にも、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>Excel側で動かしていた数式と互換性があるため、ExcelファイルをGoogleスプレッドシートで開いた場合でもそのまま動作します。逆にスプレッドシートで作った数式をExcelで開いても問題ありませんよ。</p></blockquote>



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



<p>BITAND関数の動きをイメージしやすくするため、よく使われる組み合わせを表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>値1</th><th>値2</th><th>値1（2進）</th><th>値2（2進）</th><th>AND結果（2進）</th><th>結果（10進）</th></tr></thead><tbody><tr><td>5</td><td>12</td><td>0101</td><td>1100</td><td>0100</td><td>4</td></tr><tr><td>13</td><td>11</td><td>1101</td><td>1011</td><td>1001</td><td>9</td></tr><tr><td>7</td><td>2</td><td>0111</td><td>0010</td><td>0010</td><td>2</td></tr><tr><td>7</td><td>5</td><td>0111</td><td>0101</td><td>0101</td><td>5</td></tr><tr><td>15</td><td>10</td><td>1111</td><td>1010</td><td>1010</td><td>10</td></tr><tr><td>8</td><td>1</td><td>1000</td><td>0001</td><td>0000</td><td>0</td></tr></tbody></table></figure>



<p>「両方とも1の桁だけが残る」というルールが見えてきますね。値2を<strong>マスク</strong>として使うと、値1の中から特定のビットだけを抜き出せるという考え方が、フラグ管理の基本になりますよ。</p>



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



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



<p>もっともシンプルな使い方から見ていきましょう。</p>



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



<p>結果は「4」です。先ほどの表のとおり、<code>0101</code>と<code>1100</code>のAND演算で<code>0100</code>（= 4）が返ります。</p>



<pre class="wp-block-code"><code>=BITAND(13, 11)</code></pre>



<p>結果は「9」です。<code>1101</code>と<code>1011</code>のAND演算で<code>1001</code>（= 9）になります。</p>



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



<p>実務では、セルに入っている権限値を判定する場面が多いです。A2に「7」、B2に「2」が入っている場合は次のように書きます。</p>



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



<p>結果は「2」です。<code>0111</code>と<code>0010</code>のAND演算で<code>0010</code>（= 2）が返ります。</p>



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



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



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



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



<pre class="wp-block-code"><code>=ARRAYFORMULA(BITAND(A2:A10, 2))</code></pre>



<p>A2からA10までの権限値に対して、「編集権限（= 2）」のビットが立っているかを1つの数式で一気に判定できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列: 権限値</th><th>B列: 数式</th><th>結果</th></tr></thead><tbody><tr><td>7</td><td>=ARRAYFORMULA(BITAND(A2:A6, 2))</td><td>2</td></tr><tr><td>5</td><td>↓</td><td>0</td></tr><tr><td>6</td><td>↓</td><td>2</td></tr><tr><td>3</td><td>↓</td><td>2</td></tr><tr><td>4</td><td>↓</td><td>0</td></tr></tbody></table></figure>



<p>結果が0より大きければ編集権限ありと判定できますよ。</p>



<h2 class="wp-block-heading"><span id="toc10">実務活用例1：アクセス権限のチェック</span></h2>



<p>BITAND関数の代表的な活用が、ビットフラグで管理されたアクセス権限のチェックです。</p>



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



<p>たとえば、社内システムの権限を以下のようにビットフラグで管理しているとします。</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>ユーザーの権限値が「7」の場合、2進数では<code>0111</code>です。閲覧・編集・削除の3つの権限を持っていることになりますね。</p>



<h3 class="wp-block-heading"><span id="toc12">単一権限のチェック</span></h3>



<p>「編集権限（= 2）を持っているか」を判定するには、次の数式を使います。</p>



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



<p>A2に「7」が入っていれば、結果は「2」です。0より大きいので、編集権限があると判定できます。A2に「5」（= <code>0101</code>、閲覧と削除のみ）が入っていれば、結果は「0」となり編集権限なしと判定できますよ。</p>



<p>IF関数と組み合わせると、もっと分かりやすくなります。</p>



<pre class="wp-block-code"><code>=IF(BITAND(A2, 2) &gt; 0, &quot;編集可&quot;, &quot;編集不可&quot;)</code></pre>



<p>A2セルにユーザーの権限値を入れておけば、編集権限の有無を自動判定できますよ。</p>



<h3 class="wp-block-heading"><span id="toc13">ARRAYFORMULAで一覧を一括判定</span></h3>



<p>ユーザー一覧から編集可能なメンバーだけを抽出したい場合は、次のように書きます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF(BITAND(B2:B100, 2) &gt; 0, &quot;編集可&quot;, &quot;編集不可&quot;))</code></pre>



<p>B列に100人分の権限値が並んでいても、1つの数式で全員の編集権限を判定できますよ。</p>



<h2 class="wp-block-heading"><span id="toc14">実務活用例2：複数フラグの一括チェック</span></h2>



<p>「セール対象かつ送料無料」のように、複数のフラグが同時に立っているかを判定する場面でもBITAND関数が活躍します。</p>



<h3 class="wp-block-heading"><span id="toc15">商品属性のフラグ設計例</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>ビット</th><th>属性</th><th>値（10進）</th></tr></thead><tbody><tr><td>1桁目</td><td>セール対象</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><tr><td>4桁目</td><td>限定品</td><td>8</td></tr></tbody></table></figure>



<p>商品コード「5」（= <code>0101</code>）はセール対象かつ新商品、商品コード「11」（= <code>1011</code>）はセール対象・送料無料・限定品です。</p>



<h3 class="wp-block-heading"><span id="toc16">「すべて満たす」の判定</span></h3>



<p>「セール対象かつ送料無料」（= 値1+値2 = 3、<code>0011</code>）の商品を抽出するには、次のように書きます。</p>



<pre class="wp-block-code"><code>=IF(BITAND(A2, 3) = 3, &quot;対象&quot;, &quot;対象外&quot;)</code></pre>



<p>BITAND関数の結果がチェック値（= 3）と完全一致したら、両方のフラグが立っていると判定できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列: 商品コード</th><th>2進表現</th><th>BITAND(A2,3)</th><th>判定</th></tr></thead><tbody><tr><td>3</td><td>0011</td><td>3</td><td>対象</td></tr><tr><td>5</td><td>0101</td><td>1</td><td>対象外（送料無料なし）</td></tr><tr><td>7</td><td>0111</td><td>3</td><td>対象</td></tr><tr><td>11</td><td>1011</td><td>3</td><td>対象</td></tr><tr><td>12</td><td>1100</td><td>0</td><td>対象外</td></tr></tbody></table></figure>



<p>「<code>= 3</code>」と等価判定する点がポイントです。「<code>> 0</code>」だとどちらか片方でもヒットしてしまうので、用途に応じて使い分けてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc17">「いずれかを満たす」の判定</span></h3>



<p>逆に「セールか送料無料、どちらか一方でも当てはまる」を判定したい場合は、結果を0と比較します。</p>



<pre class="wp-block-code"><code>=IF(BITAND(A2, 3) &gt; 0, &quot;対象&quot;, &quot;対象外&quot;)</code></pre>



<p>こちらは0より大きければOKなので、片方のフラグだけ立っていてもヒットしますよ。</p>



<h2 class="wp-block-heading"><span id="toc18">実務活用例3：Linuxパーミッションのrwx分解</span></h2>



<p>サーバー管理の現場では、<code>755</code>や<code>644</code>といった3桁のパーミッション値を<strong>読・書・実行</strong>の権限に分解したい場面があります。BITAND関数を使うと、各権限の有無を1桁ずつ判定できますよ。</p>



<h3 class="wp-block-heading"><span id="toc19">rwxフラグの設計</span></h3>



<p>Linuxパーミッションの1桁は、3つのビットフラグの合計です。</p>



<figure class="wp-block-table"><table><thead><tr><th>ビット</th><th>権限</th><th>値（10進）</th></tr></thead><tbody><tr><td>1桁目</td><td>実行（x）</td><td>1</td></tr><tr><td>2桁目</td><td>書き込み（w）</td><td>2</td></tr><tr><td>3桁目</td><td>読み込み（r）</td><td>4</td></tr></tbody></table></figure>



<p>たとえば「7」は4+2+1で読・書・実行すべて、「5」は4+1で読・実行のみを意味します。</p>



<h3 class="wp-block-heading"><span id="toc20">オーナー権限を分解する</span></h3>



<p>A2に「755」が入っている場合、左端の「7」（オーナー権限）を取り出してBITANDで分解します。</p>



<pre class="wp-block-code"><code>=BITAND(VALUE(MID(A2,1,1)), 4)   ← 読み込み権限の有無
=BITAND(VALUE(MID(A2,1,1)), 2)   ← 書き込み権限の有無
=BITAND(VALUE(MID(A2,1,1)), 1)   ← 実行権限の有無</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>意味</th></tr></thead><tbody><tr><td>=BITAND(VALUE(MID(&#8220;755&#8221;,1,1)), 4)</td><td>4</td><td>オーナー読み込みあり</td></tr><tr><td>=BITAND(VALUE(MID(&#8220;755&#8221;,1,1)), 2)</td><td>2</td><td>オーナー書き込みあり</td></tr><tr><td>=BITAND(VALUE(MID(&#8220;755&#8221;,1,1)), 1)</td><td>1</td><td>オーナー実行あり</td></tr></tbody></table></figure>



<p>MID関数で取り出した値は文字列なので、VALUE関数で数値に変換してからBITANDに渡している点がポイントです。</p>



<h3 class="wp-block-heading"><span id="toc21">rwx文字列で見やすく整形する</span></h3>



<p>if文でrwx文字列を作ると、サーバー設定資料がぐっと見やすくなります。</p>



<pre class="wp-block-code"><code>=IF(BITAND(VALUE(MID(A2,1,1)),4)&gt;0,&quot;r&quot;,&quot;-&quot;) &amp;
 IF(BITAND(VALUE(MID(A2,1,1)),2)&gt;0,&quot;w&quot;,&quot;-&quot;) &amp;
 IF(BITAND(VALUE(MID(A2,1,1)),1)&gt;0,&quot;x&quot;,&quot;-&quot;)</code></pre>



<p>A2が「755」なら「rwx」、「644」なら「rw-」が返ります。Linuxの<code>ls -l</code>コマンドの出力イメージで権限を可視化できますね。</p>



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



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



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



<p>Excel側の使い方を確認したい場合は、<a href="https://mashukabu.com/excel-function-howto-use-bitand/">ExcelのBITAND関数</a>の記事も参考にしてくださいね。</p>



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



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



<p>次のいずれかに当てはまると <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>=BITAND(-1, 2)        → #NUM!（負の数は不可）
=BITAND(2.5, 2)       → #NUM!（小数は不可）</code></pre>



<p>対処法は、INT関数で整数化してから渡すことです。</p>



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



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



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



<p>対処法はVALUE関数で数値化することです。</p>



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



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



<p>権限値の入力が信頼できない場合は、IFERRORで包んでおくと安心です。</p>



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



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



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



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>演算</th><th>説明</th><th>使いどころ</th></tr></thead><tbody><tr><td><strong>BITAND</strong></td><td>AND（論理積）</td><td>両方1のビットだけ残す</td><td>権限チェック・フラグ抽出</td></tr><tr><td>BITOR</td><td>OR（論理和）</td><td>どちらか1のビットを残す</td><td>権限の付与・フラグ追加</td></tr><tr><td>BITXOR</td><td>XOR（排他的論理和）</td><td>異なるビットだけ残す</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>BITANDは「特定のビットが立っているか確認する」ときに使います。フラグを追加したいときはBITOR、フラグのON/OFFを切り替えたいときはBITXORが便利ですよ。</p>



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



<p>GoogleスプレッドシートのBITAND関数は、2つの数値をビット単位でAND演算する関数です。フラグ管理や権限チェックの自動化で大きな威力を発揮しますよ。</p>



<ul class="wp-block-list"><li>構文は <code>=BITAND(値1, 値2)</code>、引数は0以上の整数</li><li>マスク値とのANDで「特定のビットが立っているか」を判定できる</li><li>IF・ARRAYFORMULAと組み合わせて一覧を一括判定できる</li><li>「すべて満たす」は <code>= マスク値</code>、「いずれか満たす」は <code>> 0</code> で判定</li><li>Linuxパーミッションのrwx分解にも活用できる</li><li>ExcelのBITAND関数と完全互換</li></ul>



<p>ビット演算は一見難しそうに見えますが、BITAND関数を使えば権限チェックやフラグ判定がシンプルな数式で書けるようになります。まずは「<code>BITAND(権限値, チェックしたいビット) > 0</code>」のパターンから試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-bitand-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのBITLSHIFT関数の使い方｜ビット左シフトで2倍計算とフラグ位置生成</title>
		<link>https://mashukabu.com/spreadsheet-bitlshift-function/</link>
					<comments>https://mashukabu.com/spreadsheet-bitlshift-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 14:26:39 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[BITLSHIFT]]></category>
		<category><![CDATA[エンジニアリング関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[ビット演算]]></category>
		<category><![CDATA[フラグ管理]]></category>
		<category><![CDATA[左シフト]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6319</guid>

					<description><![CDATA[GoogleスプレッドシートのBITLSHIFT関数の使い方を解説。ビットを左にシフトして2倍・4倍・8倍を高速計算する基本から、権限フラグの位置生成・データパッキング・色コードの組み立てまで実例付きで紹介します。エラー対処法やBITRSHIFT・BITAND・BITORとの使い分けも網羅。]]></description>
										<content:encoded><![CDATA[
<p>「権限フラグの値（1, 2, 4, 8, 16…）を順番に自動生成したい&#8230;」「2の累乗をシンプルな数式で出したい&#8230;」</p>



<p>スプレッドシートで権限管理台帳やビットフラグの設計をしていると、「2の累乗を並べた一覧がほしい」「特定のビット位置に1を立てたい」といった場面が出てきますよね。<code>=POWER(2, n)</code> でも書けますが、ビット演算の文脈ではもう少し直感的な書き方がほしくなります。</p>



<p>そんなときに便利なのがGoogleスプレッドシートのBITLSHIFT関数です。指定した数値のビットを左にずらすだけで、「値を2倍・4倍・8倍する」「特定の位置にフラグを立てる」といった処理を一発でこなせますよ。</p>



<p>しかも結果は数値型で返るので、BITANDやBITORと組み合わせてフラグ管理の仕組みをスマートに組み立てられます。Excelとも互換性があるため、ファイルをやり取りする現場でも安心して使えますね。</p>



<p>この記事では、スプレッドシートのBITLSHIFT関数の基本から2倍系列の生成・フラグ位置の動的生成・データパッキングまで解説します。BITRSHIFT・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-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">BITLSHIFT関数とは？</a></li><li><a href="#toc2" tabindex="0">BITLSHIFT関数の書き方（構文と引数）</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></li><li><a href="#toc6" tabindex="0">BITLSHIFT関数の基本的な使い方</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で一括シフトする</a></li></ol></li><li><a href="#toc10" tabindex="0">実務活用例1：権限フラグの位置を動的に生成する</a><ol><li><a href="#toc11" tabindex="0">権限ビットの設計例</a></li><li><a href="#toc12" tabindex="0">ビット位置から値を生成する</a></li><li><a href="#toc13" tabindex="0">BITORと組み合わせて権限を合成する</a></li></ol></li><li><a href="#toc14" tabindex="0">実務活用例2：2倍系列の単位変換表を作る</a><ol><li><a href="#toc15" tabindex="0">データ容量の単位変換</a></li><li><a href="#toc16" tabindex="0">バイト数からKB・MB・GBを表示する</a></li></ol></li><li><a href="#toc17" tabindex="0">実務活用例3：複数の値を1つの数値にパッキングする</a><ol><li><a href="#toc18" tabindex="0">RGB値を1つの数値にまとめる</a></li><li><a href="#toc19" tabindex="0">パッキングした値を取り出す</a></li></ol></li><li><a href="#toc20" tabindex="0">BITLSHIFTとBITRSHIFTの関係</a></li><li><a href="#toc21" tabindex="0">BITLSHIFT関数と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">BITLSHIFT関数とは？</span></h2>



<p>スプレッドシートのBITLSHIFT関数（ビットレフトシフト関数）は、指定した数値のビットを左方向に指定した桁数だけずらす関数です。結果は10進数の数値で返ります。</p>



<p>「ビットを左にずらす」とは、数値を2進数に変換して、各ビットを左に移動させる計算のことです。空いた右側には0が入ります。1桁左にずらすたびに値が2倍になるのが大きな特徴ですよ。</p>



<p>たとえば、5を2桁左にシフトする場合を見てみましょう。</p>



<ul class="wp-block-list"><li>5 を2進数にすると → <code>00000101</code></li><li>2桁左にシフト → <code>00010100</code>（= 10進数の20）</li></ul>



<p>5 × 2 × 2 = 20 という計算になっていますね。「左に1桁シフト = 2倍」と覚えると感覚がつかみやすいですよ。</p>



<p>GoogleスプレッドシートのBITLSHIFT関数は、ExcelのBITLSHIFT関数と同じ構文で使えます。2の累乗計算やビットフラグの位置生成など、ビット演算を扱う業務でじわじわ効いてくる関数ですね。</p>



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



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



<pre class="wp-block-code"><code>=BITLSHIFT(値, シフト量)</code></pre>



<p>引数は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>値</td><td>必須</td><td>左シフトする対象の数値（0以上の整数）</td></tr><tr><td>シフト量</td><td>必須</td><td>左にずらすビット数（-53〜53の整数）</td></tr></tbody></table></figure>



<p>第1引数の「値」には、0以上かつ<code>(2^48)-1</code>（= 281,474,976,710,655）以下の整数を指定します。</p>



<p>第2引数の「シフト量」は通常は正の整数を指定して左シフトしますが、負の値を指定すると右シフト（BITRSHIFTと同じ動き）になります。シフト量の絶対値は53以下である必要がありますよ。</p>



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



<h2 class="wp-block-heading"><span id="toc5">ビット左シフトのイメージ表</span></h2>



<p>BITLSHIFT関数の動きをイメージしやすいように、よく使う組み合わせを表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>シフト量</th><th>値（2進）</th><th>シフト後（2進）</th><th>結果（10進）</th><th>倍率</th></tr></thead><tbody><tr><td>1</td><td>0</td><td>0001</td><td>0001</td><td>1</td><td>×1</td></tr><tr><td>1</td><td>1</td><td>0001</td><td>0010</td><td>2</td><td>×2</td></tr><tr><td>1</td><td>2</td><td>0001</td><td>0100</td><td>4</td><td>×4</td></tr><tr><td>1</td><td>3</td><td>0001</td><td>1000</td><td>8</td><td>×8</td></tr><tr><td>3</td><td>2</td><td>0011</td><td>1100</td><td>12</td><td>×4</td></tr><tr><td>5</td><td>3</td><td>0101</td><td>101000</td><td>40</td><td>×8</td></tr><tr><td>7</td><td>4</td><td>0111</td><td>1110000</td><td>112</td><td>×16</td></tr></tbody></table></figure>



<p>「シフト量が1増えるたびに結果が2倍になる」というルールが見えてきますね。<code>BITLSHIFT(値, n)</code> は <code>値 × 2^n</code> と同じ結果を返します。</p>



<p>このルールから、BITLSHIFTには次の2つの代表的な使い道が生まれます。</p>



<ul class="wp-block-list"><li><strong>2倍系列の高速生成</strong>: <code>BITLSHIFT(1, n)</code> で 1, 2, 4, 8, 16… の2の累乗を順番に作れる</li><li><strong>ビット位置の指定</strong>: 「nビット目に1を立てた値」を直接生成できる（権限フラグの動的生成）</li></ul>



<p>この特徴を活かすと、ビットフラグ設計や権限管理がぐっと楽になりますよ。</p>



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



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



<p>もっともシンプルな使い方から見ていきましょう。</p>



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



<p>結果は「20」です。先ほどの説明のとおり、5を2桁左にシフトすると <code>00010100</code>（= 20）になります。5 × 4 = 20 と同じ結果ですね。</p>



<pre class="wp-block-code"><code>=BITLSHIFT(1, 3)</code></pre>



<p>結果は「8」です。1を3桁左にシフトすると <code>1000</code>（= 8）になります。これは「4桁目（左から数えて4番目のビット）に1を立てる」操作と同じ意味ですよ。</p>



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



<p>実務では、セルに入っている値をシフトする場面が多いです。A2に「3」、B2に「2」が入っている場合は次のように書きます。</p>



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



<p>結果は「12」です。3を2桁左にシフトすると <code>1100</code>（= 12）になります。3 × 4 = 12 と同じですね。</p>



<p>途中の2進数表現を確認したいときは、<a href="https://mashukabu.com/spreadsheet-dec2bin-function/">DEC2BIN関数</a>（10進数を2進数の文字列に変換する関数）を組み合わせると分かりやすいですよ。</p>



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



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



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



<pre class="wp-block-code"><code>=ARRAYFORMULA(BITLSHIFT(1, A2:A10))</code></pre>



<p>A列に並んだシフト量に応じて、1を順番に左シフトした結果を一括で取得できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列: シフト量</th><th>結果（BITLSHIFT）</th></tr></thead><tbody><tr><td>0</td><td>1</td></tr><tr><td>1</td><td>2</td></tr><tr><td>2</td><td>4</td></tr><tr><td>3</td><td>8</td></tr><tr><td>4</td><td>16</td></tr><tr><td>5</td><td>32</td></tr><tr><td>6</td><td>64</td></tr><tr><td>7</td><td>128</td></tr></tbody></table></figure>



<p>2の累乗の一覧が、1つの数式で完成しますよ。権限フラグの基本値リストや、kB→MB→GBといった2の累乗単位の換算表を作るときにも便利ですね。</p>



<h2 class="wp-block-heading"><span id="toc10">実務活用例1：権限フラグの位置を動的に生成する</span></h2>



<p>BITLSHIFT関数のもっとも代表的な活用が、ビットフラグの位置を動的に生成する使い方です。</p>



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



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



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



<p>このとき、各権限の値（1, 2, 4, 8）を手で入力する代わりに、BITLSHIFTで生成すると将来権限が増えても拡張しやすくなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">ビット位置から値を生成する</span></h3>



<p>「nビット目に1を立てた値がほしい」という場合は、<code>BITLSHIFT(1, n)</code> で一発です。</p>



<pre class="wp-block-code"><code>=BITLSHIFT(1, 0)  → 1（閲覧）
=BITLSHIFT(1, 1)  → 2（編集）
=BITLSHIFT(1, 2)  → 4（削除）
=BITLSHIFT(1, 3)  → 8（管理）</code></pre>



<p>権限名とビット位置の対応表だけ作っておけば、値は自動で算出できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列: 権限名</th><th>B列: ビット位置</th><th>C列: 値 <code>=BITLSHIFT(1, B2)</code></th></tr></thead><tbody><tr><td>閲覧</td><td>0</td><td>1</td></tr><tr><td>編集</td><td>1</td><td>2</td></tr><tr><td>削除</td><td>2</td><td>4</td></tr><tr><td>管理</td><td>3</td><td>8</td></tr><tr><td>エクスポート</td><td>4</td><td>16</td></tr><tr><td>インポート</td><td>5</td><td>32</td></tr></tbody></table></figure>



<p>新しい権限「ダウンロード」を追加する場合も、ビット位置「6」を入れるだけで値「64」が自動算出されますね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>BITLSHIFTで「位置」を作り、BITORで「合成」、BITANDで「チェック」、BITXORで「トグル」と覚えておくと、ビット演算4兄弟の役割分担がスッキリします。BITLSHIFTは権限の「番地」を決める設計フェーズで活躍しますよ。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc13">BITORと組み合わせて権限を合成する</span></h3>



<p>ビット位置から値を生成できれば、BITOR関数で複数の権限を合成するのも自動化できます。</p>



<pre class="wp-block-code"><code>=BITOR(BITLSHIFT(1, 0), BITLSHIFT(1, 1), BITLSHIFT(1, 2))</code></pre>



<p>結果は「7」（閲覧＋編集＋削除）です。<code>0001 OR 0010 OR 0100 = 0111</code> ですね。</p>



<p>権限名から値を組み立てる仕組みを作っておけば、運用担当者がビット位置を意識せず権限設定できるようになりますよ。詳しくは<a href="https://mashukabu.com/spreadsheet-bitor-function/">BITOR関数の記事</a>も合わせて読んでみてくださいね。</p>



<h2 class="wp-block-heading"><span id="toc14">実務活用例2：2倍系列の単位変換表を作る</span></h2>



<p>BITLSHIFTは「1桁シフト = ×2」という性質から、2の累乗を扱う単位変換にぴったりです。</p>



<h3 class="wp-block-heading"><span id="toc15">データ容量の単位変換</span></h3>



<p>データ容量は基本的に2の10乗（= 1024）ごとに単位が変わります。1KB = 1024バイト、1MB = 1024KB、1GB = 1024MB のように、各単位は前の単位を1024倍した値ですよ。</p>



<p>これを BITLSHIFT で表すと、「10ビット左シフト = 1024倍」になります。</p>



<pre class="wp-block-code"><code>=BITLSHIFT(1, 10)  → 1024（1KB = 1024B）
=BITLSHIFT(1, 20)  → 1048576（1MB = 1024KB）
=BITLSHIFT(1, 30)  → 1073741824（1GB = 1024MB）
=BITLSHIFT(1, 40)  → 1099511627776（1TB = 1024GB）</code></pre>



<p>シフト量を10ずつ増やすだけで、KB→MB→GB→TBの段階が自動で出てきますね。換算表を作るときに便利な書き方です。</p>



<h3 class="wp-block-heading"><span id="toc16">バイト数からKB・MB・GBを表示する</span></h3>



<p>「バイト単位のファイルサイズをKB・MB・GBに換算したい」という場面なら、BITRSHIFT関数（右シフト関数）と組み合わせます。</p>



<pre class="wp-block-code"><code>=BITRSHIFT(A2, 10)  → KB単位（バイトを1024で割る）
=BITRSHIFT(A2, 20)  → MB単位（バイトを1024×1024で割る）
=BITRSHIFT(A2, 30)  → GB単位（バイトを1024×1024×1024で割る）</code></pre>



<p>A2に「2147483648」（= 2GB相当のバイト数）が入っていれば、<code>BITRSHIFT(A2, 30)</code> の結果は「2」になりますよ。BITLSHIFTとBITRSHIFTは「左右ペア」の関係で、合わせて覚えておくと便利ですね。</p>



<h2 class="wp-block-heading"><span id="toc17">実務活用例3：複数の値を1つの数値にパッキングする</span></h2>



<p>BITLSHIFTを使うと、複数の小さな数値を1つの大きな数値にまとめて格納できます。色コード（RGB値）や日付の年月日コードなど、「複数の情報を1つの値で持ちたい」場面で活躍しますよ。</p>



<h3 class="wp-block-heading"><span id="toc18">RGB値を1つの数値にまとめる</span></h3>



<p>色を表すRGB値は、それぞれ赤・緑・青を0〜255の数値で持ちます。これを1つの整数にまとめるには、各値を8ビットずつ左シフトしてからBITORで合成します。</p>



<pre class="wp-block-code"><code>=BITOR(BITLSHIFT(A2, 16), BITLSHIFT(B2, 8), C2)</code></pre>



<p>A2に赤（R=255）、B2に緑（G=128）、C2に青（B=64）が入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>ステップ</th><th>数式</th><th>結果</th></tr></thead><tbody><tr><td>赤を16ビット左シフト</td><td><code>BITLSHIFT(255, 16)</code></td><td>16711680</td></tr><tr><td>緑を8ビット左シフト</td><td><code>BITLSHIFT(128, 8)</code></td><td>32768</td></tr><tr><td>青はそのまま</td><td><code>64</code></td><td>64</td></tr><tr><td>全部をORで合成</td><td>上記の合計</td><td>16744512</td></tr></tbody></table></figure>



<p>結果の「16744512」が、HTMLでいう <code>#FF8040</code> の色コードに相当する10進数です。1セルに1色の情報を保存できるので、配色テーブルがコンパクトになりますね。</p>



<h3 class="wp-block-heading"><span id="toc19">パッキングした値を取り出す</span></h3>



<p>逆に、まとめた数値からRGB各値を取り出すには、BITRSHIFTとBITANDを使います。</p>



<pre class="wp-block-code"><code>=BITAND(BITRSHIFT(A2, 16), 255)  → 赤の値
=BITAND(BITRSHIFT(A2, 8), 255)   → 緑の値
=BITAND(A2, 255)                  → 青の値</code></pre>



<p>「右シフトで取り出したい位置を一番下に持ってくる → BITAND(255)で下位8ビットだけ残す」というパターンで、各色を分離できますよ。詳しい仕組みは<a href="https://mashukabu.com/spreadsheet-bitand-function/">BITAND関数の記事</a>を合わせて確認してみてくださいね。</p>



<h2 class="wp-block-heading"><span id="toc20">BITLSHIFTとBITRSHIFTの関係</span></h2>



<p>BITLSHIFT（左シフト）とBITRSHIFT（右シフト）は、シフト方向が逆のペア関数です。第2引数の符号で動きが切り替わります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>動作</th><th>値の変化</th><th>同等の演算</th></tr></thead><tbody><tr><td><code>BITLSHIFT(値, n)</code></td><td>左にnビットシフト</td><td>n回ぶん2倍</td><td><code>値 × 2^n</code></td></tr><tr><td><code>BITRSHIFT(値, n)</code></td><td>右にnビットシフト</td><td>n回ぶん半分</td><td><code>INT(値 / 2^n)</code></td></tr></tbody></table></figure>



<p>実は、BITLSHIFTの第2引数に負の値を渡すと、BITRSHIFTと同じ結果になります。</p>



<pre class="wp-block-code"><code>=BITLSHIFT(40, -3)  → 5（40を3ビット右シフト）
=BITRSHIFT(40, 3)   → 5（同じ結果）</code></pre>



<p>ただし、可読性のためには「左シフトはBITLSHIFT、右シフトはBITRSHIFT」と分けて書く方がおすすめですよ。読み手が数式の意図をすぐに把握できますね。</p>



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



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



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



<p>ExcelのBITLSHIFT関数は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>次のいずれかに当てはまると <code>#NUM!</code> エラーになります。</p>



<ul class="wp-block-list"><li>第1引数（値）に負の数を指定した</li><li>第1引数が <code>(2^48)-1</code>（= 281,474,976,710,655）を超えている</li><li>第1引数に小数を指定した</li><li>第2引数（シフト量）の絶対値が53を超えている</li><li>シフト結果が <code>(2^48)-1</code> を超えてしまった</li></ul>



<pre class="wp-block-code"><code>=BITLSHIFT(-1, 2)             → #NUM!（負の数は不可）
=BITLSHIFT(2.5, 2)            → #NUM!（小数は不可）
=BITLSHIFT(1, 60)             → #NUM!（シフト量が大きすぎる）
=BITLSHIFT(2^47, 2)           → #NUM!（結果がオーバーフロー）</code></pre>



<p>対処法は、INT関数（小数を切り捨てて整数化する関数）で値を整数化し、シフト量も適切な範囲に収めることです。</p>



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



<p>シフト量の上限を47程度にしておけば、結果のオーバーフローもまとめて防げますよ。</p>



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



<p>引数に文字列を指定すると <code>#VALUE!</code> エラーになります。テキストとして取り込んだ数値をそのまま渡すと発生しがちです。</p>



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



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



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



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



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



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



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



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



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



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



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



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



<p>BITLSHIFTは「ビットフラグの設計時に位置を作る」「2の累乗計算をしたい」ときに使います。設計したフラグを実際に運用する場面では、BITAND（<a href="https://mashukabu.com/spreadsheet-bitand-function/">BITAND関数の記事</a>）でチェック、BITOR（<a href="https://mashukabu.com/spreadsheet-bitor-function/">BITOR関数の記事</a>）で合成、BITXOR（<a href="https://mashukabu.com/spreadsheet-bitxor-function/">BITXOR関数の記事</a>）でトグルという役割分担になりますね。</p>



<p>「設計はBITLSHIFT、運用はAND/OR/XOR」という流れを覚えておくと、業務でビット演算を使うときの全体像が見えやすくなりますよ。</p>



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



<p>GoogleスプレッドシートのBITLSHIFT関数は、指定した数値のビットを左方向にずらす関数です。2の累乗計算やビットフラグの位置生成、複数値のパッキングなど、ビット演算の「設計」面で活躍してくれますよ。</p>



<ul class="wp-block-list"><li>構文は <code>=BITLSHIFT(値, シフト量)</code>、両引数とも必須</li><li>「左に1桁シフト = 2倍」のルールで値が増えていく</li><li><code>BITLSHIFT(1, n)</code> で「nビット目に1を立てた値」を直接生成できる</li><li>ARRAYFORMULAと組み合わせて2の累乗の一覧を一発で作れる</li><li>BITORと組み合わせて権限値の合成を自動化できる</li><li>RGB値や複数情報のパッキング・アンパックに活用できる</li><li>ExcelのBITLSHIFT関数と完全互換（Excel 2013以降）</li></ul>



<p>ビット演算は最初こそ難しく見えますが、BITLSHIFT関数を使えば権限フラグの設計や2の累乗計算がシンプルな数式で書けるようになります。まずは「<code>BITLSHIFT(1, ビット位置)</code>」のパターンから試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-bitlshift-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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>「権限のON/OFFをワンタッチで切り替えたい&#8230;」「2つのフラグ値の違いだけを取り出したい&#8230;」</p>



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



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



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



<p>この記事では、スプレッドシートの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-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">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>スプレッドシートのBITXOR関数（ビットエックスオア関数）は、2つの数値をビット単位でXOR演算する関数です。結果は10進数の数値で返ります。</p>



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



<p>たとえば、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>「違うところだけ1になる」と覚えると分かりやすいですね。</p>



<p>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>引数は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>どちらの引数にも、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>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>「同じビットなら0、違うビットなら1」というルールが見えてきますね。同じ値同士のXORが必ず0になる点もポイントです。</p>



<p>このルールから、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>この特徴を活かすと、フラグの切り替えや差分抽出がシンプルな数式で書けますよ。</p>



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



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



<p>もっともシンプルな使い方から見ていきましょう。</p>



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



<p>結果は「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>結果は「0」です。同じ値同士のXORは必ず0になります。これが「2回XORで元に戻る」という性質の出発点ですよ。</p>



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



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



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



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



<p>途中の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>スプレッドシートならではの強みが、ARRAYFORMULA関数との組み合わせです。</p>



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



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



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



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



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



<p>たとえば、社内システムの権限を以下のようにビットフラグで管理しているとします。</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>ユーザーの現在の権限値が「3」（閲覧＋編集）だとして、ここで「編集（= 2）」を切り替えたいケースを考えます。</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p>先月と今月の権限値を比べて、「どの権限が変わったか」を一覧化したい場面を考えます。</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>C列に次の数式を入れるだけで差分が出ます。</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p>入庫リストと出庫リストの数値を全部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>完全な照合にはなりませんが、軽量な「1次チェック」としては十分実用的ですね。</p>



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



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



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



<p>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>次のいずれかに当てはまると <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>対処法は、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>引数に文字列を指定すると <code>#VALUE!</code> エラーになります。MID関数などで取り出した文字列をそのまま渡すと発生しがちです。</p>



<p>対処法は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>引数が不足している場合は <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>入力データが信頼できない場合は、IFERRORで包んでおくと安心です。</p>



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



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



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



<p>スプレッドシートには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>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>「付与にBITOR・確認にBITAND・切り替えにBITXOR」という役割分担を覚えておくと、業務で迷わず使い分けられますね。</p>



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



<p>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>ビット演算は最初こそ難しく見えますが、BITXOR関数を使えば権限のトグルや差分検出がシンプルな数式で書けるようになります。まずは「<code>BITXOR(現在の権限, 切り替えたい権限)</code>」のパターンから試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-bitxor-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのBITOR関数の使い方｜ビットORで権限・フラグを付与する</title>
		<link>https://mashukabu.com/spreadsheet-bitor-function/</link>
					<comments>https://mashukabu.com/spreadsheet-bitor-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 14:26:18 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[BITOR]]></category>
		<category><![CDATA[エンジニアリング関数]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[ビット演算]]></category>
		<category><![CDATA[フラグ管理]]></category>
		<category><![CDATA[権限管理]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6309</guid>

					<description><![CDATA[GoogleスプレッドシートのBITOR関数の使い方を解説。2つの数値のビット単位OR演算で、権限の付与・複数フラグの合成・タグの集計まで実例付きで紹介します。エラー対処法やBITAND・BITXORとの使い分けも網羅。]]></description>
										<content:encoded><![CDATA[
<p>「ユーザーごとに『閲覧』『編集』『削除』の権限を組み合わせて1つの数値にまとめたい&#8230;」</p>



<p>スプレッドシートで権限管理台帳やタグ管理シートを作っていると、複数のフラグを1つの数値に合成したい場面が出てきますよね。フラグの数だけ列を増やしてしまうと、後からシステムに渡しづらくなることもあります。</p>



<p>そんなときに便利なのがGoogleスプレッドシートのBITOR関数です。2つの数値をビット単位でOR演算して、複数のフラグを1つの数値にまとめられますよ。</p>



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



<p>この記事では、スプレッドシートのBITOR関数の基本から権限の付与・タグの合成・複数列のフラグ集計まで解説します。BITAND・BITXORとの使い分けやエラー対処法にも触れていきますよ。</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">BITOR関数とは？</a></li><li><a href="#toc2" tabindex="0">BITOR関数の書き方（構文と引数）</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">ビットOR演算のイメージ表</a></li><li><a href="#toc6" tabindex="0">BITOR関数の基本的な使い方</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で一括合成する</a></li></ol></li><li><a href="#toc10" tabindex="0">実務活用例1：権限フラグの付与</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：複数フラグの合成</a><ol><li><a href="#toc16" tabindex="0">商品属性のフラグ設計例</a></li><li><a href="#toc17" tabindex="0">3つ以上のフラグを合成する</a></li></ol></li><li><a href="#toc18" tabindex="0">実務活用例3：複数列のタグを1つにまとめる</a><ol><li><a href="#toc19" tabindex="0">タグの設計例</a></li><li><a href="#toc20" tabindex="0">複数列のフラグをループ的に集計する</a></li></ol></li><li><a href="#toc21" tabindex="0">BITOR関数と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">BITOR関数とは？</span></h2>



<p>スプレッドシートのBITOR関数（ビットオア関数）は、2つの数値をビット単位でOR演算する関数です。結果は10進数の数値で返ります。</p>



<p>「ビット単位のOR演算」とは、2つの数値を2進数に変換し、同じ位置のビットを比べる計算のことです。どちらか一方でも1なら、その桁は1になります。</p>



<p>たとえば、5と10のビットORを求める場合を見てみましょう。</p>



<ul class="wp-block-list"><li>5 を2進数にすると → <code>0101</code></li><li>10 を2進数にすると → <code>1010</code></li><li>OR演算の結果 → <code>1111</code>（= 10進数の15）</li></ul>



<p>どちらか片方でも1の桁は、すべて1になるイメージですね。</p>



<p>GoogleスプレッドシートのBITOR関数は、ExcelのBITOR関数と同じ構文で使えます。権限の付与やタグの合成など、フラグをまとめる業務で活躍してくれますよ。</p>



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



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



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



<p>引数は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>OR演算を行う1つ目の数値（0以上の整数）</td></tr><tr><td>値2</td><td>必須</td><td>OR演算を行う2つ目の数値（0以上の整数）</td></tr></tbody></table></figure>



<p>どちらの引数にも、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>BITOR関数はExcelとの互換性があるため、ExcelファイルをGoogleスプレッドシートで開いてもそのまま動作します。逆もまた然りです。バージョン違いで挙動が変わる心配はいりませんよ。</p></blockquote>



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



<p>BITOR関数の動きをイメージしやすくするため、よく使われる組み合わせを表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>値1</th><th>値2</th><th>値1（2進）</th><th>値2（2進）</th><th>OR結果（2進）</th><th>結果（10進）</th></tr></thead><tbody><tr><td>5</td><td>10</td><td>0101</td><td>1010</td><td>1111</td><td>15</td></tr><tr><td>1</td><td>2</td><td>0001</td><td>0010</td><td>0011</td><td>3</td></tr><tr><td>4</td><td>2</td><td>0100</td><td>0010</td><td>0110</td><td>6</td></tr><tr><td>7</td><td>8</td><td>0111</td><td>1000</td><td>1111</td><td>15</td></tr><tr><td>5</td><td>4</td><td>0101</td><td>0100</td><td>0101</td><td>5</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>「片方でも1の桁はすべて1になる」というルールが見えてきますね。BITORを使うと、フラグを合成して1つの数値にまとめる処理が一発でできますよ。</p>



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



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



<p>もっともシンプルな使い方から見ていきましょう。</p>



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



<p>結果は「15」です。先ほどの表のとおり、<code>0101</code>と<code>1010</code>のOR演算で<code>1111</code>（= 15）が返ります。</p>



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



<p>結果は「3」です。<code>0001</code>と<code>0010</code>のOR演算で<code>0011</code>（= 3）になります。閲覧（1）と編集（2）の権限を合わせて「3」にする、というイメージですね。</p>



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



<p>実務では、セルに入っているフラグ値を合成する場面が多いです。A2に「4」、B2に「2」が入っている場合は次のように書きます。</p>



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



<p>結果は「6」です。<code>0100</code>と<code>0010</code>のOR演算で<code>0110</code>（= 6）が返ります。</p>



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



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



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



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



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



<p>A列とB列に並んだフラグ値を、1つの数式でまとめて合成できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列: 既存権限</th><th>B列: 追加権限</th><th>結果（BITOR）</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>5</td><td>2</td><td>7</td></tr><tr><td>4</td><td>1</td><td>5</td></tr><tr><td>0</td><td>8</td><td>8</td></tr><tr><td>3</td><td>4</td><td>7</td></tr></tbody></table></figure>



<p>権限の追加処理を1つの数式で一気に処理できますよ。</p>



<h2 class="wp-block-heading"><span id="toc10">実務活用例1：権限フラグの付与</span></h2>



<p>BITOR関数の代表的な活用が、ビットフラグで管理された権限への新しい権限の付与です。</p>



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



<p>たとえば、社内システムの権限を以下のようにビットフラグで管理しているとします。</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>ユーザーの現在の権限値が「1」（閲覧のみ）だとして、ここに「編集（= 2）」を追加したいケースを考えます。</p>



<h3 class="wp-block-heading"><span id="toc12">単一権限の付与</span></h3>



<p>「閲覧のみのユーザーに編集権限を追加する」には、次の数式を使います。</p>



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



<p>A2に「1」が入っていれば、結果は「3」です。<code>0001</code>と<code>0010</code>のORで<code>0011</code>（= 3）になり、閲覧と編集の両方を持つ状態になりますね。</p>



<p>すでに編集権限を持っている場合（A2が「3」など）にこの数式を使っても、結果は変わらず「3」のままです。OR演算の特徴で、同じビットを何度足しても二重計上にならない点が便利ですよ。</p>



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



<p>「閲覧・編集・削除」をまとめて付与したい場合は、合計値（1+2+4 = 7）をマスク値として渡します。</p>



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



<p>A2が「8」（管理のみ）なら、結果は「15」（管理＋閲覧＋編集＋削除）になりますよ。</p>



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



<p>ユーザー一覧の全員に「閲覧権限（= 1）」を一括付与したい場合は、次のように書きます。</p>



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



<p>B列に100人分の権限値が並んでいても、1つの数式で全員に閲覧権限を追加できますよ。すでに閲覧権限を持っている人の権限値は変わらないので、安全に一括処理できますね。</p>



<h2 class="wp-block-heading"><span id="toc15">実務活用例2：複数フラグの合成</span></h2>



<p>「セール対象」と「送料無料」のフラグを別々の列で管理している場合に、1つの数値に合成したい場面でもBITOR関数が活躍します。</p>



<h3 class="wp-block-heading"><span id="toc16">商品属性のフラグ設計例</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>ビット</th><th>属性</th><th>値（10進）</th></tr></thead><tbody><tr><td>1桁目</td><td>セール対象</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><tr><td>4桁目</td><td>限定品</td><td>8</td></tr></tbody></table></figure>



<p>A列に「セール対象（1 or 0）」、B列に「送料無料（2 or 0）」が入っているとします。これを1つの「商品コード」に合成するには、次のように書きます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>A列: セール</th><th>B列: 送料無料</th><th>BITOR結果</th><th>2進表現</th><th>意味</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td><td>0011</td><td>セール＋送料無料</td></tr><tr><td>1</td><td>0</td><td>1</td><td>0001</td><td>セールのみ</td></tr><tr><td>0</td><td>2</td><td>2</td><td>0010</td><td>送料無料のみ</td></tr><tr><td>0</td><td>0</td><td>0</td><td>0000</td><td>該当なし</td></tr></tbody></table></figure>



<p>このコードを使えば、後からBITAND関数で「セール対象だけ抽出」といった判定がスムーズになります。「両方を満たす商品だけ抽出」のような複合条件もシンプルに書けますよ。</p>



<h3 class="wp-block-heading"><span id="toc17">3つ以上のフラグを合成する</span></h3>



<p>BITOR関数は引数を2つしか取れないので、3つ以上を合成するときはBITORを入れ子にします。</p>



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



<p>A2（セール=1）、B2（送料無料=2）、C2（新商品=4）がすべて立っていれば、結果は「7」です。</p>



<p>数が多い場合は、合計値が同じになるSUM関数で代用するのも手です。各フラグが0か対応する値だけを取る前提なら、<code>=SUM(A2:D2)</code>でも同じ結果が得られますよ。</p>



<h2 class="wp-block-heading"><span id="toc18">実務活用例3：複数列のタグを1つにまとめる</span></h2>



<p>部門・職種・ロケーションなど、複数のタグを1つのコードに集約したい場面でもBITORが便利です。</p>



<h3 class="wp-block-heading"><span id="toc19">タグの設計例</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>ビット</th><th>タグ</th><th>値（10進）</th></tr></thead><tbody><tr><td>1桁目</td><td>営業部</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><tr><td>4桁目</td><td>大阪勤務</td><td>8</td></tr><tr><td>5桁目</td><td>リモート可</td><td>16</td></tr></tbody></table></figure>



<p>社員ごとに該当するタグの値を入力しておけば、BITORでまとめて1つの「属性コード」が作れます。</p>



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



<p>この属性コードがあれば、後で「東京勤務かつリモート可の社員を抽出」といった条件もBITAND関数で1発判定できますよ。</p>



<h3 class="wp-block-heading"><span id="toc20">複数列のフラグをループ的に集計する</span></h3>



<p>列が多い場合は、REDUCE関数（範囲を畳み込む関数）と組み合わせるとスッキリ書けます。</p>



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



<p>初期値0から始めて、A2〜E2の各セルとBITORを取り続け、最終的に全フラグの合成値を返します。列を追加してもLAMBDAの中身を変えなくていいので、保守しやすいですよ。</p>



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



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



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



<p>ExcelのBITOR関数は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>次のいずれかに当てはまると <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>=BITOR(-1, 2)        → #NUM!（負の数は不可）
=BITOR(2.5, 2)       → #NUM!（小数は不可）</code></pre>



<p>対処法は、INT関数で整数化してから渡すことです。</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>演算</th><th>説明</th><th>使いどころ</th></tr></thead><tbody><tr><td><strong>BITOR</strong></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>BITXOR</td><td>XOR（排他的論理和）</td><td>異なるビットだけ残す</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>BITORは「フラグを足し合わせる」とき、BITANDは「特定のフラグが立っているか確認する」ときに使います。詳しくは<a href="https://mashukabu.com/spreadsheet-bitand-function/">BITAND関数の記事</a>でも紹介していますよ。付与にBITOR・チェックにBITANDという役割分担を覚えておくと便利ですね。</p>



<p>XORでフラグをON/OFF切り替える操作と組み合わせると、ビット演算の表現の幅がぐっと広がりますね。</p>



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



<p>GoogleスプレッドシートのBITOR関数は、2つの数値をビット単位でOR演算する関数です。複数のフラグを1つの数値に合成する処理で大きな威力を発揮しますよ。</p>



<ul class="wp-block-list"><li>構文は <code>=BITOR(値1, 値2)</code>、引数は0以上の整数</li><li>「片方でも1のビットは1」になるルールでフラグを合成できる</li><li>同じビットを何度足しても二重計上にならないので安全に追加できる</li><li>IF・ARRAYFORMULA・REDUCEと組み合わせて一覧を一括合成できる</li><li>3つ以上のフラグはBITORの入れ子かREDUCEでまとめる</li><li>ExcelのBITOR関数と完全互換（Excel 2013以降）</li></ul>



<p>ビット演算は最初こそ難しく見えますが、BITOR関数を使えば権限の付与やフラグの合成がシンプルな数式で書けるようになります。まずは「<code>BITOR(現在の権限, 追加したい権限)</code>」のパターンから試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-bitor-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのBITRSHIFT関数の使い方｜ビット右シフトの基本と実用例</title>
		<link>https://mashukabu.com/excel-function-howto-use-bitrshift/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-bitrshift/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 04 Nov 2022 08:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[BITLSHIFT関数]]></category>
		<category><![CDATA[BITRSHIFT関数]]></category>
		<category><![CDATA[ビットシフト]]></category>
		<category><![CDATA[ビット演算]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2938</guid>

					<description><![CDATA[ExcelのBITRSHIFT関数の使い方を初心者向けに解説。ビット右シフトの基本構文・引数の意味から、実践的な使用例、よくあるエラーの対処法、BITLSHIFT関数との違いまで丁寧に紹介します。]]></description>
										<content:encoded><![CDATA[
<p>Excelでビットの右シフトを使いたいけれど、どの関数を選べばいいのか迷っていませんか？</p>



<p>ビットシフトの仕組みがわからないまま手計算で進めるのは、時間がかかるうえにミスのもとですよね。</p>



<p>この記事では、BITRSHIFT関数の基本的な使い方から実践的な活用例まで、わかりやすく解説していきます。読み終えるころには、ビット右シフトをExcelでサッと処理できるようになりますよ。</p>




  <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のBITRSHIFT関数とは？</a></li><li><a href="#toc2" tabindex="0">BITRSHIFT関数の書き方（構文と引数）</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">BITRSHIFT関数の基本的な使い方</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">BITRSHIFT関数の実践的な活用例</a><ol><li><a href="#toc9" tabindex="0">2のべき乗で割り算する</a></li><li><a href="#toc10" tabindex="0">ほかのビット演算関数と組み合わせる</a></li></ol></li><li><a href="#toc11" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc12" tabindex="0">#NUM! エラー</a></li><li><a href="#toc13" tabindex="0">#VALUE! エラー</a></li></ol></li><li><a href="#toc14" tabindex="0">BITLSHIFT関数やほかのビット演算関数との違い</a></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>BITRSHIFT関数は、数値を2進数（ビット）に変換し、指定したビット数だけ右にシフトした結果を10進数で返す関数です。</p>



<p>読み方は「ビット ライト シフト」です。「Right（右）」の「R」と覚えておきましょう。</p>



<p>ビットの右シフトとは、2進数の各桁を右方向にずらす操作のことです。右に1ビットシフトすると、元の値を2で割った結果（小数切り捨て）になります。2ビットなら4分の1、3ビットなら8分の1です。</p>



<p>たとえば、10進数の「20」は2進数で「10100」です。これを右に2ビットシフトすると「101」になり、10進数では「5」になります。つまり 20 / 4 = 5 ですね。</p>



<p>このように、BITRSHIFT関数を使えば、ビット単位のデータ操作をExcel上でかんたんに行えますよ。</p>



<p>対応バージョンは Excel 2013 以降および Microsoft 365 です。Excel 2010 以前では使用できないので、お使いのバージョンを確認しておきましょう。</p>



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



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



<pre class="wp-block-code"><code>=BITRSHIFT(数値, シフト量)</code></pre>



<p>引数は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>数値</td><td>必須</td><td>ビットを右にシフトしたい10進数の整数を指定します。0 以上 281,474,976,710,655（2の48乗 &#8211; 1）以下の範囲で指定します。</td></tr><tr><td>シフト量</td><td>必須</td><td>右にシフトするビット数を整数で指定します。絶対値が53以下である必要があります。</td></tr></tbody></table></figure>



<p>数値に小数を指定した場合は、小数部分が切り捨てられます。たとえば「20.7」を指定すると「20」として扱われますよ。</p>



<p>シフト量に負の値を指定すると、左シフトになります。BITRSHIFT(数値, -2) は <a href="https://mashukabu.com/excel-function-howto-use-bitlshift/">BITLSHIFT</a>(数値, 2) と同じ結果です。覚えておくと便利ですね。</p>



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



<p>ここでは、実際にBITRSHIFT関数を入力して結果を確認してみましょう。</p>



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



<p>セルに次の数式を入力してみてください。</p>



<pre class="wp-block-code"><code>=BITRSHIFT(20, 2)</code></pre>



<p>結果は「5」になります。20（2進数: 10100）を右に2ビットシフトすると 101（10進数: 5）になるためです。</p>



<p>もうひとつ試してみましょう。</p>



<pre class="wp-block-code"><code>=BITRSHIFT(8, 3)</code></pre>



<p>結果は「1」です。8（2進数: 1000）を右に3ビットシフトすると 1（10進数: 1）になります。右シフト3回は「2の3乗 = 8で割る」に相当しますよ。</p>



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



<p>A1セルに数値「100」、B1セルにシフト量「2」が入っている場合、次のように入力します。</p>



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



<p>結果は「25」です。100 / 4（2の2乗）= 25 ですね。セル参照を使えば、数値やシフト量を変えるだけで結果が自動更新されます。</p>



<h2 class="wp-block-heading"><span id="toc8">BITRSHIFT関数の実践的な活用例</span></h2>



<h3 class="wp-block-heading"><span id="toc9">2のべき乗で割り算する</span></h3>



<p>BITRSHIFT関数を使うと、2のべき乗による割り算をかんたんに行えます。</p>



<pre class="wp-block-code"><code>=BITRSHIFT(1024, 4)</code></pre>



<p>結果は「64」です。1024を右に4ビットシフトすると、1024 / 16（2の4乗）= 64 が得られます。</p>



<p>通常の割り算でも同じ結果になりますが、ビット演算を使う場面ではこちらのほうが直感的です。データ通信のパケットサイズ計算など、2のべき乗が頻出する場面で便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc10">ほかのビット演算関数と組み合わせる</span></h3>



<p>BITRSHIFT関数は、<a href="https://mashukabu.com/excel-function-howto-use-bitand/">BITAND関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-bitor/">BITOR関数</a>と組み合わせて使うこともできます。</p>



<p>たとえば、特定のビット位置の値を取り出したい場合は、次のようにします。</p>



<pre class="wp-block-code"><code>=BITAND(BITRSHIFT(A1, 4), 15)</code></pre>



<p>この数式は、A1の値の上位4ビット（第4〜7ビット）を取り出します。まずBITRSHIFTで4ビット右にずらし、BITAND関数で下位4ビットだけを取り出す仕組みです。</p>



<p>A1が「200」（2進数: 11001000）の場合、右に4ビットシフトすると「12」（2進数: 1100）になります。さらに15（2進数: 1111）とANDをとると「12」がそのまま返ります。</p>



<p>ちょっとむずかしく見えますが、やっていることはシンプルです。「ずらして、必要な部分だけ取り出す」という流れですね。</p>



<p>このテクニックは、RGBカラーコードの各色成分を取り出したり、フラグの特定ビットを確認したりするときに活用できますよ。</p>



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



<p>BITRSHIFT関数で表示されるエラーと、その原因・対処法をまとめました。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>数値が0未満</td><td>0以上の整数を指定してください</td></tr><tr><td>数値が 2^48 &#8211; 1 より大きい</td><td>281,474,976,710,655 以下の値を指定してください</td></tr><tr><td>シフト量の絶対値が53を超えている</td><td>-53 から 53 の範囲で指定してください</td></tr></tbody></table></figure>



<p>数値の範囲は <a href="https://mashukabu.com/excel-function-howto-use-bitlshift/">BITLSHIFT関数</a>と共通です。48ビット（約281兆）が上限なので、通常の業務データなら問題ありませんよ。</p>



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



<p>数値やシフト量に文字列を指定すると発生します。セル参照先が数値かどうかを確認してみてください。</p>



<h2 class="wp-block-heading"><span id="toc14">BITLSHIFT関数やほかのビット演算関数との違い</span></h2>



<p>Excelにはビット演算に関連する関数がいくつかあります。それぞれの役割を整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数名</th><th>機能</th><th>使用例</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitlshift/">BITLSHIFT</a></td><td>ビットを左にシフト（値が大きくなる）</td><td>=BITLSHIFT(5, 2) → 20</td></tr><tr><td>BITRSHIFT</td><td>ビットを右にシフト（値が小さくなる）</td><td>=BITRSHIFT(20, 2) → 5</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitand/">BITAND</a></td><td>2つの数値のビット単位AND（論理積）</td><td>=BITAND(5, 3) → 1</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitor/">BITOR</a></td><td>2つの数値のビット単位OR（論理和）</td><td>=BITOR(5, 3) → 7</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitxor/">BITXOR</a></td><td>2つの数値のビット単位XOR（排他的論理和）</td><td>=BITXOR(5, 3) → 6</td></tr></tbody></table></figure>



<p>BITLSHIFTとBITRSHIFTは逆の操作です。左シフトは値を大きく（掛け算）、右シフトは値を小さく（割り算）します。覚え方は「Right（右）で Reduce（小さく）」ですね。</p>



<p>BITAND・BITOR・BITXORは2つの数値のビットを比較する関数です。BITRSHIFTとは用途が異なりますが、組み合わせて使うことで柔軟なビット操作が可能になりますよ。</p>



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



<p>この記事では、ExcelのBITRSHIFT関数について解説しました。</p>



<ul class="wp-block-list"><li>BITRSHIFT関数は、数値を指定ビット数だけ右にシフトする関数</li><li>右に1ビットシフトするごとに値が2分の1になる</li><li>シフト量に負の値を指定すると左シフトになる</li><li>数値は 0 以上 2^48 &#8211; 1 以下、シフト量の絶対値は53以下</li><li>BITAND関数やBITOR関数と組み合わせれば、特定ビットの取り出しにも活用できる</li></ul>



<p>ビット演算はなじみが薄いかもしれませんが、仕組みさえ理解すればシンプルです。まずは =BITRSHIFT(20, 2) のようなかんたんな数式から試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-bitrshift/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのBITLSHIFT関数の使い方｜ビット左シフトの基本と実用例</title>
		<link>https://mashukabu.com/excel-function-howto-use-bitlshift/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-bitlshift/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 03 Nov 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[BITLSHIFT関数]]></category>
		<category><![CDATA[BITRSHIFT関数]]></category>
		<category><![CDATA[ビットシフト]]></category>
		<category><![CDATA[ビット演算]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2931</guid>

					<description><![CDATA[ExcelのBITLSHIFT関数の使い方を初心者向けに解説。ビット左シフトの基本構文・引数の意味から、2のべき乗計算・フラグ管理・データ圧縮の考え方まで実務で使える例を多数紹介。BITRSHIFT・BITAND・BITORとの使い分けやエラー対処法もまとめました。]]></description>
										<content:encoded><![CDATA[
<p>Excelでビット演算を使いたいけれど、どの関数を使えばいいのかわからない。そんな経験はありませんか？</p>



<p>ビットシフトの仕組みがわからないと、データの変換作業を手計算で進めることになり、時間もかかって大変ですよね。</p>



<p>この記事では、BITLSHIFT関数の基本的な使い方から、2のべき乗計算・フラグ管理・データ圧縮の考え方まで、わかりやすく解説していきます。読み終えるころには、ビット左シフトをExcelでサッと処理できるようになりますよ。</p>




  <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">ExcelのBITLSHIFT関数とは？</a><ol><li><a href="#toc2" tabindex="0">なぜ「左に1ビットシフト = 2倍」になるのか</a></li></ol></li><li><a href="#toc3" tabindex="0">BITLSHIFT関数の書き方（構文と引数）</a><ol><li><a href="#toc4" tabindex="0">基本構文</a></li><li><a href="#toc5" tabindex="0">引数の説明</a></li><li><a href="#toc6" tabindex="0">上限値「2の48乗 − 1」の意味</a></li></ol></li><li><a href="#toc7" tabindex="0">BITLSHIFT関数の基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">値を直接指定する方法</a></li><li><a href="#toc9" tabindex="0">セル参照を使う方法</a></li><li><a href="#toc10" tabindex="0">結果を2進数で見たいとき</a></li></ol></li><li><a href="#toc11" tabindex="0">BITLSHIFT関数の実践的な活用例</a><ol><li><a href="#toc12" tabindex="0">例1: 2のべき乗を一覧で計算する</a></li><li><a href="#toc13" tabindex="0">例2: KB・MB・GBの換算</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: データ圧縮の考え方（複数値を1セルに詰める）</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc18" tabindex="0">#NUM! エラー</a></li><li><a href="#toc19" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc20" tabindex="0">#NAME? エラー</a></li></ol></li><li><a href="#toc21" tabindex="0">BITRSHIFT関数やほかのビット演算関数との違い</a><ol><li><a href="#toc22" tabindex="0">用途別の使い分けチャート</a></li></ol></li><li><a href="#toc23" tabindex="0">POWER関数と何が違う？</a></li><li><a href="#toc24" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>BITLSHIFT関数は、数値を2進数（ビット）に変換し、指定したビット数だけ左にシフトした結果を10進数で返す関数です。</p>



<p>読み方は「ビット レフト シフト」です。</p>



<p>ビットの左シフトとは、2進数の各桁を左方向にずらす操作のことです。左に1ビットシフトすると、元の値が2倍になります。2ビットなら4倍、3ビットなら8倍です。</p>



<p>たとえば、10進数の「5」は2進数で「101」です。これを左に2ビットシフトすると「10100」になり、10進数では「20」になります。つまり 5 × 4 = 20 ですね。</p>



<p>このように、BITLSHIFT関数を使えば、ビット単位のデータ操作をExcel上でかんたんに行えますよ。</p>



<p>対応バージョンは Excel 2013 以降および Microsoft 365 です。Excel 2010 以前では使用できないので、お使いのバージョンを確認しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc2">なぜ「左に1ビットシフト = 2倍」になるのか</span></h3>



<p>10進数で「左に1桁シフトすると10倍」になるのと同じ理屈です。10進数は基数が10なので桁を1つずらすと10倍ですが、2進数は基数が2なので桁を1つずらすと2倍になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>操作</th><th>2進数</th><th>10進数</th><th>元の値との比</th></tr></thead><tbody><tr><td>元の値</td><td>0011</td><td>3</td><td>× 1</td></tr><tr><td>左に1シフト</td><td>0110</td><td>6</td><td>× 2</td></tr><tr><td>左に2シフト</td><td>1100</td><td>12</td><td>× 4</td></tr><tr><td>左に3シフト</td><td>11000</td><td>24</td><td>× 8</td></tr></tbody></table></figure>



<p>このルールさえつかんでおけば、暗算でも結果を予測できますよ。</p>



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



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



<pre class="wp-block-code"><code>=BITLSHIFT(数値, シフト量)</code></pre>



<p>引数は2つで、どちらも必須です。</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>ビットを左にシフトしたい10進数の整数を指定します。0 以上 281,474,976,710,655（2の48乗 − 1）以下の範囲で指定します。</td></tr><tr><td>シフト量</td><td>必須</td><td>左にシフトするビット数を整数で指定します。絶対値が53以下である必要があります。</td></tr></tbody></table></figure>



<p>数値に小数を指定した場合は、小数部分が切り捨てられます。たとえば「5.8」を指定すると「5」として扱われますよ。</p>



<p>シフト量に負の値を指定すると、右シフトになります。<code>=BITLSHIFT(数値, -2)</code> は <code>=BITRSHIFT(数値, 2)</code> と同じ結果です。覚えておくと便利ですね。</p>



<h3 class="wp-block-heading"><span id="toc6">上限値「2の48乗 − 1」の意味</span></h3>



<p>BITLSHIFT関数で扱える最大値は <strong>281,474,976,710,655</strong> です。これは2進数の48桁すべてが「1」になった状態（111…1 が48個）と同じで、Excelのビット系関数で共通の上限です。</p>



<p>シフト後の結果がこの値を超えると <code>#NUM!</code> エラーになります。たとえば <code>=BITLSHIFT(1, 48)</code> はギリギリ計算できますが、<code>=BITLSHIFT(1, 48)</code> の答えは 281,474,976,710,656 で上限超過のためエラーです。実際には <code>=BITLSHIFT(1, 47)</code> までが安全圏と考えるとよいでしょう。</p>



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



<p>ここでは、実際にBITLSHIFT関数を入力して結果を確認してみましょう。</p>



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



<p>セルに次の数式を入力してみてください。</p>



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



<p>結果は「20」になります。5（2進数: 101）を左に2ビットシフトすると 10100（10進数: 20）になるためです。</p>



<p>もうひとつ試してみましょう。</p>



<pre class="wp-block-code"><code>=BITLSHIFT(1, 3)</code></pre>



<p>結果は「8」です。1（2進数: 1）を左に3ビットシフトすると 1000（10進数: 8）になります。左シフト3回は「2の3乗 = 8倍」に相当しますよ。</p>



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



<p>A1セルに数値「10」、B1セルにシフト量「3」が入っている場合、次のように入力します。</p>



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



<p>結果は「80」です。10 × 8（2の3乗）= 80 ですね。セル参照を使えば、数値やシフト量を変えるだけで結果が自動更新されます。</p>



<h3 class="wp-block-heading"><span id="toc10">結果を2進数で見たいとき</span></h3>



<p>BITLSHIFTの結果は10進数で返るので、シフトの動きを確認したいときはDEC2BIN関数と組み合わせると便利です。</p>



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



<p>結果は「10100」と表示され、ビットがどう動いたかを目で確認できます。学習中はこの組み合わせで挙動をつかんでおくと、ビット演算への理解が深まりますよ。</p>



<h2 class="wp-block-heading"><span id="toc11">BITLSHIFT関数の実践的な活用例</span></h2>



<h3 class="wp-block-heading"><span id="toc12">例1: 2のべき乗を一覧で計算する</span></h3>



<p>BITLSHIFT関数を使うと、2のべき乗の値をかんたんに求められます。</p>



<pre class="wp-block-code"><code>=BITLSHIFT(1, 10)</code></pre>



<p>結果は「1024」です。1を左に10ビットシフトすると、2の10乗 = 1024 が得られます。</p>



<p>A列に 0、1、2、3 …と数値を並べて、B列に <code>=BITLSHIFT(1, A1)</code> を入れれば、2のべき乗の一覧表がすぐに作れますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（n）</th><th>B列（=BITLSHIFT(1, An)）</th></tr></thead><tbody><tr><td>0</td><td>1</td></tr><tr><td>4</td><td>16</td></tr><tr><td>8</td><td>256</td></tr><tr><td>10</td><td>1,024</td></tr><tr><td>16</td><td>65,536</td></tr><tr><td>20</td><td>1,048,576</td></tr></tbody></table></figure>



<p>メモリ容量・解像度・通信速度などITの世界は2のべき乗だらけなので、ちょっとした単位変換にも役立ちます。</p>



<h3 class="wp-block-heading"><span id="toc13">例2: KB・MB・GBの換算</span></h3>



<p>「3KBは何バイト？」のような単位変換も、左シフトで一発です。1KB = 2の10乗バイト、1MB = 2の20乗バイト、1GB = 2の30乗バイトなので、シフト量を変えるだけで換算できます。</p>



<pre class="wp-block-code"><code>=3 * BITLSHIFT(1, 10)</code></pre>



<p>結果は「3,072」（バイト）です。同じ要領で MB → バイト なら <code>=2 <em> BITLSHIFT(1, 20)</code>、GB → バイト なら <code>=1 </em> BITLSHIFT(1, 30)</code> のように使えます。</p>



<h3 class="wp-block-heading"><span id="toc14">例3: フラグ管理（権限ビットの設定）</span></h3>



<p>社員ごとの権限を「閲覧・編集・承認・管理」の4つで管理したいとき、各権限を1ビットずつに割り当てると、1セルで複数の権限を表現できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>権限</th><th>ビット位置</th><th>=BITLSHIFT(1, n)</th></tr></thead><tbody><tr><td>閲覧</td><td>0</td><td>1</td></tr><tr><td>編集</td><td>1</td><td>2</td></tr><tr><td>承認</td><td>2</td><td>4</td></tr><tr><td>管理</td><td>3</td><td>8</td></tr></tbody></table></figure>



<p>ある社員に「閲覧 + 編集 + 承認」の権限を持たせたい場合は、それぞれの値を BITOR で合算します。</p>



<pre class="wp-block-code"><code>=BITOR(BITLSHIFT(1, 0), BITLSHIFT(1, 1), BITLSHIFT(1, 2))</code></pre>



<p>結果は「7」（2進数: 0111）。この1つの数値で「閲覧・編集・承認OK／管理NG」を表現できます。データベースの権限管理で見かけるビットマスクの考え方と同じですよ。</p>



<h3 class="wp-block-heading"><span id="toc15">例4: 特定のビットだけ立てる・確認する</span></h3>



<p>BITLSHIFT関数は、<a href="https://mashukabu.com/excel-function-howto-use-bitand/">BITAND関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-bitor/">BITOR関数</a>と組み合わせて使うこともできます。</p>



<p>特定のビット位置にフラグを立てたい場合は、次のようにします。</p>



<pre class="wp-block-code"><code>=BITOR(A1, BITLSHIFT(1, 3))</code></pre>



<p>この数式は、A1の値の第3ビット（右から数えて4番目）を「1」に設定します。A1が「5」（2進数: 0101）なら、結果は「13」（2進数: 1101）です。</p>



<p>反対に、特定のビット位置の値を確認したい場合は、BITAND関数と組み合わせます。</p>



<pre class="wp-block-code"><code>=BITAND(A1, BITLSHIFT(1, 2))</code></pre>



<p>A1が「13」（2進数: 1101）なら、結果は「4」（2進数: 0100）です。第2ビットが「1」であることがわかりますね。0が返ってくれば「立っていない」、0以外が返ってくれば「立っている」と判定できます。</p>



<pre class="wp-block-code"><code>=IF(BITAND(A1, BITLSHIFT(1, 2))&gt;0, &quot;承認権あり&quot;, &quot;承認権なし&quot;)</code></pre>



<p>このように IF と組み合わせると、権限チェック表をそのまま運用に使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc16">例5: データ圧縮の考え方（複数値を1セルに詰める）</span></h3>



<p>「年（4ビット）+ 月（4ビット）+ 日（5ビット）」のように、小さな値を1つの数値にまとめることもできます。</p>



<pre class="wp-block-code"><code>=BITOR(BITLSHIFT(年, 9), BITLSHIFT(月, 5), 日)</code></pre>



<p>たとえば 年=12（2024年からの差分）、月=4、日=29 の場合は <code>=BITOR(BITLSHIFT(12, 9), BITLSHIFT(4, 5), 29)</code> で「6301」になります。これを「2024年4月29日」に復元するには BITAND と BITRSHIFT を使います。</p>



<figure class="wp-block-table"><table><thead><tr><th>取り出し</th><th>数式</th><th>結果</th></tr></thead><tbody><tr><td>年</td><td><code>=BITRSHIFT(6301, 9)</code></td><td>12</td></tr><tr><td>月</td><td><code>=BITAND(BITRSHIFT(6301, 5), 15)</code></td><td>4</td></tr><tr><td>日</td><td><code>=BITAND(6301, 31)</code></td><td>29</td></tr></tbody></table></figure>



<p>実務でここまでやる場面は多くありませんが、データベースのID設計・通信プロトコル・組み込み機器のレジスタ操作などでよく出てくる考え方です。「BITLSHIFTで詰めて、BITRSHIFTとBITANDで取り出す」がワンセットだと覚えておくと、ほかのツールに触れたときも応用が利きますよ。</p>



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



<p>BITLSHIFT関数で表示されるエラーと、その原因・対処法をまとめました。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>数値が0未満</td><td>0以上の整数を指定してください</td></tr><tr><td>数値が 2^48 − 1 より大きい</td><td>281,474,976,710,655 以下の値を指定してください</td></tr><tr><td>シフト量の絶対値が53を超えている</td><td>−53 から 53 の範囲で指定してください</td></tr><tr><td>シフト結果が 2^48 − 1 を超える</td><td>シフト量を小さくするか、元の数値を小さくしてください</td></tr></tbody></table></figure>



<p>特に多いのは「シフト結果がオーバーフローする」ケースです。<code>=BITLSHIFT(1000000, 30)</code> のように元の値が大きいときはシフト量を控えめにしましょう。</p>



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



<p>数値やシフト量に文字列を指定すると発生します。たとえば <code>=BITLSHIFT("abc", 2)</code> や、空白文字が混じったセルを参照しているときに起こります。セル参照先が数値かどうかを確認してみてください。文字列に見える数値はVALUE関数で数値に変換できますよ。</p>



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



<p>関数名のスペルミスで発生します。「BITSHIFT」「BIT_LSHIFT」など似た名前で書いていないかチェックしてみてください。正しくは BITLSHIFT（ビットエルシフト）です。</p>



<h2 class="wp-block-heading"><span id="toc21">BITRSHIFT関数やほかのビット演算関数との違い</span></h2>



<p>Excelにはビット演算に関連する関数がいくつかあります。それぞれの役割を整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数名</th><th>機能</th><th>使用例</th></tr></thead><tbody><tr><td>BITLSHIFT</td><td>ビットを左にシフト（値が大きくなる）</td><td>=BITLSHIFT(5, 2) → 20</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitrshift/">BITRSHIFT</a></td><td>ビットを右にシフト（値が小さくなる）</td><td>=BITRSHIFT(20, 2) → 5</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitand/">BITAND</a></td><td>2つの数値のビット単位AND（論理積）</td><td>=BITAND(5, 3) → 1</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitor/">BITOR</a></td><td>2つの数値のビット単位OR（論理和）</td><td>=BITOR(5, 3) → 7</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitxor/">BITXOR</a></td><td>2つの数値のビット単位XOR（排他的論理和）</td><td>=BITXOR(5, 3) → 6</td></tr></tbody></table></figure>



<p>BITLSHIFT と BITRSHIFT は逆の操作です。左シフトは値を大きく、右シフトは値を小さくします。覚え方は「Left（左）で Large（大きく）」ですね。</p>



<p>BITAND・BITOR・BITXOR は2つの数値のビットを比較する関数です。BITLSHIFTとは用途が異なりますが、組み合わせて使うことで柔軟なビット操作が可能になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc22">用途別の使い分けチャート</span></h3>



<p>「やりたいこと」から逆引きできるよう整理しました。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>使う関数</th></tr></thead><tbody><tr><td>値を2倍・4倍・8倍したい</td><td>BITLSHIFT</td></tr><tr><td>値を1/2・1/4・1/8したい</td><td>BITRSHIFT</td></tr><tr><td>特定のビットを立てたい</td><td>BITLSHIFT + BITOR</td></tr><tr><td>特定のビットを確認したい</td><td>BITLSHIFT + BITAND</td></tr><tr><td>特定のビットを反転したい</td><td>BITLSHIFT + BITXOR</td></tr><tr><td>複数の値を1セルにまとめたい</td><td>BITLSHIFT + BITOR</td></tr><tr><td>まとめた値を取り出したい</td><td>BITRSHIFT + BITAND</td></tr></tbody></table></figure>



<p>このチャートを見れば、「どの関数を組み合わせればよいか」が直感的にわかりますね。</p>



<h2 class="wp-block-heading"><span id="toc23">POWER関数と何が違う？</span></h2>



<p><code>=BITLSHIFT(1, 10)</code> と <code>=POWER(2, 10)</code> はどちらも結果が「1024」になります。では、どう使い分ければよいのでしょうか。</p>



<figure class="wp-block-table"><table><thead><tr><th>観点</th><th>BITLSHIFT</th><th>POWER</th></tr></thead><tbody><tr><td>計算対象</td><td>整数のビット演算</td><td>一般的なべき乗（小数・負数OK）</td></tr><tr><td>上限</td><td>2^48 − 1</td><td>Excelの数値上限（2^1023付近）</td></tr><tr><td>速度</td><td>ビット演算なので軽量</td><td>浮動小数点演算</td></tr><tr><td>用途</td><td>ビットマスク・フラグ管理</td><td>通常の計算・指数増加</td></tr></tbody></table></figure>



<p>ビットを意識した処理（フラグ・マスク・データ圧縮）には BITLSHIFT、純粋なべき乗計算（金利・指数関数など）には POWER、と覚えておけば迷いません。</p>



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



<p>この記事では、ExcelのBITLSHIFT関数について解説しました。</p>



<ul class="wp-block-list"><li>BITLSHIFT関数は、数値を指定ビット数だけ左にシフトする関数</li><li>左に1ビットシフトするごとに値が2倍になる</li><li>シフト量に負の値を指定すると右シフトになる</li><li>数値は 0 以上 2^48 − 1 以下、シフト量の絶対値は53以下</li><li>2のべき乗の一覧、KB・MB・GB の換算、フラグ管理、データ圧縮などに活用できる</li><li>BITAND・BITOR・BITRSHIFT と組み合わせれば、特定ビットの操作や復元が可能</li></ul>



<p>ビット演算はなじみが薄いかもしれませんが、仕組みさえ理解すればシンプルです。まずは <code>=BITLSHIFT(1, 3)</code> のようなかんたんな数式から試して、慣れてきたら BITOR と組み合わせたフラグ管理にチャレンジしてみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-bitlshift/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（排他的論理和）演算の仕組みを2進数の具体例でわかりやすく説明し、フラグの切り替えやデータ比較などの実務活用例も紹介。エラー対処法やBITAND・BITORとの違いもまとめています。]]></description>
										<content:encoded><![CDATA[
<p>Excelで2つの数値の「違い」だけをビット単位で取り出したいけれど、どうすればいいかわからない&#8230;そんな場面はありませんか？</p>



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



<p>この記事では、ExcelのBITXOR関数の使い方を基本から丁寧に解説します。構文や引数はもちろん、実務での活用例やエラー対処法まで網羅しているので、ぜひ最後まで読んでみてください。</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の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">BITXOR関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">数値を直接指定する方法</a></li><li><a href="#toc7" tabindex="0">セル参照で指定する方法</a></li><li><a href="#toc8" tabindex="0">同じ数値同士のXOR</a></li></ol></li><li><a href="#toc9" tabindex="0">BITXOR関数の実務活用例</a><ol><li><a href="#toc10" tabindex="0">活用例1: フラグのON/OFF切り替え（トグル）</a></li><li><a href="#toc11" tabindex="0">活用例2: 2つの値の差分チェック</a></li><li><a href="#toc12" tabindex="0">活用例3: 簡易的なデータの暗号化と復号</a></li></ol></li><li><a href="#toc13" tabindex="0">他のExcelビット演算関数との使い分け</a></li><li><a href="#toc14" tabindex="0">BITXOR関数のエラーと対処法</a><ol><li><a href="#toc15" tabindex="0">#NUM! エラー</a></li><li><a href="#toc16" tabindex="0">#VALUE! エラー</a></li></ol></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>BITXOR関数（ビット エクスクルーシブオア関数）は、2つの数値のビット単位のXOR演算（排他的論理和）を行う関数です。</p>



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



<p>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>つまり「2つの値が違うところだけを抜き出す」演算ですね。</p>



<p>BITXOR関数はExcel 2013以降で利用できます。お使いのバージョンが対応しているか確認しておきましょう。</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>引数は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>どちらの引数にも、0以上かつ(2^48)-1以下の整数を指定します。この範囲を超えると#NUM!エラーになるので注意してくださいね。</p>



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



<p>まずはシンプルな使い方から見ていきましょう。</p>



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



<p>セルに次のように入力します。</p>



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



<p>結果は <strong>9</strong> になります。</p>



<p>この計算を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>ビットが異なる桁（1桁目と4桁目）だけが1になっているのがポイントです。</p>



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



<p>A1セルに「13」、B1セルに「11」が入っている場合は、次のように書きます。</p>



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



<p>結果は <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>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="toc8">同じ数値同士のXOR</span></h3>



<p>BITXOR関数には面白い性質があります。同じ数値同士でXOR演算を行うと、結果は必ず <strong>0</strong> になります。</p>



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



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



<h2 class="wp-block-heading"><span id="toc9">BITXOR関数の実務活用例</span></h2>



<p>「XOR演算って実務で使うの？」と思った方もいるかもしれません。実は、フラグの切り替えやデータ比較で活躍するんです。</p>



<h3 class="wp-block-heading"><span id="toc10">活用例1: フラグのON/OFF切り替え（トグル）</span></h3>



<p>システムの設定をビットフラグで管理しているケースを考えてみましょう。</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>現在の設定値が「5」（= 0101）の場合、「通知ON」と「自動保存」がONの状態です。</p>



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



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



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



<p>もう一度同じ操作をすると、元に戻ります。</p>



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



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



<p>このように、XOR演算は「同じ値で2回XORすると元に戻る」性質があるので、フラグの切り替えにぴったりです。</p>



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



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



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



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



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



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



<p>結果のなかで「1」になっている桁が、値が異なる位置です。</p>



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



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



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



<p>暗号化:</p>



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



<p>結果は <strong>37</strong> です。元の値「42」が「37」に変換されました。</p>



<p>復号（同じキーで再度XOR）:</p>



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



<p>結果は <strong>42</strong> です。元の値に戻りましたね。</p>



<p>本格的な暗号化には専用のツールが必要ですが、社内で数値データをちょっと隠したいときに使えるテクニックです。</p>



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



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



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



<p>BITXOR関数で発生しやすいエラーをまとめました。</p>



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



<p>次のいずれかに該当すると#NUM!エラーになります。</p>



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



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



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



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



<p>引数に文字列を指定すると#VALUE!エラーになります。</p>



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



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



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



<p>この記事では、ExcelのBITXOR関数の使い方を解説しました。</p>



<ul class="wp-block-list"><li>BITXOR関数は2つの数値のビット単位のXOR演算（排他的論理和）を行う</li><li>引数は2つとも必須で、0以上の整数を指定する</li><li>同じ値で2回XORすると元に戻る性質がある</li><li>フラグの切り替え・データ比較・簡易暗号化など、実務でも活用できる</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></ul>



<p>ビット演算は一見むずかしそうに見えますが、BITXOR関数を使えばExcelで手軽に計算できます。まずは基本の使い方から試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-bitxor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのBITOR関数の使い方｜ビットOR演算の基本と実用例</title>
		<link>https://mashukabu.com/excel-function-howto-use-bitor/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-bitor/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 01 Nov 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[BITOR関数]]></category>
		<category><![CDATA[ビット演算]]></category>
		<category><![CDATA[フラグ管理]]></category>
		<category><![CDATA[論理和]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2922</guid>

					<description><![CDATA[ExcelのBITOR関数の使い方を初心者にもわかりやすく解説します。ビットOR演算の仕組みを2進数の具体例で図解し、フラグ結合・権限付与などの実務での活用例も紹介。BITAND・BITXORとの違いやエラー対処法もまとめています。]]></description>
										<content:encoded><![CDATA[
<p>Excelで複数のフラグや権限を1つの数値にまとめたいけれど、やり方がわからない&#8230;そんな経験はありませんか？</p>



<p>ビット演算は「なんだか難しそう」と感じる方も多いですよね。でも、権限の付与やフラグの追加など、BITOR関数が活躍する場面は意外とあるんです。</p>



<p>この記事では、ExcelのBITOR関数の使い方を基本から丁寧に解説します。構文や引数はもちろん、2進数での計算イメージや実務での活用例まで紹介しているので、ぜひ最後まで読んでみてください。</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">ExcelのBITOR関数とは？</a></li><li><a href="#toc2" tabindex="0">BITOR関数の構文と引数</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">ビットOR演算の仕組みを理解しよう</a><ol><li><a href="#toc6" tabindex="0">AND演算との違い</a></li><li><a href="#toc7" tabindex="0">2進数での計算を追いかけてみよう</a></li></ol></li><li><a href="#toc8" tabindex="0">BITOR関数の基本的な使い方</a><ol><li><a href="#toc9" tabindex="0">数値を直接指定する方法</a></li><li><a href="#toc10" tabindex="0">セル参照で指定する方法</a></li></ol></li><li><a href="#toc11" tabindex="0">BITOR関数の実務活用例</a><ol><li><a href="#toc12" tabindex="0">活用例1: 権限の付与</a></li><li><a href="#toc13" tabindex="0">活用例2: 複数フラグの結合</a></li></ol></li><li><a href="#toc14" tabindex="0">他のビット演算関数との使い分け</a></li><li><a href="#toc15" tabindex="0">BITOR関数のエラーと対処法</a><ol><li><a href="#toc16" tabindex="0">#NUM! エラー</a></li><li><a href="#toc17" tabindex="0">#VALUE! エラー</a></li></ol></li><li><a href="#toc18" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>BITOR関数（ビットオア関数）は、2つの数値のビット単位のOR演算（論理和）を行う関数です。</p>



<p>「ビット単位のOR演算」とは、2つの数値を2進数に変換して、同じ位置のビットのどちらか一方でも1であれば1を返す計算のことです。</p>



<p>たとえば、5と12のビットORを求める場合を見てみましょう。</p>



<ul class="wp-block-list"><li>5 を2進数にすると → 0101</li><li>12 を2進数にすると → 1100</li><li>OR演算の結果 → 1101（= 10進数の13）</li></ul>



<p>どちらかのビットが1になっている桁はすべて残る、というイメージですね。</p>



<p>BITOR関数はExcel 2013以降で利用できます。お使いのバージョンが対応しているか確認しておきましょう。</p>



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



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



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



<p>引数は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>OR演算を行う1つ目の数値（0以上の整数）</td></tr><tr><td>数値2</td><td>必須</td><td>OR演算を行う2つ目の数値（0以上の整数）</td></tr></tbody></table></figure>



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



<p>小数を指定した場合は、小数部分が切り捨てられて整数として処理されます。たとえば <code>=BITOR(5.8, 12.3)</code> は <code>=BITOR(5, 12)</code> と同じ結果になりますよ。</p>



<h2 class="wp-block-heading"><span id="toc5">ビットOR演算の仕組みを理解しよう</span></h2>



<p>BITOR関数をしっかり使いこなすには、OR演算の仕組みを理解しておくのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc6">AND演算との違い</span></h3>



<p><a href="https://mashukabu.com/excel-function-howto-use-bitand">BITAND関数</a>（ビットAND演算）は「両方が1のビットだけ残す」関数でした。一方、BITOR関数は「どちらか一方でも1なら残す」関数です。</p>



<p>この違いを表にまとめると、次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>ビットA</th><th>ビットB</th><th>AND（BITAND）</th><th>OR（BITOR）</th></tr></thead><tbody><tr><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td>0</td><td>1</td><td>0</td><td>1</td></tr><tr><td>1</td><td>0</td><td>0</td><td>1</td></tr><tr><td>1</td><td>1</td><td>1</td><td>1</td></tr></tbody></table></figure>



<p>ANDは「両方1のときだけ1」、ORは「どちらか1なら1」です。この違いさえ押さえておけば大丈夫ですよ。</p>



<h3 class="wp-block-heading"><span id="toc7">2進数での計算を追いかけてみよう</span></h3>



<p>もう1つ例を見てみましょう。9と6のビットORを計算します。</p>



<ul class="wp-block-list"><li>9 = 1001（2進数）</li><li>6 = 0110（2進数）</li><li>OR = 1111（2進数）= 15（10進数）</li></ul>



<p>各桁を1つずつ見ていくと、すべての桁でどちらかが1になっているため、結果はすべてのビットが1の「1111」です。</p>



<p>Excelで確認するなら、次のように入力します。</p>



<pre class="wp-block-code"><code>=BITOR(9, 6)</code></pre>



<p>結果は <strong>15</strong> になります。</p>



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



<p>実際にBITOR関数を使ってみましょう。</p>



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



<p>セルに次のように入力します。</p>



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



<p>結果は <strong>13</strong> になります。</p>



<p>計算の流れを2進数で確認すると、次のとおりです。</p>



<ul class="wp-block-list"><li>5 = 0101（2進数）</li><li>12 = 1100（2進数）</li><li>OR = 1101（2進数）= 13（10進数）</li></ul>



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



<p>A1セルに「13」、B1セルに「11」が入っている場合は、次のように書きます。</p>



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



<p>結果は <strong>15</strong> です。</p>



<ul class="wp-block-list"><li>13 = 1101（2進数）</li><li>11 = 1011（2進数）</li><li>OR = 1111（2進数）= 15（10進数）</li></ul>



<p>DEC2BIN関数（10進数を2進数に変換する関数）を使うと、途中の2進数変換も確認できますよ。</p>



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



<h2 class="wp-block-heading"><span id="toc11">BITOR関数の実務活用例</span></h2>



<p>「ビット演算って実務で使うの？」と思った方もいるかもしれません。BITOR関数は、フラグの追加や権限の付与で活躍するんです。</p>



<h3 class="wp-block-heading"><span id="toc12">活用例1: 権限の付与</span></h3>



<p>システムの権限をビットフラグで管理しているケースを考えてみましょう。</p>



<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</td></tr><tr><td>2桁目</td><td>編集</td><td>2</td></tr><tr><td>3桁目</td><td>削除</td><td>4</td></tr><tr><td>4桁目</td><td>管理</td><td>8</td></tr></tbody></table></figure>



<p>現在「閲覧」権限（= 1）だけを持つユーザーに「編集」権限（= 2）を追加するには、次の数式を使います。</p>



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



<p>結果は <strong>3</strong> です。2進数で見ると「01」OR「10」=「11」なので、閲覧と編集の両方のビットが立った状態になりますね。</p>



<p>IF関数と組み合わせて、条件に応じて権限を付与する数式も作れます。</p>



<pre class="wp-block-code"><code>=IF(C2=&quot;承認済&quot;, BITOR(A2, 2), A2)</code></pre>



<p>C2セルが「承認済」なら編集権限を追加し、そうでなければ現在の権限をそのまま返します。</p>



<h3 class="wp-block-heading"><span id="toc13">活用例2: 複数フラグの結合</span></h3>



<p>商品の属性をビットフラグで管理している場合にも使えます。</p>



<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</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>「セール対象」（= 1）と「送料無料」（= 2）を同時に設定するには、次のように書きます。</p>



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



<p>結果は <strong>3</strong> です。これで両方の属性フラグが立った状態になります。</p>



<p>3つ以上のフラグを結合したい場合は、BITOR関数をネスト（入れ子）にします。</p>



<pre class="wp-block-code"><code>=BITOR(BITOR(1, 2), 4)</code></pre>



<p>結果は <strong>7</strong> で、3つの属性すべてが有効になります。</p>



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



<p>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>BITOR</td><td>OR（論理和）</td><td>どちらか1のビットを残す</td><td>権限の付与・フラグ追加</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bitxor">BITXOR</a></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>BITOR関数は「フラグを追加する・権限を付与する」ときに使います。逆に、特定のフラグが立っているかチェックしたいときは<a href="https://mashukabu.com/excel-function-howto-use-bitand">BITAND関数</a>が便利です。フラグのON/OFFを切り替えたい場合は<a href="https://mashukabu.com/excel-function-howto-use-bitxor">BITXOR関数</a>を使いましょう。</p>



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



<p>BITOR関数で発生しやすいエラーをまとめました。</p>



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



<p>次のいずれかに該当すると#NUM!エラーになります。</p>



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



<p>対処法: 引数には0以上の整数を指定してください。小数が入る可能性がある場合は、INT関数で整数に変換しましょう。</p>



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



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



<p>引数に文字列を指定すると#VALUE!エラーになります。</p>



<p>対処法: セル参照の場合は、参照先が数値であることを確認しましょう。VALUE関数で数値に変換する方法もあります。</p>



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



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



<p>この記事では、ExcelのBITOR関数の使い方を解説しました。</p>



<ul class="wp-block-list"><li>BITOR関数は2つの数値のビット単位のOR演算（論理和）を行う</li><li>引数は2つとも必須で、0以上の整数を指定する</li><li>「どちらかのビットが1なら1を返す」のがOR演算のポイント</li><li>権限の付与やフラグの追加など、実務でも活用できる</li><li><a href="https://mashukabu.com/excel-function-howto-use-bitand">BITAND関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-bitxor">BITXOR関数</a>など、他のビット演算関数と組み合わせるとさらに便利</li></ul>



<p>ビット演算は一見むずかしそうに見えますが、BITOR関数を使えばExcelで手軽に計算できます。まずは基本の使い方から試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-bitor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのBITAND関数の使い方｜ビットAND演算の基本と実務活用</title>
		<link>https://mashukabu.com/excel-function-howto-use-bitand/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-bitand/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 31 Oct 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[BITAND関数]]></category>
		<category><![CDATA[ビット演算]]></category>
		<category><![CDATA[フラグ管理]]></category>
		<category><![CDATA[論理積]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2777</guid>

					<description><![CDATA[ExcelのBITAND関数の使い方を初心者向けに解説。構文・引数の詳細から、フラグ管理・権限チェック・データフィルタリングなどの実務活用例、よくあるエラーの対処法、BITOR・BITXORとの使い分けまで網羅しています。]]></description>
										<content:encoded><![CDATA[
<p>Excelで2つの数値をビット単位で比較したいけれど、やり方がわからない…そんな経験はありませんか？</p>



<p>ビット演算は「なんだか難しそう」と敬遠されがちですよね。でも、アクセス権のチェックやフラグ管理、複数条件の一括判定など、実務で役立つ場面は意外と多いんです。</p>



<p>この記事では、ExcelのBITAND関数の使い方を基本から丁寧に解説します。構文や引数はもちろん、実務での具体的な活用例、よくあるエラーの対処法、関連関数との使い分けまで網羅しているので、最後まで読んでみてくださいね。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのBITAND関数とは？</a></li><li><a href="#toc2" tabindex="0">BITAND関数の構文と引数</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">BITAND関数の基本的な使い方</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">BITAND関数の実務活用例</a><ol><li><a href="#toc9" tabindex="0">活用例1: アクセス権限のチェック</a></li><li><a href="#toc10" tabindex="0">活用例2: 複数フラグの一括チェック</a></li><li><a href="#toc11" tabindex="0">活用例3: データフィルタリングと件数集計</a></li><li><a href="#toc12" tabindex="0">活用例4: 偶数・奇数の判定</a></li></ol></li><li><a href="#toc13" tabindex="0">BITAND関数のよくあるエラーと対処法</a><ol><li><a href="#toc14" tabindex="0">#NUM! エラー</a></li><li><a href="#toc15" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc16" tabindex="0">#NAME? エラー</a></li><li><a href="#toc17" tabindex="0">結果がうまく合わないとき</a></li></ol></li><li><a href="#toc18" tabindex="0">他のビット演算関数との使い分け</a><ol><li><a href="#toc19" tabindex="0">BITAND と BITOR の使い分け</a></li><li><a href="#toc20" tabindex="0">BITAND と BITXOR の使い分け</a></li><li><a href="#toc21" tabindex="0">BITAND と AND関数の違い</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>BITAND関数（ビットアンド関数）は、Excelで2つの数値のビット単位のAND演算（論理積）を行うための関数です。</p>



<p>「ビット単位のAND演算」とは、2つの数値を2進数に変換して比較する計算です。同じ位置のビットがどちらも1のときだけ1を返し、それ以外は0になります。</p>



<p>たとえば、5と12のビットANDを求める場合を見てみましょう。</p>



<ul class="wp-block-list"><li>5 を2進数にすると → 0101</li><li>12 を2進数にすると → 1100</li><li>AND演算の結果 → 0100（= 10進数の4）</li></ul>



<p>両方のビットが1になっている桁だけが残る、というイメージですね。</p>



<p>BITAND関数はExcel 2013以降で利用できます。お使いのバージョンが対応しているか、確認しておきましょう。</p>



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



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



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



<p>引数は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>AND演算を行う1つ目の数値（0以上の整数）</td></tr><tr><td>数値2</td><td>必須</td><td>AND演算を行う2つ目の数値（0以上の整数）</td></tr></tbody></table></figure>



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



<p>48ビットというと大きく感じますが、10進数では281,474,976,710,655（約281兆）まで扱えるという意味です。実務でフラグ管理に使う範囲なら、まず気にしなくて大丈夫ですよ。</p>



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



<p>まずはシンプルな使い方から見ていきましょう。</p>



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



<p>セルに次のように入力します。</p>



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



<p>結果は <strong>4</strong> になります。</p>



<p>この計算を2進数で確認すると、次のとおりです。</p>



<ul class="wp-block-list"><li>5 = 0101（2進数）</li><li>12 = 1100（2進数）</li><li>AND = 0100（2進数）= 4（10進数）</li></ul>



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



<p>A1セルに「13」、B1セルに「11」が入っている場合は、次のように書きます。</p>



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



<p>結果は <strong>9</strong> です。</p>



<ul class="wp-block-list"><li>13 = 1101（2進数）</li><li>11 = 1011（2進数）</li><li>AND = 1001（2進数）= 9（10進数）</li></ul>



<p>DEC2BIN関数（10進数を2進数に変換する関数）を使うと、途中の2進数変換も確認できますよ。</p>



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



<p>慣れないうちは、計算用シートにDEC2BIN関数で2進数表記の列を並べておくと、結果を目で追いやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc8">BITAND関数の実務活用例</span></h2>



<p>「ビット演算って実務で使うの？」と思った方もいるかもしれません。実は、フラグ管理やアクセス権チェック、複数条件の一括判定などで活躍するんです。ここでは具体的な4つの例を見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc9">活用例1: アクセス権限のチェック</span></h3>



<p>たとえば、システムの権限をビットフラグで管理しているケースを考えてみましょう。</p>



<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</td></tr><tr><td>2桁目</td><td>編集</td><td>2</td></tr><tr><td>3桁目</td><td>削除</td><td>4</td></tr><tr><td>4桁目</td><td>管理</td><td>8</td></tr></tbody></table></figure>



<p>ユーザーの権限値が「7」の場合、2進数では「0111」です。つまり閲覧・編集・削除の権限を持っています。</p>



<p>このユーザーが「編集権限（= 2）」を持っているかを調べるには、次の数式を使います。</p>



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



<p>結果は <strong>2</strong> です。0より大きいので、編集権限があると判定できますね。</p>



<p>IF関数と組み合わせると、もっと分かりやすくなります。</p>



<pre class="wp-block-code"><code>=IF(BITAND(A2, 2) &gt; 0, &quot;編集可&quot;, &quot;編集不可&quot;)</code></pre>



<p>A2セルにユーザーの権限値を入れておけば、編集権限の有無を自動判定できますよ。</p>



<p>複数のユーザーの権限を一覧でチェックしたい場合は、こんな表を組み立てるのがおすすめです。</p>



<figure class="wp-block-table"><table><thead><tr><th>ユーザー</th><th>権限値</th><th>閲覧</th><th>編集</th><th>削除</th><th>管理</th></tr></thead><tbody><tr><td>山田</td><td>15</td><td>○</td><td>○</td><td>○</td><td>○</td></tr><tr><td>佐藤</td><td>3</td><td>○</td><td>○</td><td>&#8211;</td><td>&#8211;</td></tr><tr><td>鈴木</td><td>5</td><td>○</td><td>&#8211;</td><td>○</td><td>&#8211;</td></tr></tbody></table></figure>



<p>各セルには <code>=IF(BITAND($B2,1)>0,"○","-")</code> のように書きます。数値部分はビット位置に合わせて 1, 2, 4, 8 と切り替えてくださいね。アカウント管理表をExcelで運用しているチームでは、このパターンがけっこう重宝しますよ。</p>



<h3 class="wp-block-heading"><span id="toc10">活用例2: 複数フラグの一括チェック</span></h3>



<p>商品の属性をビットフラグで管理している場合にも使えます。</p>



<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</td></tr><tr><td>2桁目</td><td>送料無料</td><td>2</td></tr><tr><td>3桁目</td><td>新商品</td><td>4</td></tr><tr><td>4桁目</td><td>限定商品</td><td>8</td></tr></tbody></table></figure>



<p>商品コード「5」（= 0101）は「セール対象」かつ「新商品」です。</p>



<p>「セール対象かつ送料無料」（= 3）の商品を抽出するには、次のように書きます。</p>



<pre class="wp-block-code"><code>=IF(BITAND(A2, 3) = 3, &quot;対象&quot;, &quot;対象外&quot;)</code></pre>



<p>BITAND関数の結果がチェック値と一致すれば、すべてのフラグが立っていると判定できます。</p>



<p>ポイントは「<code>> 0</code>」と「<code>= チェック値</code>」の使い分けです。</p>



<ul class="wp-block-list"><li><code>BITAND(A2, 3) > 0</code> → セール対象 <strong>または</strong> 送料無料のどちらかが立っていればTRUE</li><li><code>BITAND(A2, 3) = 3</code> → セール対象 <strong>かつ</strong> 送料無料の両方が立っていればTRUE</li></ul>



<p>「いずれか1つでも該当」と「すべて該当」では条件が大きく変わるので、目的に合わせて選んでくださいね。</p>



<h3 class="wp-block-heading"><span id="toc11">活用例3: データフィルタリングと件数集計</span></h3>



<p>BITAND関数はSUMPRODUCT関数やSUM関数と組み合わせると、条件に合うデータの件数集計にも使えます。</p>



<p>たとえばA2:A100に商品の属性値が入っているとしましょう。「セール対象かつ新商品」（= 5）の商品件数を数える場合は、次のように書きます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((BITAND(A2:A100, 5) = 5) * 1)</code></pre>



<p>スピル対応のExcel（Microsoft 365、Excel 2021以降）なら、BITAND関数も配列に対応していて上の数式が自然に動きます。古いバージョンを使っている場合は、Ctrl+Shift+Enterで配列数式として確定してくださいね。</p>



<p>「特定の権限を持つユーザー数」「フラグが立っている案件件数」を出したい場面でも、同じ考え方で集計できますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">活用例4: 偶数・奇数の判定</span></h3>



<p>ちょっとした応用ですが、BITAND関数を使うと数値が偶数か奇数かを判定できます。最下位ビット（1の位）が1なら奇数、0なら偶数というルールを使うわけですね。</p>



<pre class="wp-block-code"><code>=IF(BITAND(A2, 1) = 1, &quot;奇数&quot;, &quot;偶数&quot;)</code></pre>



<p>ISODD関数（奇数判定）やMOD関数でも同じことはできます。それでも、BITAND関数の発想に慣れる練習として知っておくと便利ですよ。「ビットの1の位だけ取り出す」イメージをつかむのに役立ちます。</p>



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



<p>BITAND関数で発生しやすいエラーをまとめました。実務で困ったときの早見表として活用してください。</p>



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



<p>次のいずれかに該当すると#NUM!エラーになります。</p>



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



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



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



<p>外部システムからCSVで取り込んだデータでは、見た目は整数でも内部で小数になっているケースがあります。エラーが出たらまずINT関数でくるんで試してみてくださいね。</p>



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



<p>引数に文字列を指定すると#VALUE!エラーになります。空白セル参照や、見出し行を一緒に範囲指定してしまった場合に起きやすいエラーです。</p>



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



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



<p>数値のはずなのに#VALUE!が出る場合は、セル左上の緑の三角マークもチェックしてみてください。これは「文字列として保存された数値」の警告マークです。</p>



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



<p>関数名のスペルミスや、Excel 2010以前のバージョンで使ったときに#NAME?エラーになります。</p>



<p>対処法: 関数名が「BITAND」と正しく入力されているか確認してください。古いバージョンで使う必要がある場合は、AND関数（論理AND）と混同していないかも見直しましょう。BITAND関数はExcel 2013以降の機能です。</p>



<h3 class="wp-block-heading"><span id="toc17">結果がうまく合わないとき</span></h3>



<p>エラーは出ないけれど期待した結果にならない、という場合は次の3点をチェックしてみてください。</p>



<ol class="wp-block-list"><li>引数の値を本当に2進数でイメージできているか（DEC2BIN関数で確認すると確実）</li><li>比較対象の値が「すべて立っているか（= チェック値）」と「いずれか1つ以上立っているか（> 0）」のどちらを判定したいのか</li><li>ビット位置と桁の対応（1桁目=1、2桁目=2、3桁目=4、4桁目=8…）が合っているか</li></ol>



<p>特に3つ目は、フラグ管理の表を作るときに混乱しがちなポイントです。「ビット位置 → 値」の早見表を別シートに用意しておくと安心ですよ。</p>



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



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



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>演算</th><th>説明</th><th>使いどころ</th></tr></thead><tbody><tr><td>BITAND</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><a href="https://mashukabu.com/excel-function-howto-use-bitxor">BITXOR</a></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>



<h3 class="wp-block-heading"><span id="toc19">BITAND と BITOR の使い分け</span></h3>



<p>BITANDは「両方立っているか確認する」、BITORは「どちらかを立てる（追加する）」のが基本の考え方です。</p>



<p>たとえば、ユーザー権限値が「3（閲覧+編集）」のときに「削除権限（=4）」を追加したいなら、BITORで合成します。</p>



<pre class="wp-block-code"><code>=BITOR(3, 4)  → 7（閲覧+編集+削除）</code></pre>



<p>そのうえで「削除権限を持っているか」を確認するときにBITANDが活躍する、という流れですね。「足し算がBITOR、確認がBITAND」と覚えておくと混乱しません。</p>



<h3 class="wp-block-heading"><span id="toc20">BITAND と BITXOR の使い分け</span></h3>



<p>BITXORは「同じ位置のビットが違っていれば1、同じなら0」を返す関数です。フラグのON/OFFを切り替える（トグルする）ときに便利です。</p>



<pre class="wp-block-code"><code>=BITXOR(7, 2)  → 5（編集権限のビットだけ反転）</code></pre>



<p>「権限を一時的に剥奪する」「設定を切り替える」用途ならBITXOR、「権限が立っているか確認する」用途ならBITAND、と使い分けましょう。</p>



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



<p>名前が似ている <strong>AND関数</strong> と混同しないように注意してください。AND関数は引数の論理値（TRUE/FALSE）がすべてTRUEならTRUEを返すもので、ビット単位の演算は行いません。</p>



<ul class="wp-block-list"><li><code>=AND(TRUE, FALSE)</code> → FALSE（論理値の判定）</li><li><code>=BITAND(5, 12)</code> → 4（ビットごとの計算）</li></ul>



<p>「ビット単位で扱いたいときがBITAND、条件式の組み合わせを判定したいときがAND」と覚えておきましょう。</p>



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



<p>この記事では、ExcelのBITAND関数の使い方を解説しました。</p>



<ul class="wp-block-list"><li>BITAND関数は2つの数値のビット単位のAND演算（論理積）を行う関数</li><li>引数は2つとも必須で、0以上(2^48)-1以下の整数を指定する</li><li>アクセス権チェック・フラグ管理・データ集計・偶数奇数判定など、実務でも幅広く活用できる</li><li>#NUM!や#VALUE!エラーが出たら、INT関数やVALUE関数で型を整えるのがコツ</li><li><a href="https://mashukabu.com/excel-function-howto-use-bitor">BITOR</a>（フラグ追加）や<a href="https://mashukabu.com/excel-function-howto-use-bitxor">BITXOR</a>（フラグ切替）と組み合わせると、フラグ管理が一気に強力になる</li></ul>



<p>ビット演算は一見むずかしそうに見えますが、BITAND関数を使えばExcelで手軽に計算できます。まずは権限チェックや偶数・奇数判定など、身近な使い方から試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-bitand/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
