<?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/%E5%B7%A6%E3%82%B7%E3%83%95%E3%83%88/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:26:51 +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>左シフト &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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 class="wp-block-paragraph">「権限フラグの値（1, 2, 4, 8, 16…）を順番に自動生成したい&#8230;」「2の累乗をシンプルな数式で出したい&#8230;」</p>



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



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



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



<p class="wp-block-paragraph">この記事では、スプレッドシートの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-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">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 class="wp-block-paragraph">スプレッドシートのBITLSHIFT関数（ビットレフトシフト関数）は、指定した数値のビットを左方向に指定した桁数だけずらす関数です。結果は10進数の数値で返ります。</p>



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



<p class="wp-block-paragraph">たとえば、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 class="wp-block-paragraph">5 × 2 × 2 = 20 という計算になっていますね。「左に1桁シフト = 2倍」と覚えると感覚がつかみやすいですよ。</p>



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



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



<p class="wp-block-paragraph">第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 class="wp-block-paragraph">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 class="wp-block-paragraph">「シフト量が1増えるたびに結果が2倍になる」というルールが見えてきますね。<code>BITLSHIFT(値, n)</code> は <code>値 × 2^n</code> と同じ結果を返します。</p>



<p class="wp-block-paragraph">このルールから、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 class="wp-block-paragraph">この特徴を活かすと、ビットフラグ設計や権限管理がぐっと楽になりますよ。</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">BITLSHIFT関数のもっとも代表的な活用が、ビットフラグの位置を動的に生成する使い方です。</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>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 class="wp-block-paragraph">このとき、各権限の値（1, 2, 4, 8）を手で入力する代わりに、BITLSHIFTで生成すると将来権限が増えても拡張しやすくなりますよ。</p>



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



<p class="wp-block-paragraph">「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 class="wp-block-paragraph">権限名とビット位置の対応表だけ作っておけば、値は自動で算出できます。</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 class="wp-block-paragraph">新しい権限「ダウンロード」を追加する場合も、ビット位置「6」を入れるだけで値「64」が自動算出されますね。</p>



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



<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 class="wp-block-paragraph">ビット位置から値を生成できれば、BITOR関数で複数の権限を合成するのも自動化できます。</p>



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



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



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



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



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



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



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



<p class="wp-block-paragraph">これを 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 class="wp-block-paragraph">シフト量を10ずつ増やすだけで、KB→MB→GB→TBの段階が自動で出てきますね。換算表を作るときに便利な書き方です。</p>



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



<p class="wp-block-paragraph">「バイト単位のファイルサイズを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 class="wp-block-paragraph">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 class="wp-block-paragraph">BITLSHIFTを使うと、複数の小さな数値を1つの大きな数値にまとめて格納できます。色コード（RGB値）や日付の年月日コードなど、「複数の情報を1つの値で持ちたい」場面で活躍しますよ。</p>



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



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



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



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



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



<p class="wp-block-paragraph">逆に、まとめた数値から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 class="wp-block-paragraph">「右シフトで取り出したい位置を一番下に持ってくる → 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 class="wp-block-paragraph">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 class="wp-block-paragraph">実は、BITLSHIFTの第2引数に負の値を渡すと、BITRSHIFTと同じ結果になります。</p>



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



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



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



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



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



<p class="wp-block-paragraph">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 class="wp-block-paragraph">次のいずれかに当てはまると <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 class="wp-block-paragraph">対処法は、INT関数（小数を切り捨てて整数化する関数）で値を整数化し、シフト量も適切な範囲に収めることです。</p>



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">スプレッドシートには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 class="wp-block-paragraph">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 class="wp-block-paragraph">「設計はBITLSHIFT、運用はAND/OR/XOR」という流れを覚えておくと、業務でビット演算を使うときの全体像が見えやすくなりますよ。</p>



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



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