特定の文字列間の文字の抽出方法とは?

このQ&Aのポイント
  • Excelでセルの中の、特定の文字列と文字列の間にある文字列を抜き出せる関数がありますか?抽出したい文字は一定ではない場合もあります。
  • 具体的には、A1セルに「error_message: 」と「detailed_description:」の間にある文字列を抽出したいです。
  • 抽出方法がわからず苦労しています。Excelの関数や方法を教えていただければ幸いです。
回答を見る
  • ベストアンサー

EXCEL関数 特定の文字列間の文字の抽出について

こんにちは。 Excelでセルの中の、特定の文字列と文字列の間にある文字列を抜き出せる関数がありましたら教えてください! 例:A1セルに、 「~  error_message: エラーが発生しました。  detailed_description: ~  ~」 と記載されています。 「error_message: 」と「detailed_description:」の間にある文字(この場合「エラーが発生しました。」)を抽出したいです。 ※間にある文字の内容、文字数は一定ではないです。 なかなかうまく行かず、苦労しています。。。 ご教示ください。よろしくお願いいたします。

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

  • ベストアンサー
  • a987654
  • ベストアンサー率26% (112/415)
回答No.1

データがA1にあるとして下記 =MID(A1,FIND("error_message:",A1)+14,FIND("detailed_description:",A1)-FIND("error_message:",A1)-14)

その他の回答 (3)

回答No.4

もう質問されてから半年以上前ですので解決していると思いますが、私も同様な問題を解消した事があったので、記録回答させてもらいます。 「~  error_message: エラーが発生しました。  detailed_description: ~  ~」 との事。”~”がどんな文字列なのか、文字数なのか不明ですが、   ※間にある文字の内容、文字数は一定ではないです。 との事ですので、この”エラーが発生しました。”というメッセージ部分の前後が いつも固定文字数であるなら、添付画像のような、 LEFT、RIGHT、LEN の関数の組み合わせで、前後の文字を取り外す事が出来ました。 例: =LEFT(RIGHT(A6,LEN(A6)-$C$2),LEN(RIGHT(A6,LEN(A6)-$C$2))-$C$3) ”$C$2” は、メッセージより前の文字数(error_message: だけであれば、14文字) ”$C$3” は、メッセージより後の文字数(detailed_description: だけであれば、21文字) で、直接、数値の”14””21”を入れてもかまいません。

この投稿のマルチメディアは削除されているためご覧いただけません。
marukomepa
質問者

お礼

ありがとうございます。助かりました。

noname#204879
noname#204879
回答No.3

=TRIM(MID(A1,FIND("_message:",SUBSTITUTE(A1,CHAR(10),""))+10,FIND("detailed_",SUBSTITUTE(A1,CHAR(10),""))-FIND("_message:",SUBSTITUTE(A1,CHAR(10),""))-9))

  • 135ok
  • ベストアンサー率34% (26/75)
回答No.2

いかがでしょうか。 =SUBSTITUTE(SUBSTITUTE(A1,"~error_message:",""),"detailed_description: ~~」","")

関連するQ&A

  • EXCEL関数 特定の文字列以降の文字の抽出について

    こんにちは。 以前にも似たような質問をしたのですが、 Excelでセルの中の、特定の文字列以降の文字列を全て抜き出せる関数がありましたら教えてください! 例:A1セルに、 「~  detailed_description: ~  ~」 と記載されています。 「detailed_description:」以降の文字(「detailed_description:」は含まない)を抽出したいです。 ※(「detailed_description:」以降の文字数は一定ではないです。 今回もなかなかうまく行かず、苦労しています。。。 ご教示ください。よろしくお願いいたします。

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

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

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

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

  • Excel2003の関数で文字の抽出

    Excle初心者です。以下のことを関数を使用して実行したいのですが・・・。宜しくお願いします。 列の各セルには文字の羅列があります。これらの特定文字のみを抽出またはカウントしたい。   列1 ----------- (1)(2)(3) (2)(3) (3)(5) (1)→1 (2)→2 (3)→2 (4)→0 (5)→1

  • EXCEL2007で文字列の右側から特定文字を抽出

    EXCEL2007で1つのセルの文字列の右側から最初の"/"が出現したときまでの文字を抽出する方法を教えてください。 (例)  A 1エクセル/関数/123456/ここがターゲット 2 3 ⇒関数を使用し、上記A1セルの「ここがターゲット」の文字列を抽出したいのです。 神様、どうか教えてください!

  • セル内のある範囲の文字列を関数で抽出したいです

    すみません、以下のような文字列がセルにある場合に、エクセル関数を使って、特定する範囲の文字列を抜き出したいのですが、ご教示頂けませんでしょうか? A1セル:()で囲まれた文字列が先頭と末尾に含まれています。  (文字列1)文字列2(文字列3) A2セル:文字列2だけを抜き出したいです。  文字列2 あともし可能であれば、文字列2を抽出する際に(文字列3)の部分を、 A3セルに入っている文字列に変更したいのですが、 A3セル:たとえば、「1234567」と入っていた場合では、【】をつけて  文字列2【1234567】 という形に直したいという内容となります。 いろいろ試してみたのですがどうしてもできず、お力添え頂けませんでしょうか? 何卒宜しくお願い致します。

  • エクセルで文字列の抽出

    エクセルのデータの中から、「年.月付け」(例 2007.02付け)」という文字列を すべて抽出したいのですが、「****.**付け」で関数で式を作成しても エラーメッセージがでて、うまく抽出できません。 (関数がまちがってるのかもしれませんが。。。) どのようにしたら、抽出できるのでしょうか? ご教示のほどよろしくお願いいたします。

  • 特定文字列の抽出

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

  • エクセルで特定の範囲の文字列を抜き出したいのですが関数がわかりません。

    エクセルで特定の範囲の文字列を抜き出したいのですが関数がわかりません。 抽出の条件は「セルの中の【 】でくくられた部分」(【】も含む)です。 各セル内の文字列はすべてこの【】から始まる文章で構成されているのですが、 【】内の文字数はそれぞれ違うという状態です。 文字数が固定の場合の関数は思いつくのですが、異なる場合がよくわかりません。 よろしくお願いします。

  • Excel2007 マクロ 特定セルの文字列抽出

    Excel2007 マクロ 特定セルの文字列抽出 A列に100行程度、製品番号が入っています。 例えばAAAA-NNN-BBBB-UUUUUUUとある場合に NNNだけを抽出して、B列に転記します。 関数であれば、Mid関数で解決できるのですが、 マクロで解決したいです。 下記を自分で考えたのですが、エラーが発生します。 アドバイスお願いいたします。 Sub moji() Dim last As Long, i As Long Dim strt As Integer 'A列「製品番号」から文字を抽出してB列に反映 last = Range("A65536").End(xlUp).Row For i = 2 To last strt = Mid("A", 7, 3) Cells(i, "B") = strt Next i End Sub

専門家に質問してみよう