- ベストアンサー
エクセル2000で文字列から数値を抽出したい。
エクセル2000で文字列から数値を抽出したい。 ワークシートのA列に下記の文字列が入力されています。 A1セル="123456 日本男子 54,321 7,654,321 12,345" A2セル="234567 東京都子 1,234 2,345 5,321" A3セル="345678 大阪太郎 99 689 9,876" データ間はスペースで区切られています。 後方2番目の数値をB列に取出す方法を教えて下さい。 B1セル=7,654,321 B2セル=2,345 B3セル=689 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>後方2番目の数値をB列に取出す方法を教えて下さい。 =TRIM(LEFT(RIGHT(SUBSTITUTE(A1," ",REPT(" ",100)),200),100))*1 ◆前から4番目の数値ならば、 =TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",100)),3*100-99,100))*1
その他の回答 (3)
[回答番号:No.2]の maron--5さんの短い式は実にお見事ですが、[回答番号:No.1]の keithinさんの別解として次式を挙げておきます。 =MID(A1,FIND("_",SUBSTITUTE(A1," ","_",2))+1,FIND("_",SUBSTITUTE(A1," ","_",3))-FIND("_",SUBSTITUTE(A1," ","_",2)))+0
お礼
回答ありがとうございました。
- mshr1962
- ベストアンサー率39% (7417/18945)
VBA(マクロのユーザー定義関数)を使ってもいいなら VisualBasicEditorの標準モジュールに下記のコードをコピーして Function SS(文字 As String, 区切り As String, 番号 As Integer) Dim XX As Variant On Error GoTo ERR_SS XX = Split(文字, 区切り) SS = XX(番号 - 1) Exit Function ERR_SS: SS = "" End Function B1=SS(A1," ",4) B2=SS(A2," ",4) B3=SS(A3," ",4)
お礼
VBAでの回答ありがとうございます。 参考にさせてもらいます。
- keithin
- ベストアンサー率66% (5278/7941)
一般にはデータメニューの区切り位置で「カンマやスペース」から次々進め,スペースで区切った4列目のデータを答えとして取り出すのが一番簡単な方法です。 どうしても関数が良いなら =MID(LEFT(TRIM(ASC(A1)),FIND("zzz",SUBSTITUTE(TRIM(ASC(A1))," ","zzz",4))),FIND("zzz",SUBSTITUTE(TRIM(ASC(A1))," ","zzz",3))+1,99) 結果を「数値」にしたいなら,さらに =MID(LEFT(TRIM(ASC(A1)),FIND("zzz",SUBSTITUTE(TRIM(ASC(A1))," ","zzz",4))),FIND("zzz",SUBSTITUTE(TRIM(ASC(A1))," ","zzz",3))+1,99)+0 など。
お礼
回答ありがとうございました。 参考にさせてもらいます。
お礼
スマートな回答ありがとうございました。 参考にさせてもらいます。