- ベストアンサー
Excel 右から2つ目の数字を抜き出し数字以外の時は、空白としたい。
- みんなの回答 (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は無くても動きます
その他の回答 (5)
- ma_ri_wo
- ベストアンサー率0% (0/2)
No.5です IF関数の偽の処理がちょっと違いました =IF(ISERROR(VALUE(RIGHT(A1,2))),"",VALUE(MID(A1,LEN(A1)-1,1))) 正しくは上の式ですね、すみません
- ma_ri_wo
- ベストアンサー率0% (0/2)
皆さんと大差ありませんが =IF(ISERROR(VALUE(RIGHT(A1,2))),"",VALUE(RIGHT(A1,2))) 右から取り出すのでRIGHT関数,数値にしてエラーに なるかならないか判断するのにVALUE関数,ISERROR関数を 併用してみました
C2: =IF(AND(LEFT(RIGHT(B2,2),1)>="0",LEFT(RIGHT(B2,2),1)<="9"),LEFT(RIGHT(B2,2),1),"")
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
Excelのワークシート関数ならShift_JISなので、質問の条件のよう に2桁以内の数値の前が必ず2バイト文字なら =MIDB(A1,LENB(A1)-1,1) で出来ちゃうはず。2004は出来ました。要するに、2バイト文字から 1バイトだけ取り出そうとすると自動的に空白になる仕様なんですね。
- TYWalker
- ベストアンサー率42% (281/661)
数字の前の文字列が「あいうえ」固定と仮定して・・・。 =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 以上でダメになりますね、すみません・・・。
お礼
早速の回答ありがとうござます。 詳細な説明ありがとうございます。よく理解できました。 数字は、2桁で100以上は、ありませんので うまくいきました。 ありがとうございました。
お礼
早速の回答ありがとうございます。 文字数は、5字又は6字で1文字ということはありません。 うまくいきました ありがとうござました。