プロが教えるわが家の防犯対策術!

Excel2007です。
画像の
B列から数字(1桁と2桁)を1桁ずつC列とG列に取り出したい。
右1番目は、=right(B1,1)で取り出せます。
右2つ目の数字を取り出す方法を教えて下さい。2つ目が数字以外(全角です。)のときは、空白としたい。
よろしくお願いします。

「Excel 右から2つ目の数字を抜き出し」の質問画像

A 回答 (6件)

・B列の文字は全部で何桁あるのか?


・特に1文字だけ(=2文字目が存在しない事)があり得るのか?

で微妙に違ってきます。

絶対に2文字以上あるなら
=IF(ISERROR(VALUE(ASC(MID(B1,LEN(B1)-1,1))))=TRUE," ",MID(B1,LEN(B1)-1,1))

2文字未満があり得るならLEN(B1)が2未満の場合の処理をIF文の一段外側に追加でしょう。

Excel2003だと全角数字でもValue関数でエラーになりませんのでASC関数は無くてもOK(他バージョンは不明)
ISERRORはTRUEかFALSEを返すので=TRUEは無くても動きます
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
文字数は、5字又は6字で1文字ということはありません。

うまくいきました
ありがとうござました。

お礼日時:2009/04/09 18:45

No.5です


IF関数の偽の処理がちょっと違いました
=IF(ISERROR(VALUE(RIGHT(A1,2))),"",VALUE(MID(A1,LEN(A1)-1,1)))
正しくは上の式ですね、すみません
    • good
    • 1

皆さんと大差ありませんが


=IF(ISERROR(VALUE(RIGHT(A1,2))),"",VALUE(RIGHT(A1,2)))
右から取り出すのでRIGHT関数,数値にしてエラーに
なるかならないか判断するのにVALUE関数,ISERROR関数を
併用してみました
    • good
    • 0

C2: =IF(AND(LEFT(RIGHT(B2,2),1)>="0",LEFT(RIGHT(B2,2),1)<="9"),LE

FT(RIGHT(B2,2),1),"")
    • good
    • 1

Excelのワークシート関数ならShift_JISなので、質問の条件のよう


に2桁以内の数値の前が必ず2バイト文字なら

=MIDB(A1,LENB(A1)-1,1)

で出来ちゃうはず。2004は出来ました。要するに、2バイト文字から
1バイトだけ取り出そうとすると自動的に空白になる仕様なんですね。
    • good
    • 0

数字の前の文字列が「あいうえ」固定と仮定して・・・。


=SUBSTITUTE((INT(SUBSTITUTE(B3,"あいうえ","")/10)),"0","")

(1) あいうえ、を、空文字列で置き換え
 SUBSTITUTE(B3,"あいうえ","")
(2) それを 10 で割る(10未満だと小数になる)
 SUBSTITUTE(B3,"あいうえ","")/10
(3) それを INT で整数化(10未満だとゼロになる)
 INT(SUBSTITUTE(B3,"あいうえ","")/10)
(4) ゼロを空文字で置換
 SUBSTITUTE((INT(SUBSTITUTE(B3,"あいうえ","")/10)),"0","")

あ、でもこれだと 100 以上でダメになりますね、すみません・・・。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうござます。
詳細な説明ありがとうございます。よく理解できました。

数字は、2桁で100以上は、ありませんので
うまくいきました。
ありがとうございました。

お礼日時:2009/04/09 18:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています