Excel

【Excel】BITAND関数の使い方|2つの数値に対してビットごとのAND演算を行う方法を解説

Excelでビット演算(論理演算)を行いたいときに便利なのが、BITAND関数です。
2つの数値の2進数表現に対してAND演算
を行い、論理的に共通するビットだけを抽出できます。

この記事では、BITAND関数の基本的な使い方から、計算例、実務での応用、注意点まで丁寧に解説します。


1. BITAND関数とは?

BITAND関数は、2つの整数を**ビットごとにAND演算(論理積)**し、その結果を10進数で返すExcel関数です。

AND演算とは:

  • 両方のビットが 1 のときのみ結果が 1

  • それ以外(0と1、1と0、0と0)の場合は 0


2. 構文と引数の説明

=BITAND(数値1, 数値2)
引数 内容
数値1 0 以上の整数(10進数)
数値2 0 以上の整数(10進数)
  • 両方とも 非負の整数(0以上) に限ります

  • 小数・負数は使用できません


3. 基本的な使い方と計算例

■ 例:BITAND(6, 3)

  1. 6(10進数)→ 0110(2進数)

  2. 3(10進数)→ 0011(2進数)

  3. AND演算:

0110
& 0011
= 0010 2(10進数)

結果:2


■ 実用例

=BITAND(13, 7)
  • 13 = 1101

  • 7 = 0111

  • 結果 → 0101 = 5


4. ビット演算の基本(ANDとは?)

ビット1 ビット2 AND結果
0 0 0
0 1 0
1 0 0
1 1 1

両方が1のときだけ「1」になる


5. 応用テクニック

● フラグチェック(ビットマスク)

例えば、アクセス権限などをビットで管理している場合:

ユーザー権限 意味
1 読み取り権限
2 書き込み権限
4 実行権限

→ 権限「読み取り+実行」= 1 + 4 = 5

=IF(BITAND(ユーザー値, 4) > 0, "実行可", "実行不可")

→ 実行権限を持っているかどうかを判定


● ビットフラグの共通項を判定

=IF(BITAND(A1, A2) > 0, "一致あり", "一致なし")

→ 2つのビット値に共通する要素があるかを判定できる


6. よくあるエラーと対処法

エラー・問題 原因 解決策
#NUM! 数値が負数または小数 正の整数を使用する
#VALUE! 引数が数値でない、または文字列になっている セルに数値のみを入力する
結果が0になる 共通するビットが1つもない 正常動作、0は「共通ビットなし」の意味

7. まとめ

項目 内容
関数名 BITAND(ビットアンド)
主な用途 2つの整数の**ビットごとのAND演算(論理積)**を計算
戻り値 AND演算の結果を10進数で返す
注意点 両方の引数は0以上の整数に限る
応用例 フラグチェック、権限マスク、ハードウェア制御など

✔ 補足:他のビット演算関数との比較

関数名 内容
BITAND ビットごとのAND演算(論理積)
BITOR ビットごとのOR演算(論理和)
BITXOR ビットごとのXOR演算(排他的論理和)
BITLSHIFT 指定ビット数だけ左シフト(2の累乗倍)
BITRSHIFT 指定ビット数だけ右シフト(割る操作)

BITAND関数は、ITや電子回路、ゲーム設計などのシステム開発分野で活躍する関数ですが、
Excelを使ったフラグ管理やデータチェックにも応用可能です。

論理演算の知識と組み合わせて、ぜひ使いこなしてみてください!