エクセル(excel)でパリティ計算する方法(マクロ無しで)

この記事は約3分で読めます。
デミオ
デミオ
どうも!
デミオです!

ゆたかな日々にお越しいただき、ありがとうございます!

(2021/05/29投稿 2021/05/29更新)

今回は
エクセル(excel)でパリティ計算する方法(マクロ無しで)
について書きました
スポンサーリンク

ぜひ最後まで読んでください(^^)

エクセル(excel)でパリティ計算する方法(マクロ無しで)

Yahoo!知恵袋でこんな質問を見つけました。

Excelで31bitデータのパリティを求めたいのですが
どのような関数の組み合わせでできますか?

Excelで31bitデータのパリティを求めたいのですがどのような関数の組み合わせでできますか? - 1つのセルに1を31個並べた数値は作... - Yahoo!知恵袋
Excelで31bitデータのパリティを求めたいのですがどのような関数の組み合わせでできますか? 1つのセルに1を31個並べた数値は作れませんので、A1をMSBとし、A2からA32まで1,0のビットパターンが並んでいると仮定。A1に入れる数式は=MOD(COUNTIF(A2:A32,0),2)

まあここにたどり着いた方には詳しい説明は不要と思いますが。

パリティ計算とは
データを転送するときとかにデータが壊れてないかのチェックのために、
2進数の1の数を数えて、その数が偶数か奇数かを調べて、帳尻を合わせる、というもの。

偶数パリティの場合は、1の数が偶数だったら、偶数パリティビットが0になります。
奇数パリティビットの場合は、、1の数が奇数だったら、奇数パリティビットが0になります。

偶数パリティの場合は、パリティビット付きのデータ内の1の数が必ず偶数になる。
奇数パリティの場合は、パリティビット付きのデータ内の1の数が必ず奇数になる。
とも言えます

というわけでエクセル作ってみました。

EXCELパリティ計算

ファイル落とせない方のためにいくつか数式書いておきます。

A2の16進数(00~7F)を2進数8桁に変換(B2セルに)
=HEX2BIN(MID(A2,1,2),8)

B2セルの2進数を7ビット~1ビット目まで1ビットずつ取り出す(C2~I2に入力)
=MID($B2,2,1)
=MID($B2,3,1)
=MID($B2,4,1)
=MID($B2,5,1)
=MID($B2,6,1)
=MID($B2,7,1)
=MID($B2,8,1)

偶数パリティビット計算 (AL2に入力)
=MOD(COUNTIF(C2:I2,1),2)

奇数パリティビット計算(AM2に入力)
=MOD(MOD(COUNTIF(C2:I2,1),2)+1,2)

偶数パリティつき16進数
=BIN2HEX(CONCATENATE(AL2,MID(B2,2,7)))

奇数パリティつき16進数
=BIN2HEX(CONCATENATE(AM2,MID(B2,2,7)))

エクセル(excel)でパリティ計算する方法(マクロ無しで)に関する感想

エクセルは16進数→2進数への変換が8桁までしかできないみたいで、31ビットの計算のためにセル分けたりしなきゃいけなくて大変でした。。

あとはセル内の1の数を数える、というのがエクセルの計算式だけではできず、いちいちセルを分割しなきゃいけないのもなかなか大変でした。

他にもオススメの記事があるので、そちらもぜひ読んでみてください!

エクセル(Excel)2010,2016で色フィルターが出てこない/できない/かからない原因は?
どうも!デミオです!今日はゆたかな日々にお越しいただき、ありがとうございます!今回はについて書きましたぜひ最後まで読んでください(^^)エクセルの色フィルター、セルを結合してる時にもフィルターするのに使えて...
エクセル(excel)でパリティ計算する方法(マクロ無しで)
どうも!デミオです!ゆたかな日々にお越しいただき、ありがとうございます!今回は について書きましたぜひ最後まで読んでください(^^)Yahoo!知恵袋でこんな質問を見つけました。Excelで31bit...
エクセル(Excel)でタブが動かない/移動できない原因と解決方法
どうも!デミオです!ゆたかな日々にお越しいただき、ありがとうございます!今回は について書きましたExcel を使っていて結構ハマること多いですよね今回は Excel で tab キーを押すとセルを右に移動でき...

まとめ ~エクセル(excel)でパリティ計算する方法(マクロ無しで)~

デミオ
デミオ
いかがでしたか?

それでは、内容をまとめます。

エクセル(excel)でパリティ計算する方法(マクロ無しで)~まとめ~

  • エクセルは16進数→2進数への変換が8桁までしかできない
  • セル内の1の数を数える、というのがエクセルの計算式だけではできず、いちいちセルを分割しなきゃいけないのもなかなか大変

以上で
エクセル(excel)でパリティ計算する方法(マクロ無しで)
についてのまとめを終わります。

最後まで読んでいただき、ありがとうございました(^^)

スポンサーリンク

コメント

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