• ベストアンサー

Excel 右から2つ目の数字を抜き出し数字以外の時は、空白としたい。

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

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

  • ベストアンサー
  • heinell
  • ベストアンサー率35% (420/1172)
回答No.1

・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は無くても動きます

gyouda1114
質問者

お礼

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

その他の回答 (5)

  • ma_ri_wo
  • ベストアンサー率0% (0/2)
回答No.6

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

  • ma_ri_wo
  • ベストアンサー率0% (0/2)
回答No.5

皆さんと大差ありませんが =IF(ISERROR(VALUE(RIGHT(A1,2))),"",VALUE(RIGHT(A1,2))) 右から取り出すのでRIGHT関数,数値にしてエラーに なるかならないか判断するのにVALUE関数,ISERROR関数を 併用してみました

noname#204879
noname#204879
回答No.4

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

回答No.3

Excelのワークシート関数ならShift_JISなので、質問の条件のよう に2桁以内の数値の前が必ず2バイト文字なら =MIDB(A1,LENB(A1)-1,1) で出来ちゃうはず。2004は出来ました。要するに、2バイト文字から 1バイトだけ取り出そうとすると自動的に空白になる仕様なんですね。

  • TYWalker
  • ベストアンサー率42% (281/661)
回答No.2

数字の前の文字列が「あいうえ」固定と仮定して・・・。 =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 以上でダメになりますね、すみません・・・。

gyouda1114
質問者

お礼

早速の回答ありがとうござます。 詳細な説明ありがとうございます。よく理解できました。 数字は、2桁で100以上は、ありませんので うまくいきました。 ありがとうございました。

関連するQ&A

  • エクセルのセル内数字の分割転記

    またしてもド素人の質問で恐縮ですが、 ある列に桁数の異なる数値が縦に並んで記載されているとき、 セルと同一列の別のセルに、数値を一文字ずつ分割して、下記の様に表示させたいのです。 (G列の数字はすべて右揃えのつもりです)   A B C D E F G 1  5 4 3 2 1   54321 2      1 2 3    123 3        2 2     22 4      6 5 2    652 5          9     9 そこで、A1には、=LEFT(RIGHT($G1,5))、B1には=LEFT(RIGHT($G1,4))、というように、関数を入れておき、1列目はA1からE1まで無事表示できました。 しかし、2列目以降にA1からE1の各セルの式を転記しますと、 1  5 4 3 2 1    54321 2  1 1 1 2 3     123 3  2 2 2 2 2      22 4  6 6 6 5 2     652 5  9 9 9 9 9       9 と、なってしまいました。空白にしたいところに指定セルのトップの数字が入ってしまうんです。指定したセルの数字の桁数よりも大きな部分は空白にしたいのですが、 「もしも何かの条件に合わねば空欄に」というようなことができれば幸いなんですが、どのようにすればいいのかをお教えください。

  • 重複数字を切り取り空いた隙間を右詰めするには?

    どなたかご存知でしたら回答をお願いします。 【質問】 下図の様に5×5のセルが2つあり、それぞれ1~99迄の数字がランダムに 重複有りで入っています。5×5のセルの中には行の連続数字(例:02 03) が入っています(1個も無い場合もあります。1行全部(5個)の場合もあります。)。 行の連続数字を見つけたら、その連続数字を切り取り「◎重複数字」の下に順番に 並べていき、切り取られた空白箇所を埋めるために左側にある数字を右に詰める 方法が知りたいです。 【例題】 A B C D E  F  G H I J K   1 0107091122     0310203031 2 0412141523     0102070922 3 0713171825     0411121415 4 0616212426     0213171823 5 0819272829     0607080910 【実行後】 A B C D E F  G H I J K   1 0107091122          031020 2   041223          070922 3   071325            04 4 0616212426          021323 5    0819           ◎重複数字 14 15         30 31 17 18         01 02 27 28 29       11 12               14 15              17 18              06 07 08 09 10       【注意事項】  ・使用するエクセルは2010です。  ・セルの中の数字は2桁で表しています。(例:1ではなく01)  ・5×5のセルの位置は下記のとおりです。    1個目の5×5マス・・・A1~E5    2個目の5×5マス・・・G1~K5     ※F列は空白列として空けています。   ・回答はVBでも関数でも構いません。 以上、よろしくお願いします。

  • Excelでハイフンが入った文字列の抽出について

    A列に『12-1』、『1-5-10』、『14-15-6-3』など1桁また2桁の数字がハイフンで区切られた文字列があるとします。 そこからB列には左から2番目の数字、C列には右から2番目の数字、D列には1番右端の数字を関数で抽出したいのですが、出来ないでしょうか。 全部半角で、必ず数字は二つ以上あり、桁数は2桁までです。下記の画像のようにしたいです。 http://uproda.2ch-library.com/801593yFu/lib801593.jpg

  • エクセルの数字の表示方法

    A列の各行に、1桁から7桁の数字があります A1に 7桁の数字を入力した場合、B1からH1に各数字を右詰めで表示する方法を教えてください

  • エクセルの数字の表示方法 再質問です

    昨日下記質問をして回答をいただきました A列の各行に、1桁から7桁の数字があります A1に 7桁の数字を入力した場合、B1からH1に各数字を右詰めで表示する方法を教えてください 回答 B1に=IF(LEN($A1)<=7,TRIM(MID(REPT(" ",7-LEN($A1))&$A1,COLUMN(A1),1)),"") を入力、右方向にコピー、B1:H1を選択して下方向にコピー 再質問 任意の列 Z列50行目に、7桁の数字があります (Z,50)に 7桁の数字を入力した場合、B1からH1に各数字を右詰めで表示する方法を教えてください よろしくお願い致します

  • EXCEL VBA 条件による空白挿入

    EXCEL2003を使っています。 以下のように列FGHが空白の行については列ABCを空白を挿入したいのですが数万行あり処理をVBAで自動化したいです。どなたかお力をお貸し下さい。お願いします。 A B C D E F G H 1 1 2 3 4 5 6 7 8 2 1 2 3 4 5 _ _ _ 3 1 2 3 4 5 6 7 8 4 1 2 3 4 5 _ _ _ 5 1 2 3 4 5 6 7 8 ↓ A B C D E F G H 1 1 2 3 4 5 6 7 8 2 _ _ _ 1 2 3 4 5 3 1 2 3 4 5 6 7 8 4 _ _ _ 1 2 3 4 5 5 1 2 3 4 5 6 7 8

  • 空白セルのある場合の計算

      A  B  C  D   E  F  G  H 1 (2)     (2)     空     (3) わかりづらいかもしれませんが、 =A1+C1+E1+G1 で、数字の合計を出したいのですが、###のエラーが出ます。 E1の空白セルに数字が入るとエラーはなくなります。 どうしたら空白を0とみなして計算できますか? (空白セルはどうしても空白じゃなきゃなりません) (B列D列F列は計算対象外の数字が入力されてます)

  • Excelで特定の列の空白を埋める方法

    エクセルで次のようなことは可能でしょうか? 昨日も同じような質問をいたしましたが、よろしくお願いします。 A列に次のように入力されているとします。 (昨日、質問で文字列にa,b,cを付け加える方法を教えていただきましたが、以下のものは一つずつ入力してあるとします。) 001a 001b 空白 空白 002a 空白 空白 空白 003a 空白 空白 ここの空白を 001a 001b 空白 → 001c 空白 → 001d 002a 空白 → 002b 空白 → 002c 空白 → 002d 003a 空白 → 003b 空白 → 003c とする方法はないでしょうか?(千行くらいを自動的に) あとこれに関連して別の質問ですが、 ある列の001a, 001bなどのアルファベットのみ削除(はずす)して 001,002だけの数字にする方法も教えていただけないでしょうか? よろしくお願いします。

  • EXCEL  3桁の数字を組と番号に分ける方法

    EXCELです。 よろしくお願いします。 101~145、201~245、301~345、401~445 がB列には入っています。 たとえば325という三桁の番号のうち 3はクラス(組)を表しています。 25は出席番号を表しています。 B列は101~445の数字が入っています。 例325で考えると c列には百の位の3だけが入るように D列には十の位と一の位の25がはいるようにするためには どのようにしたらよいでしょうか。 関数で、できますか。 教えてください。 よろしくお願いします。

  • エクセルで数字を抜き取りかつ振り分けたいです。

         A1セル書き込まれた、X-54760Y-84360 という文字列からX後の-54760とY後の-84360を抜き取って、B1、C1セル等横方向に振り分けたいのですがどうするといいでしょうか? FIND MIDB LEFT RIGHT 等をうまく活用できれば いいのかもしれませんが、できません。 なおXY後の半角数字は2~8桁です。(X-1276585Y80等)よろしくお願いいたします。

専門家に質問してみよう