16進数を分割して1ビットごと別々なセルに入れる Excel

Excel

はじめに

16進数の値を入力してビット入れ替えをしたかったので、16進数を分割して1ビットごと別々なセルに入れる式を作りました。

使い方

2行目に16進数の値を入れると3行目に10進数の値が表示され4行目に2進数の値が表示されます。

作り方

3行目はHEX2DEC関数を使って16進数を10進数に変換しているだけです。

4行目は

=MAKEARRAY(1, 4, LAMBDA(x,y,BITAND(BITRSHIFT(B3,4-y),1)))

という式になっています。

まず、BITRSHIFT関数で4ビット目、3ビット目、2ビット目を1ビット目にシフトさせます。

そしてBITAND関数で、1ビット目以外を0にマスクします。

それをLAMBDA関数にして、MAKEARRAY関数で4,3,2,1ビットを同時に計算しています。

MAKEARRAY関数を使用しなくても、直接数値を入れれば同じことができますが、式をコピーしたときにシフト量を手で変更する必要があります。

MAKEARRAY関数を使用すれば、4ビット目にあたるセルにこの関数をコピーすれば手修正なしに計算してくれます。

まとめ

16進数を分割して1ビットごと別々なセルに入れる式についてまとめました。

コメント

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