[[20041029233959]] 『A1に100と入力するとB1に16進数0064と表示させる』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『A1に100と入力するとB1に16進数0064と表示させる』(初心者)

[たとえば、A1のセルに、100と入力すると、B1のセルに16進数で0064と表示させるには、どうすればいいのでしょうか??]


 =RIGHT("000"&DEC2HEX(A1),4)
 をお試しください。
 なお、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要が
 あります。詳しくはエクセルのヘルプで「DEC2HEX」を参照ください。
 (ちゅうねん)


ありがとうございます、試してみます。(初心者)


 解決済みのようですがアドインを使わない方法として
 過去ログをあげときます。(ramrun)
 ↓のLOOKUPさんの方法。 

[[20040424195923]] 『16進数』(A)

 =IF(A1="","",
 MID("0123456789abcdef",MOD(A1/16^3,16)+1,1)
 &MID("0123456789abcdef",MOD(A1/16^2,16)+1,1)
 &MID("0123456789abcdef",MOD(A1/16,16)+1,1)
 &MID("0123456789abcdef",MOD(A1,16)+1,1))


(ramrun)さん・・私、ほんとに全くエクセル初心者ないので
上記の命令文をどのように書き込んでいいかわかりません、ご指導宜しくお願いします。


 上の数式は 改行 しているので、そのままコピーしてセルに貼り付けでも
 うまくいきません。

 たとえばB1のセルをダブルクリックしてカーソルが点滅したら、
 貼り付けてみてください(数式バーでも可)。
 A1に100を入力すると、B1に0064が表示されると思います。

 (ramrun)


(ramrun)ありがとうございます!!!うまく出来ました〜!!
ついでで、申し訳ありませんが〜、逆に16進数を10進数に変換する方法を教えてください。
お願いします。


 アドイン関数なら
HEX2DEC
ですが、
アドインを使わない方法は
[LOOKUP]さん、[ramrun]さんの再登場?  (jun53)


 私はそうたやすく償還されんぞぉ って、字がやばげ。

 4桁じゃないと計算しません(汗)。
 (ramrun)めどい。

 =IF(LEN(A1)<>4,"",
 IF(COUNT(MID(A1,1,1)),MID(A1,1,1),CODE(UPPER(MID(A1,1,1)))-55)*16^3
 +IF(COUNT(MID(A1,2,1)),MID(A1,2,1),CODE(UPPER(MID(A1,2,1)))-55)*16^2
 +IF(COUNT(MID(A1,3,1)),MID(A1,3,1),CODE(UPPER(MID(A1,3,1)))-55)*16^1
 +IF(COUNT(MID(A1,4,1)),MID(A1,4,1),CODE(UPPER(MID(A1,4,1)))-55)*16^0
 )


いつも、お願いばかりして申し訳ございません!!
上記の方法で10進数⇒16進数⇒10進数の変換が出来ました・・
エクセルって奥が深いソフトですね〜今までワープロソフトに計算機能がついたものぐらいだと思っていました、実際見積書や請求書ぐらいしか使用していませんでした。
今回、仕事でPLC(シーケンサー)ソフトを組んでいまして、PLCへタッチパネルから打ち込むのは10進数なのですが、PLC側での処理が16進数でCFメモリーカードにデーターを書き込んで(CSVファイル)でエクセルで見てみると・・データーが全て16進数で表示されてあり・・一目では設定値が把握出来なかったので便利なソフトはないかなと・・検索していると、ここの学校を発見しました。
皆さん親切に教えていただいて感謝しています。
いまだに上記の命令文は全くわかっていませんが・少しずつ理解して自分でも作ってみたいと思っています。
またよろしくお願いします。(初心者・・改め、たーぼう)


 前の方式で配列数式にしてみました。                 (LOOKUP)
 =SUMPRODUCT(SEARCH(MID(A1,{1;2;3;4},1),"0123456789ABCDEF")-1,16^{3;2;1;0})
 4桁未満のケースがある場合には、このようになります。
 =SUMPRODUCT(
 SEARCH(MID(RIGHT("0000"&A1,4),{1;2;3;4},1),"0123456789ABCDEF")-1,16^{3;2;1;0})


教えてください。
(ramrun)さんに教えていただいた下記の数式をドラッグでコピーしたいのですが・・下記数式がどーんと出てきて、コピーできません。
どのようにすればよいのでしょう??

=IF(LEN(A1)<>4,"",

 IF(COUNT(MID(A1,1,1)),MID(A1,1,1),CODE(UPPER(MID(A1,1,1)))-55)*16^3
 +IF(COUNT(MID(A1,2,1)),MID(A1,2,1),CODE(UPPER(MID(A1,2,1)))-55)*16^2
 +IF(COUNT(MID(A1,3,1)),MID(A1,3,1),CODE(UPPER(MID(A1,3,1)))-55)*16^1
 +IF(COUNT(MID(A1,4,1)),MID(A1,4,1),CODE(UPPER(MID(A1,4,1)))-55)*16^0
 )


 見やすいようにAltで改行してあるからなのね汗
これでどうでしょう?
=IF(LEN(A1)<>4,"",IF(COUNT(MID(A1,1,1)),MID(A1,1,1),CODE(UPPER(MID(A1,1,1)))-55)*16^3 +IF(COUNT(MID(A1,2,1)),MID(A1,2,1),CODE(UPPER(MID(A1,2,1)))-55)*16^2 +IF(COUNT(MID(A1,3,1)),MID(A1,3,1),CODE(UPPER(MID(A1,3,1)))-55)*16^1 +IF(COUNT(MID(A1,4,1)),MID(A1,4,1),CODE(UPPER(MID(A1,4,1)))-55)*16^0 )
または、一時的に
ツール→オプション→表示→数式バーのチェックを外す
または
Ctrl+CでコピーShift+↓で拡張→Ctrl+Vで貼り付け→Enter
なども有効かもしれません。
(SoulMan)


ツール→オプション→表示→数式バーのチェックを外すで、対応できました。
ありがとうございます・・
現在、志向錯誤しながら頑張ってます。エクセルの壁にぶち当たりまくりです。。。
また、質問の際には宜しくお願いします。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.