• 締切済み

特定の文字や数字だけを抽出

redslove10の回答

回答No.1

VBAのコードを書いてみました。 Function RegExpExtract(strng, indx) Dim regEx, result1, result2 Set regEx = New RegExp regEx.Pattern = "(^[0-9]{2})([a-zA-Z]{0,2})([0-9]{3})([a-zA-Z]{0,2})" regEx.Global = True RetStr = "" Set result1 = regEx.Execute(strng) If result1.Count > 0 Then Set result2 = result1(0).SubMatches If result2.Count >= indx Then RetStr = result2(indx) End If End If RegExpExtract = RetStr End Function ExcelワークシートのA列に対象文字列を置き、B列に=RegExpExtract(A1,0)、C列に=RegExpExtract(A1,1)、D列E列も同様としてください

関連するQ&A

  • 特定文字列の抽出

    VB6の質問です。 桁数、データが不定の文字列中から特定文字を抽出したいのでが、方法を教えていただけないでしょうか? 抽出したいデータの桁数が毎回不定でMid, Left, Right関数が使用できません。 Dim Buffer As String Buffer = "A12345...B678910.TRAGET..C" '桁数、データが不定の文字列がBufferに入ります。 例えば、変数Bufferから、桁数を考慮しないで"TARGET"の文字列を抽出したのです。 InStr関数で、位置を特定して、Mid関数などで抽出するれば、良いと思うのですが これをどんな桁数のときも対応できるようにルーチン化にできないでしょうか?

  • エクセル 文字列で右から一文字づつ文字を抽出したい

    エクセル2010を使用しています。 mid(抽出したいセル,左からの文字数,抽出したい文字数)と作業を行ってきましたがmid関数は常に左から抽出されるようです。 そこでright(抽出したいセル,抽出したい文字数)と試みましたが、一番右はOKですが2文字目、3文字目とどのように抽出してよいかわかりません。 どなたかご教授いただけませんでしょうか。

  • スペースを含んだ文字列から文字列の抽出

    エクセルバージョン2007 スペースを含む文字列で、A列に文字列がある時、以下の式を組んで文字列を抽出しています。 先頭にIDの数字が有る場合は、それぞれの目的に合った文字列を抽出しています。 B1=LEFT(A1,SEARCH(" ",A1,1)-1) C1=LEFT(MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),1)-1) 3 3df-32654-10 CCCCHH 10 1ab-12345-00 AAABBBB この文字列の場合、B列に3と10が表示、C列に 3df-32654-10 1ab-12345-00が表示されます。 先頭に、IDの無い文字列は以下の様な構成です。 6rt-95132-00 PPPKKK この文字列の場合、B列に6rt-95132-00、C列にPPPKKKが表示されてしまい、この場合、IDの数字が無い場合はB列には表示させない又は、C列に6rt-95132-00させたいと思っています。 ご教授頂ければ幸いです。 以上、宜しくお願い致します。

  • ACCESS 文字の抽出方法

    ACCESS2000で開発しています。 簡単なことだと思うのですが、ある文字列のなかから"/"以外の文字を抽出するにはどうすればよいですか? 例)年月日 テキスト ”2008/06/23”               ↓            ”20080623” LEFT関数やMID関数でできるのですが、できれば上記の方法でやりたいと思っています。 よろしくお願いします。

  • 指定した文字列が抽出できる関数

    Excelで、指定した文字列だけを抽出表示する場合、「文字列を先頭(左)から抽出する」などの関数は「LEFT関数」や「RIGHT関数」がありますが、位置の指定ではなく、文字列の中にある、特定の文字だけを指定して抽出してできる関数は何でしょうか? たとえば「ラーメン」「うどん」「そば」いずれかを「含む」文字列が入っているセルの中から、「うどん」のセルだけを抽出して表示するという場合です。

  • 関数で文字列と数字の組合せから数字のみを取り出す

    お世話になります。 文字列+数字から数字のみを取り出す関数はエクセル技道場などで紹介されている =MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)),LEN(A1)*10-SUM(LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},))))で可能ですが、たとえばSSPAS2.5などのように小数点を含む数字の場合結果は2.となります。正しい結果を得るためにはどのような関数を使えばいいのでしょうか。数字には整数、少数点を含むものが混在しているとします。 どなたかよろしくお願いします。

  • 表の中でもっとも多く使用されている文字(数字)を抽出するには

     |A|B|C|D| -------------- 1|あ|い|う|え| -------------- 2|お|あ|あ|か| -------------- 上記は1行目に左から「あ」「い」「う」「え」が入力されていることを表しています。 この表の中から、一番多く入力されている文字だけを別のセルに抽出させるにはどのようにしたら良いでしょうか。 上記の例を使用すると、A列の5行目(任意のセル)に「あ」と抽出するようにしたいです。 いろいろと調べてみましたが、このように表の中で最も多く入力されている、「文字」または「数字」だけを抽出するという処理方法がみつかりませんでした。 マクロなら可能でしょうか? このような処理ができる関数もなさそうなので、無理なのかな。 アドバイスを御願い致します。

  • 【Excel】特定の文字間の数字を取り出す

    Excel2003を使用しています。 あるセルに「●●●A9B××…」と入力してあった場合、AとBの間にある数字“9”を取り出すにはどうしたらいいでしょうか? 全体の文字数は変化しますが、AとBという文字は必ずあって、その間にある数字だけを取り出して、それを別の計算で使用したいのです。数字は1桁か2桁のいずれかですが、関数の組み合わせ等で可能でしょうか? よろしくお願いします。

  • Excelで数字だけ抽出

     Excelを最近になって職場で使い始めました。 初心者ですのでよろしくお願いします。  「パソコン(25%)」,「プリンタ(55%)」のような列の中から %の前の数字の部分だけを抽出したいのですがうまくできません。 MIDやLEFTだと、%の前の部分の文字数が同じでないといけないし、、。  今は隣の列に数字だけを手入力して、その数値を使って 計算しているのですが面倒なので、なにかいい手段があれば 教えてください。    

  • 文字と数字を1文字ずつ分割し右詰めさらに0は空白

    エクセルで仕訳伝票を作成していますが文字と数字を1文字づつ分割し右詰までできましたが、0のばあいは空白にしたいです。 =IF(COLUMNS(P:$P)>LEN(TEXT($A9,"¥0;¥-0")),"",LEFT(RIGHT(TEXT($A9,"¥0;¥-0"),COLUMNS(P:$P)),1)) 色々調べてこの関数を使っていますがA9に金額を入れ¥0は空白にしたいです。よろしくお願いいたします。