ExcelのBITRSHIFT関数の使い方|ビット右シフトの基本と実用例

スポンサーリンク

Excelでビットの右シフトを使いたいけれど、どの関数を選べばいいのか迷っていませんか?

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

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

ExcelのBITRSHIFT関数とは?

BITRSHIFT関数は、数値を2進数(ビット)に変換し、指定したビット数だけ右にシフトした結果を10進数で返す関数です。

読み方は「ビット ライト シフト」です。「Right(右)」の「R」と覚えておきましょう。

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

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

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

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

BITRSHIFT関数の書き方(構文と引数)

基本構文

=BITRSHIFT(数値, シフト量)

引数は2つで、どちらも必須です。

引数の説明

引数必須/省略可説明
数値必須ビットを右にシフトしたい10進数の整数を指定します。0 以上 281,474,976,710,655(2の48乗 – 1)以下の範囲で指定します。
シフト量必須右にシフトするビット数を整数で指定します。絶対値が53以下である必要があります。

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

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

BITRSHIFT関数の基本的な使い方

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

値を直接指定する方法

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

=BITRSHIFT(20, 2)

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

もうひとつ試してみましょう。

=BITRSHIFT(8, 3)

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

セル参照を使う方法

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

=BITRSHIFT(A1, B1)

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

BITRSHIFT関数の実践的な活用例

2のべき乗で割り算する

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

=BITRSHIFT(1024, 4)

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

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

ほかのビット演算関数と組み合わせる

BITRSHIFT関数は、BITAND関数BITOR関数と組み合わせて使うこともできます。

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

=BITAND(BITRSHIFT(A1, 4), 15)

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

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

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

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

よくあるエラーと対処法

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

#NUM! エラー

原因対処法
数値が0未満0以上の整数を指定してください
数値が 2^48 – 1 より大きい281,474,976,710,655 以下の値を指定してください
シフト量の絶対値が53を超えている-53 から 53 の範囲で指定してください

数値の範囲は BITLSHIFT関数と共通です。48ビット(約281兆)が上限なので、通常の業務データなら問題ありませんよ。

#VALUE! エラー

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

BITLSHIFT関数やほかのビット演算関数との違い

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

関数名機能使用例
BITLSHIFTビットを左にシフト(値が大きくなる)=BITLSHIFT(5, 2) → 20
BITRSHIFTビットを右にシフト(値が小さくなる)=BITRSHIFT(20, 2) → 5
BITAND2つの数値のビット単位AND(論理積)=BITAND(5, 3) → 1
BITOR2つの数値のビット単位OR(論理和)=BITOR(5, 3) → 7
BITXOR2つの数値のビット単位XOR(排他的論理和)=BITXOR(5, 3) → 6

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

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

まとめ

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

  • BITRSHIFT関数は、数値を指定ビット数だけ右にシフトする関数
  • 右に1ビットシフトするごとに値が2分の1になる
  • シフト量に負の値を指定すると左シフトになる
  • 数値は 0 以上 2^48 – 1 以下、シフト量の絶対値は53以下
  • BITAND関数やBITOR関数と組み合わせれば、特定ビットの取り出しにも活用できる

ビット演算はなじみが薄いかもしれませんが、仕組みさえ理解すればシンプルです。まずは =BITRSHIFT(20, 2) のようなかんたんな数式から試してみてくださいね。

タイトルとURLをコピーしました