こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

文字コードで数字を表すには?エクセル

エクセルで数字と文字を区別する際に例えば以下のようにすれば良いと伺いました。
たとえばA1="11 3DE"のとき
N((MID(A1,5,1))>"9")=1

しかしここで、数字ではなく文字コードの9を表すために”9”を用いると書かれていましたが、よくわかりません。文字コードを知るため、Unicode(9),Code(9)などしてみると「57」という数字がでてきますし、>"9"部分が数字と文字を区別できる理由がわかりません。

ご存知の方がいらしましたら、ご教授よろしくお願いいたします。

投稿日時 - 2018-10-14 13:20:39

QNo.9547503

困ってます

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

「>"9"」と「>9」の違いは
Excel ではどんな数字でも文字より小さいです。
=9<"9" はTRUE
=9<""  もTRUEになります。
当然
=9="9"はFALSE になります。

MID で取り出した場合、文字のままなので、比較するときは""をつけて文字にする必要があります。

文字の大小関係ですが、文字コードで比較します。左から順に比較して行きます。従って、
"11"<"2"になります。
このように数字と文字では比較方法が違うので、区別する必要があります。

B1に=IF(A1>C1,">",IF(A1=C1,"=","<"))
を入れて、A1とC1にいろいろ入れてみればいいです。

投稿日時 - 2018-10-19 23:03:21

お礼

なるほどですね。少しわからないところがありますが、試しにIf関数で色々試してみたいと思います。

ありがとうございました!

投稿日時 - 2018-10-20 08:30:03

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

MID(A1,5,1)ということは、5文字目が数字かどうかということでしょうか。
それはどこの情報ですか?
=N((MID(A1,5,1))>"9")=1
これでは数字かどうかの判断はできません。
11 3DE TURE
11 36E FALSE
一見5文字目が数字かどうか判断しているように見えますが、
11 3%E FALSE
となり、数字より小さい文字なら、FALSE になってしまします。
5文字目が数字かどうか知りたいなら、
=ISERROR(MID(A1,5,1)+0) 数字ならFALSE
又は、
=AND(MID(A1,5,1)>="0",MID(A1,5,1)<="9") 数字ならTRUE
にすべきです。

投稿日時 - 2018-10-14 18:09:28

お礼

回答ありがとうございました。どのようにすべきかまでご教授くださりありがとうございました。

ですが質問の仕方が悪かったようです。

「>"9"」と「>9」の違いは何でしょうか。文字でも大小関係があることがあまり理解できませんでした。もし時間があればよろしくお願いいたします。

投稿日時 - 2018-10-19 18:48:49

ANo.1

>エクセルで数字と文字を区別する際に
疑問点が何なのかがよくわかりません。

A1セルに9が埋まっているときに
それが文字の9なのか、数値の9なのかを
文字コードで区別することができるか?
という質問であれば

そもそも、埋まっている値は
2進表記なら:00111001
10進表記なら:57
16進表記なら:39
の文字コードをもつ文字(とりもなおさず9)であって
表示形式(文字タイプ、数値タイプ、標準)で
文字コードが変化するわけでありません。

>文字コードの9
文字コードが10進表記で9の文字は
文字コードを
2進表記なら:00001001
16進表記なら:09
と表現できますが、数字を含む文字ではなく、
Horizontal Tabulation(水平タブ)です。
一般には単にtabと呼びます。また制御文字です。

セルに文字コードを使って文字を埋めたいのであれば
例えばHを埋めるなら =CHAR(72)
例えば9を埋めるなら =CHAR(57) 
例えば23を埋めたいなら =CHAR(50)*10+CHAR(51)
となります。

文字コードと文字の対応は
「文字コード表」で検索すればいろいろヒットします。
例えば、
http://charset.7jp.net/sjis.html
です。

もう一度疑問点を整理し質問のし直しをすれば
多くの方からコメントを得られるだろうと思います。

投稿日時 - 2018-10-14 17:38:15

あなたにオススメの質問