• ベストアンサー

EXCELで10進数表記をBCD表示にしたい

あるソフトのCSVデータがあり、 その中に4664という数値があります。 実際この数値をBCDデータの1234と変換したいです。 変換後のデータは0000~9999までの4桁で、 元データもその範囲外のデータはありません。 関数を探しても、9桁以上のものは変換できないようです。 A1セルの数値をE10セルに表示できる方法を教えてください 変換途中で、他のセルで2進数に変換して、とかでもいいです。 マクロより、単に関数がいいです。 宜しくお願いします。

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

  • ベストアンサー
  • acha51
  • ベストアンサー率41% (436/1042)
回答No.2

E10セルに=DEC2HEX(A1, 4) と入力します ちなみに4664は1238ではないでしょうか? 関数のヘルプです 10 進数を 16 進数に変換します。 この関数が使用できず、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。 その方法は? [ツール] メニューの [アドイン] をクリックします。[アドイン] の一覧の [分析ツール] チェック ボックスをオンにし、[OK] をクリックします。必要に応じて、セットアップ プログラムで表示される手順に従って操作します。 書式 DEC2HEX(数値,桁数) 数値 変換する 10 進の整数を指定します。数値に負の数を指定すると、桁数は無視され、10 桁 (40 ビット) の 16 進数が返されます。16 進数の最上位のビットは符号を表し、残りの 39 ビットは数値の大きさを表します。負の数は 2 の補数を使って表します。 桁数 16 進表記するときに使用する文字数 (桁数) を指定します。桁数を省略すると、必要最小限の桁数で結果が返されます。桁数を指定することによって、変換結果の先頭に 0 (ゼロ) を表示することができます。 解説 •数値 < -549,755,813,888 または数値 > 549,755,813,887 の場合、エラー値 #NUM! が返されます。 •数値に数値以外の値を指定すると、エラー値 #VALUE! が返されます。 •計算結果の桁数が指定した桁数の値よりも大きくなる場合、エラー値 #NUM! が返されます。 •桁数に整数以外の値を指定すると、小数点以下は切り捨てられます。 •桁数に数値以外の値を指定すると、エラー値 #VALUE! が返されます。 •桁数に負の数を指定すると、エラー値 #VALUE! が返されます。 使用例 使用例を新規のワークシートにコピーすると、計算結果を確認できます。 その方法は? 数式 説明 (計算結果) =DEC2HEX(100, 4) 10 進数の 100 を 4 桁の 16 進数に変換します (0064) =DEC2HEX(-54) 10 進数の -54 を 16 進数に変換します (FFFFFFFFCA)

iccyandesu
質問者

お礼

回答有難うございます。 あれ?簡単にできた! といった感じで、シンプルでベストです。 有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

DEC2BIN関数で8bitずつ文字列に変換して連結する方法になります。 上桁の0を表示する方法と非表示にする方法では少々異なります。 9999を2進数に変換すると以下のようになります。 =DEC2BIN(INT(A1/256),8)&DEC2BIN(MOD(A1,256),8) → 0010011100001111 =(DEC2BIN(INT(A1/256),8)+0)&DEC2BIN(MOD(A1,256),8) → 10011100001111 4664 → 2進数変換 → 0001001000111000

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • BCD出力で表示されたものをBINに変換すると

    PLC制御を学び始めた初心者です。 BCD出力とBIN出力について勉強している中で、たとえばヒーターの温度設定を行うことを想定して、BCD出力をするタッチパネルを用いて行った温度設定を場合について疑問があります。 たとえば、表示パネル上で63℃と設定したとします。 BCDなので、各桁それぞれを2進数で表して 6→0110 3→0011 つまり 63 = 0110 0011 ということになりますよね。 さらに、データをCPUやPLCに取り込むときにBINデータに変換する必要があると思うのですが、これをBINデータに変換する場合、上記のBCDデータを通常の2進数と見て、一度10進数に戻し、それを再度2進数に戻す作業になると思います。 具体的には、 01100011 =1+2^1+2^5+2^6=102 したがって、10進数の102という数値になりますよね? これを再度2進数化したものがBIN変換した数値ということになると思いますので、 102 = 01100110 (2進数) という風になるかと思います。 つまりPLCの内部ではこの2進数をデータとして取り扱うことになるかと思いますが、 さて、ここでよくわからないのですが、 タッチパネル上では63℃として入力していたのに、内部に入ったら102(℃?単位はわかりませんが・・・)として扱われています。 ここがよくわかりません。63℃のはずが102に変換されてしまっています。 だったら最初から変換などせずにそのままでいいのではないかとも思うのですが?? どなたがご教授いただけませんでしょうか。 なぜBINとBCDが扱われるのかについても教えていただけると幸いです。

  • 10進数をBCDに変換する方法

    10進数から2進化10進数(BCD)に変換するところで疑問があります。 たとえば、10進数の3846をBCDに変換する場合答えはどのようになりますか? 私なりに考えたところまでを示しますが、答えがわかりません。 どこに考え方の間違いがあるのでしょうか? まず、3846を2進数に変換しました。 3846 → 0000111100000110 (2進数)となります。 ここからBCDに変換する場合、4ビットずつを1つと考えて数字を表現するので、上記の2進数の頭から4つずつ分けて考えると 1つ目 0000 2つ目 1111 3つ目 0000 4つ目 0110 の4つにわけました。 続いて、それぞれを10進化しました。 1つ目 0000 → 0 2つ目 1111 → 15 3つ目 0000 → 0 4つ目 0110 → 6 ここで疑問が出てきます。 2つ目のところで、1111を10進化すると15となってしまい桁上りが生じます。 この場合どのように処理するのが良いのでしょうか? どなたかご教授ください。

  • 10進数をBCDに変換する方法

    10進数から2進化10進数(BCD)に変換するところで疑問があります。 たとえば、10進数の3846をBCDに変換する場合答えはどのようになりますか? 私なりに考えたところまでを示しますが、答えがわかりません。 どこに考え方の間違いがあるのでしょうか? まず、3846を2進数に変換しました。 3846 → 0000111100000110 (2進数)となります。 ここからBCDに変換する場合、4ビットずつを1つと考えて数字を表現するので、上記の2進数の頭から4つずつ分けて考えると 1つ目 0000 2つ目 1111 3つ目 0000 4つ目 0110 の4つにわけました。 続いて、それぞれを10進化しました。 1つ目 0000 → 0 2つ目 1111 → 15 3つ目 0000 → 0 4つ目 0110 → 6 ここで疑問が出てきます。 2つ目のところで、1111を10進化すると15となってしまい桁上りが生じます。 この場合どのように処理するのが良いのでしょうか? どなたかご教授ください。

  • Excelの2進数表記について

    10進数→2進数に変換する関数で、DEC2BIN(15)→1111となりますが、00001111と8桁で表示するにはどうすればよいのでしょうか。また、8桁表示できたとして、関数の結果『00001111』の前から3桁『000』を抜き出すにはどうすればよいのかご存知のかた宜しくお願い致します。

  • 2進数からBCDコードへの変換

    今,2進カウンタを作り,これから7セグメントLEDへ出力する回路を作りたいのですが,1桁の場合は,デコーダICでそのまま変換可能なのですが,10進数に直したときに2桁以上になるものは,デコーダの前で各桁ごとのBCDコードに分けてあげないといけなくなります。ここが分からないのです。 回路の構成としては,カウンタ部分をアナログで構成し,そこで8個のスイッチをつけて,それぞれ2進数の各桁の入力としています。これと,3個のデコーダICと7セグメントLEDで2^8=255までを表示させたいのですが,どのような回路構成だとシンプルに作れるのでしょうか。また,そのようなICは存在するのでしょうか。

  • エクセルで16進数を2進数に変換した際に頭の0を表示させる方法は?

    エクセルの関数についての質問です。 1つのセルに16進数で2e14という値があった場合に、これを一旦2進数に変換すると、計算機上では10 1110 0001 0100となります。 普通にこれがエクセル関数でできればいいのですが、桁数が問題なのか変換できませんでした。 そこで、2つのセルに2eと14に分けてから2進数表記して連接しようとしたのですが、そこで問題が起きました。 14の頭に0が3つついていますが、これが表示されませんでした。これを表示させないと当然連接した結果の値が全く違うものになってしまいます。 エクセル関数のHEX2BINを使った際に、変換後に頭の0が表示されるようなことは出来ないでしょうか。 エクセルなどに関してまだ素人当然なので教えて下さい。 よろしくお願いします。

  • ExcelファイルをCSVに変換した場合

    たとえばセルの書式設定でA列の数値「100」を「0100」と4桁で表示させExcelファイルをCSVに変換した場合、書式設定が反映できない為 「100」に戻ってしまうのですが、4桁を保持したい場合どうすればよいでしょうか?書式設定ではなく関数が分かれば書式を文字列に変換してからCSV形式に変換できるのですが...

  • アルファベット 26進数データをエクセルで作成

    エクセルでデータを作成したいと思っています。 C列にある10進数のデータを参照して、3桁のアルファベットを表示させたいのですが、 関数で出来ますでしょうか? 0=AAA、1=AAB、・・・25=AAZ、26=ABA、・・・17575=ZZZ、17576=AAA (A=0、B=1・・・Z=25の26進数で3桁のアルファベット) 自分なりにやってみたこと C2セルに変換させたい10進数が入っているとして、 3桁アルファベットの上位桁関数=QUOTIENT(MOD(C2,26^3),26^2) 3桁アルファベットの中位桁関数=QUOTIENT(MOD(C2,26^2),26^1) 3桁アルファベットの下位桁関数=QUOTIENT(MOD(C2,26^1),26^0) として、Vlookup関数で上記関数で求まった数に対応するアルファベットを求めて、 CONCATENATE関数で結合しようと思ったのですが、 そもそも、アルファベットの各桁を求める関数がこれであっているのかわかりません。 以上、宜しく御願い致します。

  • エクセルのVBAで教えたください。セルの文字数が特定の文字数の時のみ下2桁を書き出す方法。

    VBA初心者です。仕事での作業で困っています。 大量の数値データが1列にあります。それぞれの数値の文字数を関数で隣のセルに表示しています。その文字数が例えば4文字の時だけ下2桁の数字をさらに隣のセルに書き出したいのですが、どのような式を作ればよいのでしょうか。 こんなイメージです。 セル1  セル2  セル3 1025   4    25 124556  6 12     2 1254   4    54 6587   4    87 よろしくお願いいたします。m(_ _)m

  • エクセルで文字数を数えたいのですが

    よろしくお願いします。 エクセルでたとえば A1とB1のセルに 1,2,3,4,5,10 と入力されているとします。 ここから 1又は1,という文字数の合計を 抽出したいのですが 適切な関数が見当たらず 組合せもわかりません。  この場合 範囲はA1:A2 で 2(個)という 数値を欲しいのですが  セルの数や 左から何個目なのか ではなく 文字の合計数を 知りたいのですが。  文字の置換や検索みたいに 見つけて その個数を知りたいのですが   どなたかお願いいたします。  応用編で漢字の数や ひらがなの数(個数)を 1セルの中から又は多数のセル範囲から  指定文字の合計個数を抽出したいなど考えています。 初心者の為申し訳ありません。  ビジュアルベーシック?マクロ?アドイン?な状態です。 よろしくお願いいたします。 エクセル2003です。

専門家に質問してみよう