• ベストアンサー

エクセル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 よろしくお願い致します。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

>後方2番目の数値をB列に取出す方法を教えて下さい。 =TRIM(LEFT(RIGHT(SUBSTITUTE(A1," ",REPT(" ",100)),200),100))*1 ◆前から4番目の数値ならば、 =TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",100)),3*100-99,100))*1

tomoyochan
質問者

お礼

スマートな回答ありがとうございました。 参考にさせてもらいます。

その他の回答 (3)

noname#204879
noname#204879
回答No.4

[回答番号:No.2]の maron--5さんの短い式は実にお見事ですが、[回答番号:No.1]の keithinさんの別解として次式を挙げておきます。 =MID(A1,FIND("_",SUBSTITUTE(A1," ","_",2))+1,FIND("_",SUBSTITUTE(A1," ","_",3))-FIND("_",SUBSTITUTE(A1," ","_",2)))+0

tomoyochan
質問者

お礼

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

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

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)

tomoyochan
質問者

お礼

VBAでの回答ありがとうございます。 参考にさせてもらいます。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

一般にはデータメニューの区切り位置で「カンマやスペース」から次々進め,スペースで区切った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 など。

tomoyochan
質問者

お礼

回答ありがとうございました。 参考にさせてもらいます。

関連するQ&A

専門家に質問してみよう