• ベストアンサー

エクセル DEC2BIN 範囲外数値の演算

エクセルの2進数変換関数の「DEC2BIN」について、 -32768から32767の範囲の数値を符号付の16bitへ変換したく、 調べたところDEC2BIN関数にたどり着いたのですが、 -512から511の範囲外では、使用できず、エラーが返ってきます。 何か良い解決策は、ないでしょうか? 初めての質問となりますが、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.5

#3,4です。 =RIGHT("0000000000000000"&DEC2BIN(INT(A1/256),8)&DEC2BIN(MOD(A1,256),8),16) でどうでしよう。

minichan_xxxx
質問者

お礼

連絡が遅くなり申し訳ございません。 無事、okormazd様の方法で解決致しました。 8bit単位の処理なんて、全くもって見当がつきませんでした。 ほんと、関数やマクロを巧みに使い、思い通りの動作をさす方に感動します。 今後も他の方の参考になる関数となると思います。 ご回答、有難うございました。

その他の回答 (4)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.4

#3です。 ごめんなさい。不備がありました。 修正しないとダメですね。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

=RIGHT("0000000000000000"&DEC2BIN(INT(A1/256))&DEC2BIN(MOD(A1,256)),16) で、 どうでしょうね。

回答No.2

酔っぱらいクロメートです。じゃなかった。 酔っているのは間違いないです。。。。 符号の処理がわかりませんが =DEC2BIN(A1/256)&TEXT(DEC2BIN(MOD(A1,256)),"00000000") とすると解決またはヒントになりませんか?

minichan_xxxx
質問者

お礼

連絡が遅くなり申し訳ございません。 無事、okormazd様の方法で解決致しました。 8bit単位の処理なんて、全くもって見当がつきませんでした。 ご回答、有難うございました。

  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.1

最初に、DEC2HEXで16進数に変換して、その結果から1桁ずつHEX2BINで2進数に変換する。 変換された4つの2進数を文字列で繋げば、16ビットの2進数になる。

minichan_xxxx
質問者

お礼

連絡が遅くなり申し訳ございません。 無事、okormazd様の方法で解決致しました。 ご回答、有難うございました。

関連するQ&A