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

スポンサーリンク

Excelでビット演算を使いたいけれど、どの関数を使えばいいのかわからない。そんな経験はありませんか?

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

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

ExcelのBITLSHIFT関数とは?

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

読み方は「ビット レフト シフト」です。

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

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

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

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

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

基本構文

=BITLSHIFT(数値, シフト量)

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

引数の説明

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

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

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

BITLSHIFT関数の基本的な使い方

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

値を直接指定する方法

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

=BITLSHIFT(5, 2)

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

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

=BITLSHIFT(1, 3)

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

セル参照を使う方法

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

=BITLSHIFT(A1, B1)

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

BITLSHIFT関数の実践的な活用例

2のべき乗を計算する

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

=BITLSHIFT(1, 10)

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

この方法は POWER関数(=POWER(2,10))でも同じ結果が得られますが、ビット演算に慣れている方にはBITLSHIFT関数のほうが直感的でしょう。

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

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

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

=BITOR(A1, BITLSHIFT(1, 3))

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

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

=BITAND(A1, BITLSHIFT(1, 2))

A1が「13」(2進数: 1101)なら、結果は「4」(2進数: 0100)です。第2ビットが「1」であることがわかりますね。

このように、ビット演算関数を組み合わせれば、フラグ管理やデータのマスク処理などに活用できますよ。

よくあるエラーと対処法

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

#NUM! エラー

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

#VALUE! エラー

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

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

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 は逆の操作です。左シフトは値を大きく、右シフトは値を小さくします。覚え方は「Left(左)で Large(大きく)」ですね。

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

まとめ

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

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

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

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