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

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>BITAND &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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 class="wp-block-paragraph">「ユーザーIDごとに付与された権限フラグの数値から、編集権限を持っている人だけを抽出したい&#8230;」</p>



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



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



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



<p class="wp-block-paragraph">この記事では、スプレッドシートの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-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">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 class="wp-block-paragraph">BITAND関数（ビットアンド関数）は、2つの数値をビット単位でAND演算（論理積）し、結果を10進数の数値で返す関数です。</p>



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



<p class="wp-block-paragraph">たとえば、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 class="wp-block-paragraph">両方のビットが1になっている桁だけが残るイメージですね。</p>



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



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>値1</td><td>必須</td><td>AND演算を行う1つ目の数値（0以上の整数）</td></tr><tr><td>値2</td><td>必須</td><td>AND演算を行う2つ目の数値（0以上の整数）</td></tr></tbody></table></figure>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>Excel側で動かしていた数式と互換性があるため、ExcelファイルをGoogleスプレッドシートで開いた場合でもそのまま動作します。逆にスプレッドシートで作った数式をExcelで開いても問題ありませんよ。</p></blockquote>



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">「両方とも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>



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



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



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



<p class="wp-block-paragraph">結果は「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 class="wp-block-paragraph">結果は「9」です。<code>1101</code>と<code>1011</code>のAND演算で<code>1001</code>（= 9）になります。</p>



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">結果が0より大きければ編集権限ありと判定できますよ。</p>



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



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



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



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



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



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



<p class="wp-block-paragraph">ユーザーの権限値が「7」の場合、2進数では<code>0111</code>です。閲覧・編集・削除の3つの権限を持っていることになりますね。</p>



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



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



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



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



<p class="wp-block-paragraph">IF関数と組み合わせると、もっと分かりやすくなります。</p>



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



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



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



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



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



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



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



<p class="wp-block-paragraph">「セール対象かつ送料無料」のように、複数のフラグが同時に立っているかを判定する場面でも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 class="wp-block-paragraph">商品コード「5」（= <code>0101</code>）はセール対象かつ新商品、商品コード「11」（= <code>1011</code>）はセール対象・送料無料・限定品です。</p>



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



<p class="wp-block-paragraph">「セール対象かつ送料無料」（= 値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 class="wp-block-paragraph">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 class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-bitand-function/05_result_bitand-flags.png/">_images/spreadsheet-bitand-function/05_result_bitand-flags.png</a></p>



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">たとえば「7」は4+2+1で読・書・実行すべて、「5」は4+1で読・実行のみを意味します。</p>



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">MID関数で取り出した値は文字列なので、VALUE関数で数値に変換してからBITANDに渡している点がポイントです。</p>



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">対処法は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 class="wp-block-paragraph">権限値の入力が信頼できない場合は、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 class="wp-block-paragraph">スプレッドシートには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 class="wp-block-paragraph">BITANDは「特定のビットが立っているか確認する」ときに使います。フラグを追加したいときはBITOR、フラグのON/OFFを切り替えたいときはBITXORが便利ですよ。</p>



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">ビット演算は一見難しそうに見えますが、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>
	</channel>
</rss>
