[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『16進数⇒10進数⇒16進数変換』(未熟な制御屋)
・・・質問内容・・・
仕事上で、PLC(シーケンサー)でCFカードにPLC内のDM(データーメモリー)を
書き込んで、エクセルにてデーターの修正を行いたいのですが、お力をお貸しください・・・
データー形式はCSVファイルで、データー形式は16進数で入力されます。
・・Sheet1・・メモリーDATA(マスターデーター)
A B C D E F G H I J 1 1D4C 639C 639C 1D4C 1D4C 639C 639C 1D4C 1D4C 639C 2 3 ・ 31 1838 1838 19C8 19C8 1B58 1B58 1DB0 1DB0 490C 490C 32 33
・・Sheet2・・見やすい様に配置換え・・16進数⇒10進数変換
A B C D E F 1 CODE no.1 2 メモリーDATA 3 工程数 X軸 Y軸 4 1 1D4C 1838 5 2 639C 1838 6 3 1D4C 19C8
現在、上記のSheet2を製作中ですが・・
説明は、Sheet1では、(A〜Jまで10個・・1〜30迄で合計300個がX軸DATA1・31〜60迄で300個がY軸データーとなります。
この配列・16進数では、一目で距離数値がわからないのでSheet2にて工程数・X軸・Y軸と並べて表示させてみました。
使用した命令用語は、B4に=Sheet1!A1 このような命令用語を使ってみました。
16進数⇒10進数変換の E1には、HEX2DEC("B4")を使用できるかなと思っていたのですがうまくいきません・・以前ご伝授頂いた以下の数式
=IF(LEN(B4)<>4,"",
IF(COUNT(MID(B4,1,1)),MID(B4,1,1),CODE(UPPER(MID(B4,1,1)))-55)*16^3 +IF(COUNT(MID(B4,2,1)),MID(B4,2,1),CODE(UPPER(MID(B4,2,1)))-55)*16^2 +IF(COUNT(MID(B4,3,1)),MID(B4,3,1),CODE(UPPER(MID(B4,3,1)))-55)*16^1 +IF(COUNT(MID(B4,4,1)),MID(B4,4,1),CODE(UPPER(MID(B4,4,1)))-55)*16^0) を入力したところ上手く数値が表示されました。 が・・・残された、修正用のSheet、修正した10進数を16進数に変換し元のSheet1のDATAを書き換えるにはどうすれば宜しいのでしょうか??
bz8s-tgc@asahi-net.or.jpにメール頂ければ、現在作成中のCSVファイルを送信いたしますので、ご協力ください・・・。
書き忘れてました、使用しているソフトはEXCEL2003 OSはXPです。
>HEX2DEC("B4")を使用できるかなと思っていたのですがうまくいきません どうなりましたか? →#NAME? になったのなら、おそらくアドインが組み込まれていないためです。 ツール→アドインで、分析ツールにチェックを入れます。 その後、もう一度入力してみましょう。 詳しくはエクセルのヘルプ「HEX2DEC」を参照ください。 →180 になったのなら、正解です。 E1(E4の間違い?)には、=HEX2DEC(B4) と入力すれば 7500 になります。 (ダブルクォーテーションは不要です)
HEX2DEC がうまく使えたら、10進数を16進数に変換するのは DEC2HEX です。 ぜひ、これらのコマンドの使用をお勧めします。 以上は、Excel2002で確認しています。2003も同じと思います。 (ちゅうねん)
>HEX2DEC("B4")を使用できるかなと思っていたのですがうまくいきません もちろん、=HEX2DEC(B4)とされたのだと思いますが、メニューのツール、アドイン、分析ツール にチェックがありませんと、この関数は、#VALUEを戻します。
>修正した10進数を16進数に変換し元のSheet1のDATAを書き換えるには H列、I列に=DEC2HEX(E4) =DEC2HEX(F4)としておき、E列、F列の値を変更しますと、 10進法→16進法に換算できます。
アドインではない数式は、こちらでご覧になれます。↓ [[20041029233959]] 『A1に100と入力するとB1に16進数0064と表示させる』(初心者)
A B C D E F G H I =HEX2DEC(B4) =HEX2DEC(C4) =DEC2HEX(E4) =DEC2HEX(F4) 4 1 1D4C 1838 1 7500 6200 1 1D4C 1838 ↓ ↓ 手修正 手修正 =DEC2HEX(E4) =DEC2HEX(F4) 4 1 1D4C 1838 1 7600 6100 1 1DB0 17D4 コピーして、もとのところに 形式を選択して貼り付け(値) (LOOKUP)
1.元データのシート(16進) 2.変換用シート(10進)別シートに手修正前のものを複製 3.元に戻すシート(16進) これらの3個のシートの配置を同じに設定し、3.をコピーして、1.に値貼り付け するものとして、2.の数式のあるシートは、手修正前のものを複製しておかれたら、 どうでしょう? (LOOKUP)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.