• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字列の中から複数の数値を取り出す)

文字列の中から複数の数値を取り出す方法

Chiquilinの回答

  • ベストアンサー
  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.2

ひとまず区切りが「/」だったら FILTERXMLを使えばいいでしょう。 =IFERROR(INDEX(FILTERXML("<a><b>"&SUBSTITUTE(A$1,"/","</b><b>")&"</b></a>","//b"),ROW(A1)),"") 2に関してはユーザー定義関数を作った方が早いです。

tekuteku1985
質問者

お礼

回答ありがとうございます。 良い、これは良い、これは数値が増えてもコピペだけでどんどん増やせるのが良い。 当面これで行こうと思います。 FILTERXMLを理解しようといろいろ検索をかけたが、 ぼんやりと分かった程度で力尽きました。 >2に関してはユーザー定義関数を作った方が早いです。 VBAやユーザー定義関数を勉強しながら、追々作っていこうと思います。 ありがとうございました。

関連するQ&A

  • エクセルの文字列・数値【長文です】

    昨日、LEFT関数の使い方を教えていただきましたが、これですとLEFT関数を用いたところが【文字列】として認識されました。【数値】として認識させる方法を教えてください。 初心者で申し訳ございません。 昨日の質問・いただいた回答は以下の通りでした。 ≪質問≫ [123456/あいうえお/abc][234567/かきくけこ/efg]のようなデータがいくつかあって(例えばA列に)、B列に[123456][234567]、C列に[あいうえお][かきくけこ]、D列に[abc][efg]と表記できるような【関数】を教えてください。 ≪いただいた回答≫ A1にデータがあったとして。 B列 =LEFT(A1,SEARCH("/",A1,1)-1) C列 =LEFT(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),SEARCH("/",RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),1)-1) D列 =RIGHT(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),LEN(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)))-SEARCH("/",RIGHT(A1,LEN(A1)-SEARCH("/",A1,1))))

  • Excelの文字列を数値に変換する方法

    Excel初心者です。(office2003) A1に100円と入力されています(文字列) B1に数値の100を導きたいとしています =LEFT(A1,LEN(A1)-1)は(文字列)になってしまいます =VALUE(A1) も同様でした 宜しくお願いいたします

  • Excel(文字列操作)についての質問です。

    今、Excelで、最初の文字とアンダースコアのあとの文字を取り出す方法を考えています。 (例:ABC_DEF_GHI→ADG) しかし、アンダースコアが何個あるかわかりません。 現在、A1セルに、ABC_DEF_GHIと入力されているとき、 =LEFT(A1,1) & MID(A1,FIND("_",A1,1)+1,1) & MID(A1,FIND("_",A1,FIND("_",A1,1)+1)+1,1)・・・・・ と入力すると取得は出来るのですが、アンダースコアの数が変更になると対応できません。 関数、VBAどちらでも結構ですので、よろしくお願いいたします。

  • エクセル関数:右側の文字列を抜き出す方法

    エクセル初心者です。 文字列の抜き出す方法で悩んでいます。 たとえば、A1~A5までに下のような 文字列が順に入っているとします。 C:\abc\TEST1.DOC C:\abc\def\TEST2.DOC C:\abc\def\ghi\jkl\TEST3.DOC C:\abc\def\ghi\TEST4.DOC C:\abc\def\TEST5.DOC これらの文字列の一番右側の'\'以降の文字列 (TEST1~5.DOC)を、B1~B5のセルに 出したいと思っているんですが できるのでしょうか? RIGHT関数や、LEN関数、FIND関数を使って できそうな気がするのですが どうも良い方法が思いつきません。 よろしくお願いします。

  • 文字列操作

    VB6です。 質問させてください。 ↓例、Buffer変数に取得データが入ります 最終的に下記の3つの値を取得したいです。 Value(1) = "ABC" Value(2) = "DEFGHIJKL" Value(3) = "MN" 少し長いと思います。スマートな方法はございますか? ----- Dim Buffer As String Dim Temp1 As String Dim Temp2 As String Dim Value() As String Buffer = "?ABC-?DEFGHIJKLMN-" '取得データ '前後?-を除きます。 Temp1 = Right(Temp1, Len(Buffer)-1) Temp1 = Left(Temp1, Len(Temp1)-1) 'この時点で、4文字目、5文字目の-?を除きます Temp1 = Left(Temp1, 3) Temp2 = Right(Temp1, 11) '"ABCDEFGHIJKLMN"を取得 Value = Temp1 & Temp2 '"ABC"を取得 Value(1) = Left(Value, 3) '"DEFGHIJKL"を取得 Value(2) = Right(Value(2), Len(Value)-3) Value(2) = Left(Value(2), Len(Value)-2) '"MN"を取得 Value(3) = Right(Value, 2)

  • 文字列末尾についている数字を削除する2

    先ほど締め切ったのですが、 大変申し訳ありません、再質問をさせてください。 (初質問の上に不手際続きで本当に申し訳ありません) 前回質問 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2333617 カタカナ濁音がある場合に、 =LEFT(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A1)&1234567890))-1) を使うとうまくいかず、 =IF(AND(RIGHT(A1,3)>="100",RIGHT(A1,2)<="999"),LEFT(A1,LEN(A1)-3),IF(AND(RIGHT(A1,2)>="10",RIGHT(A1,2)<="99"),LEFT(A1,LEN(A1)-2),IF(AND(RIGHT(A1,1)>="0",RIGHT(A1,1)<="9"),LEFT(A1,LEN(A1)-1),A1))) でなんとかうまくいったものの、 内容が汎用的ではなく、もう一案いただきたく =JIS(LEFT(ASC(A1),FIND({1,2,3,4,5,6,7,8,9,0},ASC(A1)&"1234567890")-1)) をテストデータでやったところうまくいったので 締め切らせていただいたのですが、 本ちゃんデータで走らせて見たところ、 コードの最左数値が1以外のものではうまくいきませんでした。 つまり カブ1   カブ カブ10  カブ カブ100 カブ カブ2   カブ2 カブ20  カブ20 カブ200 カブ200 もう少しお知恵をいただけるとうれしいです。 ずうずうしくて大変申し訳ありません

  • 文字列を取り出す

    A列に[ No.××× ] あああああ・・・と入力されています。 毎回入力される行数が違います(100~300行) B列にNo.×××という文字列だけ取り出すために下記の関数が入っているのですが A列に入力のあった分だけをマクロで処理できませんか。 =LEFT(RIGHT(A2,LEN(A2)-FIND("[ No",A2,1)),8) 現在は300行目までこの関数が入った状態で、エクセルが重い気がします。

  • Excelの文字列関数について

    Excelの文字列関数について こんにちは。Excel2007を使用しています。 先日、こちらで質問させていただいた【QNo.5785641】の続きになるのですが・・・ セルの中にある特定の文字が含まれている場合は、ある文字の後ろの数値を抽出したいという質問で、 例えば、セルA1に『AA-11 $100.00』、A2に『BB $ 95.00』と入力されている場合、『AAという文字が含まれている場合はB1に$マークの後ろの数値を抽出、BBという文字が含まれている場合はC1に$マークの後ろの数値を抽出する』というものを関数を使用して作りたいというものに対し、 =IF(COUNTIF(A1,"*AA*")=1,RIGHT(A1,LEN(A1)-FIND("$",A1)),"") =IF(COUNTIF(A1,"*BB*")=1,RIGHT(A1,LEN(A1)-FIND("$",A1)),"") という回答をいただきましたが、さらに追加で質問です。 例えば、セルA1に『AA-11 $100.00 aabbcc』、A2に『BB $ 95.00 abc』というように、抽出したい数値の後ろにも文字が入力されている場合はどのようにしたらよいのでしょうか? 宜しくお願いします。

  • エクセルで数字、文字列混在のセルから数字のみを抽出し、その合計をスマー

    エクセルで数字、文字列混在のセルから数字のみを抽出し、その合計をスマートに計算する方法を探しています。 現在は他のWEBサイトから数字を抽出する方法が探せたので、それを元に、こんな式を使って計算しています。 =SUM(LOOKUP(10^17,LEFT(L34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(N34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(P34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(R34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(T34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(V34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(X34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(Z34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AB34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AD34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AF34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AH34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AJ34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AL34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AN34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AP34,COLUMN(2:2))*1)) このLEFT(xx34,・・・)の部分をまとめてくくれれば式が単純になると思いますが、いい方法が探せません。 もしこれ以外で、スマートになる方法があればそれでも歓迎します。 ちなみにセルに入力されているデータの例としては「150(4年間)」、「2000(6年間)」などです。 この数字だけの部分を足したいのです。 データが膨大になりフォーマットを変えるのは至極大変なので上述のことを考えた次第です。 皆さんのお力でなんとか出来ればと思っています。 よろしくお願いします。

  • 文字列を日付で認識するには-2-

    こんにちは。 Excel2000のことで先ほど質問をさせて頂きました。 "=20910"と入力しているデータを 日付として認識するための方法を教えていただきました。 ※その他にもデータは100件以上あります。 回答は、 =DATE(LEFT(A1,LEN(A1)-4)+2000,MID(A1,LEN(A1)-3,2),RIGHT(A1,2)) を頂きました。 結果、2000年代は正しい結果が得られたのですが、 1900年代の場合はどのようにすれば宜しいでしょうか? 991101、781011などの場合です。 よろしくお願いいたします。