• ベストアンサー

文字列から数字を返す

教えてください。 下記の文字列から数字だけ、12, 7 を納品書に転記したいのですが、 よろしくお願い致します。数字の後の文字が1文字であったり、3文字だったりします。 数量:12個 数量:7セット

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

  • ベストアンサー
  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.5

#4です。迷ったんですが、こちらの方が良い気がしてきました。  =MID(A1,4,LEN(A1)-2-MATCH(TRUE,ISNUMBER(-MID(A1,4,LEN(A1)-{3,4,5,6,7})),0))*1 ・前方の文字列は常に3文字。 ・数字部分は桁数無制限。カンマ,小数点を含んでも可。 ・後方の文字列は【0~4文字】  m2のように数字を含んでも可。 ご参考まで。

yoshi663
質問者

お礼

助かります。MIDでは解決しないしと思ってました。直ぐやってみます。

その他の回答 (4)

  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.4

 =MID(A1,4,SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},""))))*1 ※制限事項  ・数字の前の部分の文字数は常に3であること。  ・数字部分の桁数に制限なし。ただしカンマや小数点を含まないこと。   ×数量:12,345個   ×数量:123.45kg  ・数字の後の部分の文字数は可変。ただし数字を含まないこと。   ×数量:123m2 ご参考まで。

yoshi663
質問者

お礼

わかりやすくご説明頂きましてありがとうございました。やりたかったのは画像のとおりです。長く作業が止まったままでしたが直ぐに始めます。ありがとうございました。

yoshi663
質問者

補足

何日もかかって出来なかったことが、お陰様で数分で解決しました。ありがとうございました。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

マクロの例 MsgBox val(Split(ActiveCell.Value, ":")(1))

yoshi663
質問者

お礼

ありがとうございます。マクロがまだよくわかりません。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

=MID(C2,4,SUMPRODUCT(ISNUMBER(FIND(MID(C2,4,ROW($A$1:$A$5)),"0123456789"))*1))*1 上記で5桁まで抽出できます。 桁数がもっとある場合は$A$1:$A$5の最後の5を桁数に合わせてください。

yoshi663
質問者

お礼

ありがとうございます。助かりました。

noname#196225
noname#196225
回答No.1

:で文字列を分割し、以降に出てくる数字(0-9)から数字じゃない文字(0-9以外)が出てくるまでの文字を拾います。

yoshi663
質問者

お礼

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

関連するQ&A