• ベストアンサー

指定文字 ( と、指定文字 )の間の文字を抽出

エクセル又はアクセスで、指定文字 ( と、指定文字 )の間の文字を抽出の方法が知りたいです。横列に長い文があり、その中の カッコ 例(12345)の、12345の部分を抽出したいのですが、方法をお教えいただけませんでしょうか? ()が、指定文字です。縦列には数百あります。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

エクセルの一例です。 A列がデータ、括弧記号は半角、以下の数式を任意セルに入力、下方向にコピー 括弧がない場合は、空白としています。 =IF(COUNTIF(A1,"*(*)*"),MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1),"") 因みに抽出結果をデータとしたい場合、抽出結果範囲をコピー→貼り付け先で形式を選択して貼り付け→値を選択→OKとして下さい。

kurounin777
質問者

お礼

ありがとうございました。このように考えて組み立てるのですね。思いつきませんでした。助かりました。初心者なので、またご教授お願いします。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

・関数で出す ・プログラムで出す ・プログラムでも正規表現という仕組みを使う ・検索のソフトなどでこういうタイプが出来るものを使う などあると思います。 ーーー 質問者のレベルがどのへんかわからないが。 1つ(()内1組だけ)だけなら何とか関数で出来る。 例文 A1セル あす集合時刻(10:00)に間に合うように公園に集合 式 =MID(A1,FIND("(",A1),FIND(")",A1)-FIND("(",A1)+1) 結果 (10:00) 但し( や )がない場合の手当てをすると式が長くなる。 又(と)のペアでない場合とかをチェックも。 =IF(AND(COUNTIF(A1,"(")>0,COUNTIF(A1,")")>0),"","X")を前にかぶせて、”X”のところに上記の式を挟む。

kurounin777
質問者

お礼

参考になりました。ありがとうございました。

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

このようなケースではワイルドカードを使った置換を利用するのが簡単です。 対象範囲を選択して、Ctrl+Hで置換ダイアログを出して、検索する文字列に「*(」置換j後の文字列には何も入力せず「すべて置換」します。そのままもう一度、検索する文字列に「)*」と入力して「すべて置換」すればご希望のデータになっています。

kurounin777
質問者

お礼

確かに置換でも簡単にできますね。ありがとうございました。

関連するQ&A

専門家に質問してみよう