この記事では、エクセルにて2進数から16進数へ、また16進数から2進数へ変換する方法について解説していきます。
エクセルでセルに入力された文字を進数変換するには
・変換する2進数(または16進数)を入力したセルを指定する
・変換するための数式を、結果を表示したいセルに入力する
という方法になります
それぞれの方法について、実際のサンプルを用いて見ていきましょう。
エクセルにて2進数から16進数を変換する方法【bin2hex:10桁以上も】
それでは以下でエクセルにて2進数から16進数を変換する方法について確認していきます。
B2セルに変換したい数値を入力します。今回は8桁の数値で[11010101]と入力しました。
次にB3セルを選択して、2進数から16進数へ変換するための関数[BIN2HEX(数値, [桁数])]を入力します。(binary to hexadecimalという意味です)
図にある通り、2進数を16進数に変換します。
この関数の桁数の部分は略すことが可能ですが、数式の結果にある通りをセルに表します。ただし、頭2桁のゼロ2つは、セルの表示方式で指示しないと表示されません。
豆知識として、2進数を16進数に変換すると桁数が4分の1になります。2進数の4桁で16進数が1桁分なので、それを念頭において入力すると良いと思われます
10桁以上の処理方法
さて、エクセルで2進数の10桁[1111111111]を16進数に変換したい場合なのですが、先程の関数[BIN2HEX]を使用すると正しい答えが出ません。
エクセルの数値として扱える2進数は、指定できる桁数が制限されているため難しいのです。整数として表せる数値は9桁で、頭の1桁分が記号などに使用されているため、10 桁以上の 2 進数を正確に 16 進数に変換することは少し難しいようです。
ですが、「どうしても10桁以上の2進数を16進数に変換したい!!」となった場合には、以下手段をおすすめします。
2進数を桁小さい方から4桁ずつ入力して、それぞれのセルを16進数変換した後、結果を文字変換したのち、値をそれぞれ結びつければ簡易的な回答が出るかと思います。
エクセルにて16進数から2進数を変換する方法【hex2bin:10桁以上も】
次は、エクセルにて16進数から2進数を変換する方法について確認していきます。
最初にB2セルに変換したい数値を入力します。今回は[0FF]と入力しました。
次にB3セルを選択して、16進数から2進数へ変換するための関数 [HEX2BIN(数値, [桁数])]を入力します。(hexadecimal to binaryという意味です)
この関数の桁数の部分も略すことが可能ですが、16進数を2進数に変換するさいに、前に述べました『エクセルの数値として扱える2進数は、指定できる桁数が制限されているため難しい』こと、『整数として表せる数値は9桁で、頭の1桁分が記号などに使用されている』ことから、入力限界数は『9』になるかと思います。
[111111111]というように1が9こ並ぶ2進数は、10進数で511といわれていて、512以上はできないといわれています。そこがエクセルの関数で求められる通常の限界値だと思ってください。
しかし無理をおしてでも、エクセルを使って16進数10桁を2進数に変換したい場合はどうするのか、ということですが、先程の関数[BIN2HEX]で表した通り、16進数1桁を2進数4桁として換算していけば良いです。
このように16進数の10桁[89AF7C3B15]を、1セル1文字で入力して、それぞれ2進数に変換していきます。
ここの2進数の値を&などであわせまして、少々長いですが[1000100110101111011111000011101100010101]という40桁の値が求められます。変換したいデータにそって、いろいろ試してしてみてください!
エクセルにて2進数と16進数を変換する方法は、bin2hexやhex2binの便利な関数を使いましょう!
まとめ
この記事では、エクセルにて2進数と16進数を関数を使用して変換する方法について解説しました。
エクセルでのさまざまな処理を理解し、業務に役立てていきましょう。