- ベストアンサー
文字列から数字を返す
教えてください。 下記の文字列から数字だけ、12, 7 を納品書に転記したいのですが、 よろしくお願い致します。数字の後の文字が1文字であったり、3文字だったりします。 数量:12個 数量:7セット
- みんなの回答 (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のように数字を含んでも可。 ご参考まで。
その他の回答 (4)
- _Kyle
- ベストアンサー率78% (109/139)
=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 ご参考まで。
お礼
わかりやすくご説明頂きましてありがとうございました。やりたかったのは画像のとおりです。長く作業が止まったままでしたが直ぐに始めます。ありがとうございました。
補足
何日もかかって出来なかったことが、お陰様で数分で解決しました。ありがとうございました。
- xls88
- ベストアンサー率56% (669/1189)
マクロの例 MsgBox val(Split(ActiveCell.Value, ":")(1))
お礼
ありがとうございます。マクロがまだよくわかりません。
- mshr1962
- ベストアンサー率39% (7417/18945)
=MID(C2,4,SUMPRODUCT(ISNUMBER(FIND(MID(C2,4,ROW($A$1:$A$5)),"0123456789"))*1))*1 上記で5桁まで抽出できます。 桁数がもっとある場合は$A$1:$A$5の最後の5を桁数に合わせてください。
お礼
ありがとうございます。助かりました。
:で文字列を分割し、以降に出てくる数字(0-9)から数字じゃない文字(0-9以外)が出てくるまでの文字を拾います。
お礼
ありがとうございました。
お礼
助かります。MIDでは解決しないしと思ってました。直ぐやってみます。