• ベストアンサー

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

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

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

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

もうデータが固まっているのであれば、関数よりもエクセルの機能の「区切り位置」を使った方が便利ですよ。 2回に分けることになりますが、 区切り位置 ⇒ カンマやタブなどの~ ⇒  その他 にチェック及び横のボックスに 【 を入力 ⇒ 【を境に前後にデータが分かれるのでいらない列を選択しは削除にチェック ⇒ 完了 をやった後今度は 】 でやる あるいは【 】の前後に文字が入っていないのであれば、置換機能を使って【 及び 】を何もなしに置換するのが一番早いです。 列ごと選んで、 置換 ⇒ 検索する文字に【 ⇒ 置換後の文字に何も入れない ⇒ すべて置換 をやった後、】でもやる。 何も関数が早いor便利とは限りません。エクセルの機能をフルに使いましょう!

hydrangean
質問者

お礼

で、できました! データ数が100を超えていたので、一度に作業ができて感激です。 エクセルはあまり詳しくなく、「区切り位置」の機能は初めて使いました。 大変助かりました。 ありがとうございました!

その他の回答 (3)

回答No.3

以下の文字列がD5にあると仮定します。 "A0B0C0【XYZ012】D0E0F0" ここから"【XYZ012】"を取り出すのは =MID(D5,FIND("【",D5,1),FIND("】",D5,1)-FIND("【",D5,1)+1) で行けると思います。 ただし"【】"が必ず含まれるという前提です。

hydrangean
質問者

お礼

早々にご回答ありがとうございました。 おそらく私の説明が現実と乖離していたんだと思いますが なぜかうまくできませんでした。 でも、いただいた関数をベースにしたらできそうな気配です。 チャレンジしてみます。 ありがとうございました!

noname#204879
noname#204879
回答No.2

》 文字数が固定の場合の関数は思いつくのですが… その場合の貴方が「思いつく」関数を示してください。

hydrangean
質問者

お礼

MID関数とやらを使うんだな、とエクセルのヘルプを見て 思っていたのですが、【】の中の文字数はバラバラだし・・・、 という感じでした。 今回は関数ではなく、「区切り位置」の機能でいけそうです。 早々にご返信、ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

始めと終わりのカッコがそれぞれ実際に何文字目に出てくるのか関数で数えて,その範囲を切り取ります。 計算例: =MID(LEFT(A1,FIND("】",A1)),FIND("【",A1),999) #で。百聞は一見にしかずと言います。 頑張って言葉で説明するより,ひとつ「実際の具体的なサンプル」をそのままお手元のエクセルからコピーして掲示し,これから「これこれの結果が欲しい」とご相談に書いてみるといいです。

hydrangean
質問者

お礼

早々にご回答ありがとうございました。 おそらく私の説明が現実と乖離していたんだと思いますが なぜかうまくできませんでした。 おっしゃる通り、具体的な例を出さないと お答えいただく方が大変ですよね。 以降、そうさせていただきます。 いただいた関数をベースにまたチャレンジしてみます。 ありがとうございました!

関連するQ&A

専門家に質問してみよう