エクセルで文字列から数字を抽出する方法

このQ&Aのポイント
  • エクセルで文字列から数字を抽出する方法を教えてください。文字列の中から特定の部分の数値を抽出したい場合、数量の前に特定の記号がある場合など、抽出方法はさまざまです。具体的に、数量の直前に半角スペースがあり、「ケ」で終わる文字列から、その前の数字を抽出する方法を教えてください。
  • エクセルで文字列から数字を取得する方法について教えてください。例えば、特定の文字列の中から数量の値を抽出したい場合、どのようにすれば良いのでしょうか。数量の直前に半角スペースがあり、「ケ」で終わる文字列から、その前の数字を取得する方法をお教えください。
  • エクセルで文字列から数字を抽出する方法について質問です。特定の文字列の中から数量の値を抽出したい場合、どのような方法がありますか。数量の直前に半角スペースがあり、「ケ」で終わる文字列から、その前の数字を抽出する方法を教えていただけないでしょうか。
回答を見る
  • ベストアンサー

エクセル 文字列の中から数字を抽出する方法

エクセル 文字列の中から数字を抽出する方法 以前 QNo.5823420 で質問させて頂いたんですが 再度質問させてください。 "オーダー番号"+"半角スペース"+"部品型番"+"半角スペース"+"個数"+"半角スペース"+"部品名" というような文字列の中から個数の数のみを抽出する方法を教えてください。 "文字列"+"半角スペース"+"文字列"+"半角スペース"+・・・と文字列の繋がる数は決まってませんので 個数は何番目のスペースの後にくるかは不定です。 数量の半角"ケ"とその前の半角スペースまでの間の数字を抽出したいです。 例1)文字列 :ABC110 XXYYZZ5566 2ケ ****   抽出文字:2 例2)文字列 :ABC XYZ 5566 DDEE11 3ケ FFGG   抽出文字:3 よろしくお願いします。

  • jots
  • お礼率76% (35/46)

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

  • ベストアンサー
回答No.7

こんな感じかな? 9桁まで =LOOKUP(10^10,MID(A2,FIND("ケ",A2)-{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9})*1) 配列数式(配列定数なので[Enter]のみの確定でOKです)

jots
質問者

お礼

回答ありがとうございました。 お礼遅くなりすいません。 うまく抽出できました。 データの中には個数の前のスペースが無い物もまれにあったんですが この方法はその場合でも抽出ができました。 配列数式はまだよくわからないんですがありがとうございました。

その他の回答 (6)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.6

「ABC110 XXYYZZ5566 2ケ ****」 で「ケ」の位置が何ケタ目にあるか見つけ出す。 「ABC110 XXYYZZ5566 2」 見つかった位置の1文字前から左側を抜きとる。 「 2」 右から1つ目に見つかる空白を探す。その右側を抜きとる。 「2」 以上です。 あとはこれらを文字列操作の関数の組み立てで実施。 普通に考えたらこの原理でしょう。 ------------------------ 空白をカンマ「,」に置き換えてCSVとして保存し、開き直すと 各列が「ABC110」「XXYYZZ5566」「2ケ」「****」ですから、 こっちのが悩まずにできて早いです。

jots
質問者

お礼

回答ありがとうございました。 お礼遅くなりすいません。 基本的な考え方を教えていただきありがとうございます。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

エクセルで検証した数式をコピー貼り付けしたのですが、スペースの連続が削除されてしまうようですね。 正しくは以下のように置換後の文字列にスペースを5つ連続した以下のような数式です(全角で入力しました)。 =RIGHT(SUBSTITUTE(REPLACE(A1,FIND("ケ",A1),100,"")," ","     "),5)*1

jots
質問者

お礼

回答ありがとうございました。 お礼遅くなりすいません。 うまく抽出できました。 1番目に個数がある場合も抽出できました。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

ユーザ関数を作って使う方法を…… 標準モジュールに以下のコードを入れます。 Function fSample(rng As Range) As Long   fSample = 0   Dim sData() As String   sData = Split(Left(rng.Text, InStr(rng.Text, "ケ") - 1), " ")   fSample = CLng(sData(UBound(sData))) End Function セルには =fSample(A1) と、入れます。 「ケ」が無かったり、「ケ」の前が文字列だったりした場合は #VALUE!が返ります。

jots
質問者

お礼

回答ありがとうございました。 お礼遅くなりすいません。 VBAは自分にはまだ難しいので 試すところまでいけませんが 今後の参考とさせていただきます。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

たとえば数字が5桁までなら、以下のような数式で数字を抽出することができます。 =RIGHT(SUBSTITUTE(REPLACE(A1,FIND("ケ",A1),100,"")," "," "),5)*1

回答No.2

まずは「ケ」を探します。個数がせいぜい2桁までだと仮定できれ ば、「ケ」の前2文字を取り出します。個数が1桁だと頭にスペース が付きますが、気にせず1を掛けてみます。ちゃんと数値になります ね。おしまい。 =mid(A1,find("ケ",A1)-2,2)*1 個数が4桁くらいもアリなんだという場合は、「ケ」の位置から5文 字くらい遡った位置をスペースの検索開始位置にします。抜き出す 文字数は「ケ」の位置と「ケ」から5文字以内のスペースの位置の差 ですから、本当は作業列があった方が気楽ですね。 =mid(A1,find(" ",A1,find("ケ",A1)-4),find("ケ",A1)-find(" ",A1,find("ケ",A1)-4))*1 こいつは個数の前の文字列が極端に短いとエラーになります。

jots
質問者

お礼

回答ありがとうございました。 お礼遅くなりすいません。 うまく抽出できました。 ただ1番目に個数がある場合は抽出できませんでした。

  • akiomyau
  • ベストアンサー率43% (555/1280)
回答No.1

以下のような式でどうでしょうか。 =MID(A1,FIND(" ",A1,FIND(" ",A1)+1)+1,FIND("ケ",A1)-FIND(" ",A1,FIND(" ",A1)+1)+1)-1

jots
質問者

お礼

回答ありがとうございました。 お礼遅くなりすいません。 やってみましたがうまくいきませんでした。

関連するQ&A

  • エクセル 文字列の中から数字を抽出する方法

    エクセル 文字列の中から数字を抽出する方法 "オーダー番号"+"半角スペース"+"部品型番"+"半角スペース"+"個数"+"半角スペース"+"部品名" というような文字列の中から個数の数のみを抽出する方法を教えてください。 例)文字列 :ABC110 XXYYZZ5566 2ケ ****   抽出文字:2 オーダー番号、部品型番、部品名の中にも数字は入っています。 数量の後には半角カタカナの"ケ"+"半角スペース"は必ず入ります。 よろしくお願いします。

  • エクセルで文字列の中から数字の抽出

    数字のみ抽出したいのですが、複数の人がバラバラに入力して困っています。 以下の2点ができなくて挫折しました。 (1)全角と半角が混在 → 半角の数字にして抽出 (2)マイナス「-」も抽出したい。 自分でもネットで検索してみたのですが、数字を抽出する例はいくつかあるものの、 全角の数字が入るとダメだったり、マイナスも抽出できるものを見つけることができませんでした。 どうかよろしくお願いします。

  • Excelの文字数が決まっていない文字列の抽出

    教えてください。Excelで、文字数の決まっていない文字列を抽出したいのですが、例えば、 セルA1 : プロジェクト1 簡単な文章 2352 PD_JOK セルA2 : プロジェクト13 複雑な文章列とは決まっていない 2453 AO_JKI ・・・・・・ というセルから、 プロジェクト名から、半角数字前までの文字数が決まっていない文字列「簡単な文章」や「複雑な文章~」をセルB列に抽出する方法を教えていただきたいのですが、 そして、半角数字後の半角英字「PD_JOK」をセルC列に抽出する方法も同時に教えてください。 万単位でデータがあるので、関数を使わないと難しいです。 よろしくお願い致します。

  • EXCELで、文字列の中から数字を抽出したいのですが。

    お世話になります。 EXCELにおいて、A1のセルに文字と数字が入力されています。この中から、最初の数字のみを、B1に抽出したのですが、ご教示お願いします。 文字の長さと数字の位置は、様々な文字列です。 宜しくお願い致します。

  • エクセル 文字列から数字だけを抽出

    エクセル2016の操作について教えて下さい。 セル内の文字列から数字だけを抽出したいです。 例えばAの列にこのような文字列が入っているとします。 高度5km 高度10.1km この中の数字だけを取り出して隣のB列の同じ行に数字だけを表示させる方法がありましたら教えて下さい。 宜しくお願いします。

  • エクセル2000での質問-1つのセルに入っている文字列の中から特定の文字の個数を調べるには

    例えばセルA1に「あい1うえ 1おかき11123くけこ」と入っているとします。 その中から、 (半角スペース)あるいは文字列が何個入っているのかを返す関数と言う物は有るのでしょうか?この例の場合半角スペースなら1、数字の1なら5という要領です。

  • エクセルで、半角文字列を抽出するには

    使用機種はXPでEXCEL2003です。 住所のデータ整理をしています。 地名の後の番地のみ半角数字(ハイフンも半角)で入力されており、その部分だけを別の列に移動させる作業です。 関数で、半角文字列だけを抽出することはできますか? left関数を使おうとも思いましたが、文字数がバラバラなので、難しいと思いました。 私は、一つひとつコピー→ペーストをするしか思いつかないほどの初心者です。 どうぞよろしくお願いいたします。

  • 任意の文字列を抽出

    半角スペースを含む文字列から任意の文字列を抽出するには、どういった処理が必要になりますか?

    • ベストアンサー
    • Perl
  • 文字列抽出方法の関数を教えてください。

    文字列抽出方法の関数を教えてください。 文字列に“{\”で始まる文字があった場合、そこから半角空白(1文字)までを削除。 次に“}”を削除して、残りの部分を表記させたい。 {\○△□● }の中は  ○・・・半角英語  △・・・半角数字  □・・・半角数字もしくは空白  ●・・・半角空白もしくはなし 次に半角空白があり“}”があります。 “{\”から一番目の半角空白を削除、“}”も削除したいです。 英語や数字はさまざまな文字が入ります。   下記☆が例になります。⇒以降が表記させたい内容です。 ☆ファイル名{\f3 :} ⇒ファイル名 : ☆{\f91 ( }{\f9 「}{\f91 12 }{\f9 設定}{\f91 }{\f9 」}{\f91 }{\f9 参照}{\f91 )} ⇒( 「12 設定 」 参照 ) 文字列の中には複数削除したい部分がある場合があります。 今は手作業で作業していて、とっても時間がかかるし間違える場合もあります。 何かいい方法があれば教えてください。 宜しくお願い致します。

  • SQLServerで文字列の末尾からある位置で取出

    SQLServer2012で selectで文字列の末尾から(右から)ある文字の位置までを取り出したいのですが どのようなSQLにすればよいのでしょうか。 やりたいことは、 例えば、文字列「abc 123 xyz」があるとします。 末尾から(右から)見て、最初に見つかった半角スペースから後ろ「xyzを取り出し たいです。 RIGHT を使えば取り出すことはできるのですが、取り出したい文字列の長さが同じ でないので使うことができません。 お願いします。

専門家に質問してみよう