ここから本文です

ExcelのMODについて質問です。

アバター

ID非公開さん

2017/7/1321:14:19

ExcelのMODについて質問です。

任意の16進数をA列に入力するとB列にAのMOD18(16進数計算機だと%18)を表示する、というのを作っているのですが、時々計算機(http://www.ccn2.aitai.ne.jp/~keikun/16.html)と結果が異なってしまいます。

B列は行が5のとき
fx=IF(A5="","",DEC2HEX(MOD(HEX2DEC(A5),HEX2DEC(18))) …となっています。(IFと""を使っているのはA列に何も入力していないときにB列に0と表示させないため)

例えば、A5に16進数Ab8db76aを入力すると、B5には計算結果としてAと出ますが、前述の計算機で計算するとFFFFFFFAとのことで、結果が異なってしまっています。

16進数を10進数にしたりそれを再び戻したりしているのが原因かとも思ったのですが、B列をMOD(A5,18)に変えると#VALUE!となってしまって結果が出ません。

Excelを使い始めてまだあまり経っておらず、また進数やmodについての知識も浅いので自分がやっていることが正しいのかどうか、また何がダメなのかもよく分からず困っています。どう直せばいいのか教えてください。

補足計算機のURLがうまく貼れていませんでした。

http://www.ccn2.aitai.ne.jp/~keikun/16.html

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
50
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

gru********さん

リクエストマッチ

2017/7/1408:53:50

「符号付整数」の表現方法の違いです。Excelは10桁(40bit)で最上位が符号の扱いです。あなたが参考にしたサイトは8桁(32bit)で最上位が符号の扱いです。そのため、8桁の値で最上位がA〜Fの場合にExcelは正の数として扱うけどあなたが参考にしたサイトは負の数として扱うんです。

だから Ab8db76a はExcelでは2878191466で例のサイトでは-1416775830、全然違う値ですね。

アバター

質問した人からのコメント

2017/7/14 17:33:40

詳しい説明をしてくださり何が原因かを理解することができました。本当にありがとうございました!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる