[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『DEC2HEXの結果をTEXT関数に入れるとうまくいきません』(はるさめ)
B1セルに =TEXT(DEC2HEX(A1,4),"0000") と入力した場合、A1セルにたとえば7680から7705の数値を入れると、7690〜7695に対しては正しいヘキサデシマル値が出力されますが、その他の値に対してはわけのわからないバイナリの数字が並びます。なぜでしょうか?
< 使用 Excel:Microsoft365、使用 OS:Windows10 >
DEC2HEX は文字列を返します それに対して、TEXT関数で数値書式を設定してるので TEXT関数は、DEC2HEXの返り値を数値として評価しようとします。
7681 → 1E01 → 0010 7682 → 1E02 → 0100 7683 → 1E03 → 1000 1E01などは指数表記の数値として解釈可能なので、10進数に変換されます。
7690 → 1E0A → 1E0A 7691 → 1E0B → 1E0B これらは、文字列として解釈されるので、TEXT関数はそのまま文字列を返します
当たり前の結果だとおもいますが、何がしたいんでしょうか 「ヘキサデシマル値」ってなんですか? (´・ω・`) 2022/12/23(金) 12:47:07
だとすると(´・ω・`)さんがおっしゃる通りDEC2HEXは文字列を返しているので
TEXTが不要、ということになります。
(ngk) 2022/12/23(金) 13:05:49
DEC2HEX(7680) = 1E00 → 「1E00」を「1 * (10^0)」と解釈 → TEXT(1,"0000") = "0001" DEC2HEX(7680) = 1E01 → 「1E01」を「1 * (10^1)」と解釈 → TEXT(10,"0000") = "0010" DEC2HEX(7689) = 1E09 → 「1E09」を「1 * (10^9)」と解釈 → TEXT(1000000000,"0000") = "1000000000"
DEC2HEX(7690) = 1E0A → 「1E0A」を「1 * (10^A)」と解釈できないので↓になる TEXT("1E0A","0000") は第一引数が【文字列】だから第二引数がなんであれ「1E0A」になる
↓のようになることからも、この推測であっているような気がしますが、正答は他の回答者さんのコメントをお待ちください。
DEC2HEX(11780) = 2E04 → 「2E04」を「2 * (10^4)」と解釈 → TEXT(20000,"0000") = "20000"
(もこな2) 2022/12/23(金) 13:06:47
もしngkさんの言う通りであればDEC2HEX関数の第2引数に桁数がある。 =DEC2HEX(数値,4) で4桁未満の16進数も4桁で表示される。 ただし変換後の桁数が指定桁数を超えるとエラーになる (ねむねむ) 2022/12/23(金) 13:14:40
単純に ="14'h"&DEC2HEX(A1,4) なのでは?
あと元質問をよく見ていなかった。 すでに桁数は指定しているのか。 (ねむねむ) 2022/12/23(金) 13:21:56
="14'h"&DEC2HEX(A1,4)でよいのですね! ありがとうございました (はるさめ) 2022/12/23(金) 16:03:57
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.