• ベストアンサー

エクセル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% (7418/18948)
回答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/7940)
回答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

  • 【エクセル】セル内の文字列から数値のみを抽出する方法

    A1●●●●1111 A2××××××222222 A3■■■■■■■■■■■1234567890 上記のように文字列と数値が一続きになっているデータが各セルに入っています。 文字列+数値の順番は決まっていますが、それぞれの文字数は決まっていません。数値はマイナスの場合もあります。 また、境にカンマやスペースなどもないため、テキストファイルウィザードも使えません。 このデータから、数値のみを抽出する方法がありましたらご教示下さい。 よろしくお願いします。

  • エクセル 数値だけ抽出するには?

    エクセルで、文字列+スペース+数字と入力されているセルから数値だけ取り出す方法を教えていただけますか? 文字列とスペースの字数は一定で、数値の桁数は6-8桁と変動します。 A列からb列のように変換したいのです。 A列          B列 PMID:_12345678    12345678 PMID:_123456     123456 宜しくお願いいたします。

  • エクセルで、異なる文字列を抽出するには。

    エクセルで、A1からA10に文字列のデータがあるとします。 10個のセルのデータは「あああ」が4こ「いいい」が3こ「ううう」が2こ「えええ」が1こ順不同であった場合、B1に「あああ」B2に「いいい」B3に「ううう」B4に「えええ」と異なる文字列のみ1個ずつ抽出するにはどうすればいいでしょうか。

  • Excel 文字列の抽出

    Excel初心者です。 1つのセルに以下のデータが入力されています。 A:文字列B:文字列C:文字列D:文字列 このセルの「C:」から「D:」の間にある文字列を 他のセルに抽出する方法を教えてください。 宜しくお願いいたします。

  • エクセル セルの表示形式「文字列」だけを抽出したい

    エクセル2007を使用しています。 A列に数字が入力されていますが、そのセルの表示形式は、「標準」「数値」「文字列」とバラバラです。 この「文字列」のセルだけを抽出したいのです。 例えば、関数などを利用して、B列に表示するなど。 よろしくお願いします。

  • 文字列から数値を抽出したいのですが・・。

    文字列から数値(integer型)を抽出したいのですが、うまくいきません。 val関数だと文字の途中の数値が判別できないし、困っています。 よろしくお願いします。 ※以下、文字列と数値の関係です。 ・"文字列" → 抽出したい数値  "0k,abc,5k,abc3.0" → 0530  "abc()_3t" → 3

  • 条件に合致する文字列を別シートに抽出するには

    こんにちは。 エクセルで特定の条件にマッチするセルの隣のセルの文字列を別シートに抽出したいのですが、 どの関数を使えば良いか分かりません…。 ご存知の方がいらっしゃいましたら、ご回答頂ければ助かります。 ※シート1に以下の様に入力されているとして、B列が「0」の隣のセル(A列)の文字列をシート2に抽出したいと思っています。 【シート1】    A   B 1 [鈴木] [0] 2 [佐藤] [5] 3 [高橋] [0]    ↓ 【シート2】    A 1 [鈴木] 2 [高橋] ※佐藤は「5」なので抽出しない。 よろしくお願い致します。

  • エクセルで半角数字には数値と文字列がある?

    http://okwave.jp/qa/q6473596.html の質問を見て私も納得がいかず質問させていただきます。 たとえば、A1セルの書式を文字列に設定してから半角で数字を打ち込むと数字は数値でなく文字列としてセルに入ります。 この入力後、A1セルの書式を標準や数値に直してもそのセルの中の数字は左に寄ったままで文字列のままでいるようです。 (でもこれをセルの中でエンターキーを押したりすると数値になってしまいますが) 次にB1セルの書式を標準あるいは数値にして数字を打ち込むと、当然のことですが数字は数値としてセルに入ります。 この入力後、B1セルの書式を文字列に変えると数字は左に寄りますから一見文字列になったように見えます。 ところが上記のセルとこのセルをA1=B1で試してみるとFALSEが返ります。 逆に同じ数字を数値として打ち込んだセルと=で試すとTRUEが返ります。 これはA1とB1は同じ文字列としての数字ではないという証拠だと思います。 B1セルの書式を標準に戻すとまた数字は右よりにもどりますから、セルの中の数字は数値のままのようです。 つまり、半角の数字にはセルの書式にかかわらず文字列と数値の二つがあるということなのでしょうか? だとしたらこの二つはどうやって区別すればいいのでしょうか?

  • エクセル 特定の文字列を抽出・挿入

    例えば A列にあるセルの中から特定の文字列を検索・抽出して、その特定の文字列だけB列に挿入していく関数はありますか? またはA列にあるセルの中から特定の文字列に挟まれた文字列を検索・抽出してその特定の文字列だけB列に挿入していく関数はありますか? マクロを組まないと難しいのでしょうか?

  • エクセルで文字列の抽出方法についてお尋ねします。

    宜しくお願いします。 エクセルを使用して条件付の文字列の抽出をしたいと思っています。 A列のセルに2つの文字列がスペースを挟んで50行ほど入っています。 また、その中にはひとつの文字列しか入っていないものもあります。 イメージ的には以下のようなものです。 | A | B ------------------------------------- 1|エクセル マウス| -------------------------------------- 2|エクセル ペン | -------------------------------------- 3|エクセル ノート | ------------------------------------- 4|エクセル    | ------------------------------------- 上記の例では「エクセル」という文字はひとつのセルですが コレが多くあります。 ここで、2つの文字列の組み合わせだけをB列に表示させることは 出来ますか? また、このパターンが終わった後に、「エクセル」という文字列の代わりに 「ワード」という文字列のものが51行目から続きます。 ここでも2つの文字列の組み合わせと「ワード」単体のものとが あるので、出来れば2つの文字列の組み合わせだけをB列に表示し なおかつ上の方へ詰めて表示したいのです。 分かりづらい質問で申し訳ありません。 宜しくお願いします。

専門家に質問してみよう