【Excel】 進数変換とビットデータの解析

Excel

PLCなどでIOデータをログに取って解析するとき、16進数から10進数や2進数に変換したいときがあります。そんなときの変換・解析方法について紹介します。

例えば1ByteデータがD2と16進数で表示されているときに、以下のように変換・抽出しました。

  • 10進数へ変換
  • 2進数へ変換
  • 各ビットの抽出
  • 再度結合

関数で表すとこのようになります。

  • 16進数→10進数:HEX2DEC関数
  • 16進数→2進数:HEX2BIN関数
  • 抽出:RIGHT、LEFT、MID関数
  • 連結:CONCATENATE関数

BIN関数で2進数に変換したので、*bitは右から数えたときの順番になります。
連結するときは大きい方の4bitから書くので注意が必要です。

アナログデータなどでそのまま読みたい場合は10進数に変換して見やすくなりますし、IOなどのデジタルデータを扱う時は2進数に変えてビット単位で見た方が分かりやすくなります。

Wordデータを扱う場合も同様の考え方でデータを分解・解析できます。

最初は8bitの先頭に1が入る時で説明をしましたが、0が来る場合には注意が必要です。
例えば、6Bのようなデータを同様に分解するとこのようになります。

赤字で書いている部分が誤っている箇所です。
8bit目が0ですが、通常Excelでは上位側の0は表示されないのでその分ずれてしまいます。

扱う単位が決まっているため、TEXT関数を使って毎回8桁表示させるようにすることで解決できます。

この結果がこちらになります。
これで先頭に0が来ても正しく値を抽出することができます。

サンプルはこちら
【Excel】 サンプル公開

コメント

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