ExcelのBITOR関数の使い方|ビットOR演算の基本と実用例

スポンサーリンク

Excelで複数のフラグや権限を1つの数値にまとめたいけれど、やり方がわからない…そんな経験はありませんか?

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

この記事では、ExcelのBITOR関数の使い方を基本から丁寧に解説します。構文や引数はもちろん、2進数での計算イメージや実務での活用例まで紹介しているので、ぜひ最後まで読んでみてください。

ExcelのBITOR関数とは?

BITOR関数(ビットオア関数)は、2つの数値のビット単位のOR演算(論理和)を行う関数です。

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

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

  • 5 を2進数にすると → 0101
  • 12 を2進数にすると → 1100
  • OR演算の結果 → 1101(= 10進数の13)

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

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

BITOR関数の構文と引数

基本構文

=BITOR(数値1, 数値2)

引数は2つとも必須です。省略するとエラーになります。

引数の詳細

引数必須/任意説明
数値1必須OR演算を行う1つ目の数値(0以上の整数)
数値2必須OR演算を行う2つ目の数値(0以上の整数)

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

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

ビットOR演算の仕組みを理解しよう

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

AND演算との違い

BITAND関数(ビットAND演算)は「両方が1のビットだけ残す」関数でした。一方、BITOR関数は「どちらか一方でも1なら残す」関数です。

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

ビットAビットBAND(BITAND)OR(BITOR)
0000
0101
1001
1111

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

2進数での計算を追いかけてみよう

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

  • 9 = 1001(2進数)
  • 6 = 0110(2進数)
  • OR = 1111(2進数)= 15(10進数)

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

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

=BITOR(9, 6)

結果は 15 になります。

BITOR関数の基本的な使い方

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

数値を直接指定する方法

セルに次のように入力します。

=BITOR(5, 12)

結果は 13 になります。

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

  • 5 = 0101(2進数)
  • 12 = 1100(2進数)
  • OR = 1101(2進数)= 13(10進数)

セル参照で指定する方法

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

=BITOR(A1, B1)

結果は 15 です。

  • 13 = 1101(2進数)
  • 11 = 1011(2進数)
  • OR = 1111(2進数)= 15(10進数)

DEC2BIN関数(10進数を2進数に変換する関数)を使うと、途中の2進数変換も確認できますよ。

=DEC2BIN(A1)  → "1101"
=DEC2BIN(B1)  → "1011"

BITOR関数の実務活用例

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

活用例1: 権限の付与

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

ビット位置権限
1桁目閲覧1
2桁目編集2
3桁目削除4
4桁目管理8

現在「閲覧」権限(= 1)だけを持つユーザーに「編集」権限(= 2)を追加するには、次の数式を使います。

=BITOR(1, 2)

結果は 3 です。2進数で見ると「01」OR「10」=「11」なので、閲覧と編集の両方のビットが立った状態になりますね。

IF関数と組み合わせて、条件に応じて権限を付与する数式も作れます。

=IF(C2="承認済", BITOR(A2, 2), A2)

C2セルが「承認済」なら編集権限を追加し、そうでなければ現在の権限をそのまま返します。

活用例2: 複数フラグの結合

商品の属性をビットフラグで管理している場合にも使えます。

ビット属性
1桁目セール対象1
2桁目送料無料2
3桁目新商品4

「セール対象」(= 1)と「送料無料」(= 2)を同時に設定するには、次のように書きます。

=BITOR(1, 2)

結果は 3 です。これで両方の属性フラグが立った状態になります。

3つ以上のフラグを結合したい場合は、BITOR関数をネスト(入れ子)にします。

=BITOR(BITOR(1, 2), 4)

結果は 7 で、3つの属性すべてが有効になります。

他のビット演算関数との使い分け

Excelにはビット演算関数がいくつか用意されています。場面に応じて使い分けましょう。

関数演算説明使いどころ
BITANDAND(論理積)両方1のビットだけ残す権限チェック・フラグ抽出
BITOROR(論理和)どちらか1のビットを残す権限の付与・フラグ追加
BITXORXOR(排他的論理和)異なるビットだけ残すフラグの切り替え(トグル)
BITLSHIFT左シフトビットを左にずらす値の2倍・4倍計算
BITRSHIFT右シフトビットを右にずらす値の半分計算

BITOR関数は「フラグを追加する・権限を付与する」ときに使います。逆に、特定のフラグが立っているかチェックしたいときはBITAND関数が便利です。フラグのON/OFFを切り替えたい場合はBITXOR関数を使いましょう。

BITOR関数のエラーと対処法

BITOR関数で発生しやすいエラーをまとめました。

#NUM! エラー

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

  • 引数に負の数を指定した場合
  • 引数に(2^48)-1(= 281,474,976,710,655)を超える値を指定した場合

対処法: 引数には0以上の整数を指定してください。小数が入る可能性がある場合は、INT関数で整数に変換しましょう。

=BITOR(INT(A1), INT(B1))

#VALUE! エラー

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

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

=BITOR(VALUE(A1), VALUE(B1))

まとめ

この記事では、ExcelのBITOR関数の使い方を解説しました。

  • BITOR関数は2つの数値のビット単位のOR演算(論理和)を行う
  • 引数は2つとも必須で、0以上の整数を指定する
  • 「どちらかのビットが1なら1を返す」のがOR演算のポイント
  • 権限の付与やフラグの追加など、実務でも活用できる
  • BITAND関数BITXOR関数など、他のビット演算関数と組み合わせるとさらに便利

ビット演算は一見むずかしそうに見えますが、BITOR関数を使えばExcelで手軽に計算できます。まずは基本の使い方から試してみてくださいね。

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