あるソフトを使ってエクセルに映画の字幕を抜き出したら下記のようなデータになったのですが、データとして欲しいのは会話の部分だけです。この例で言うと「 ,, 」より下の「I wish I could,but I don't want to.」の部分のみ自動的に抽出したいのですが、何かいい関数や方法はあるでしょうか?エクセルでの方法を教えてください。よろしくお願いします。


Dialogue: Marked=0,0:09:37.32,0:09:39.22,Style1,Comment,0000,0000,0000,,I wish I couId, but I don't want to.

回答の条件
  • 1人3回まで
  • 登録:2007/06/18 00:14:01
  • 終了:2007/06/18 22:48:17

ベストアンサー

id:Reiaru No.3

Reiaru回答回数152ベストアンサー獲得回数382007/06/18 00:34:15

ポイント40pt

1) 正規表現の扱えるテキストエディタに全てを貼り付ける

2) ,, を \t (タブ) に一括置換する

3) そのテキストを全てコピーして Excel に貼り付ける

4) A 列を削除する


これで会話の部分だけが残る事になります。

その他の回答(2件)

id:apr-25 No.1

apr-25回答回数200ベストアンサー獲得回数32007/06/18 00:53:15

ポイント40pt

http://q-apr25.ne.jp/(dummy)

抽出したい文字列は必ず最初の「,,」の直後にありますか。あるのならば、対象データがA1のセルにあるとするならば以下の関数でよいのではないでしょうか。

=RIGHT(A1,LEN(A1)-FIND(",,",A1,1)-1)

LEN関数により全体のデータの文字数を求め、さらにFIND関数により最初の「,,」出現位置が先頭(左側)から何文字目かを求めその次(2文字目の「,」までの文字列を無視して、その後方(右側)にある文字だけをRIGHT関数で抽出します。FIND関数の代わりにSEARCH関数を使うこともできます。

id:t_shiono No.2

t_shiono回答回数256ベストアンサー獲得回数222007/06/18 00:46:21

ポイント40pt

挙げてもらった例だけでは判断しかねるのですが、

抜き出したい部分までの文字数または、「,」の数が固定と想像されますので、その場合について答えます。

文字数が固定であれば、MID関数を使ってください。次の感じです。

MID(セル,対象「,」までの文字数, LEN(セル)-対象「,」までの文字数)

「,」の数が固定であれば、FINDやSEARCHを複数回使うことでできます。美しくないですが、次のような感じです。抜き出す文字列長を計算するので、抜き出すべき文字列のインデックスを書き出しておくといいかもですね。

インデックスのセル = FIND(",", セル, 1 + FIND(",", セル, ・・・));

抜き出した文字列 = MID(セル, インデックスのセル, LEN(セル)- インデックスのセル)

あと一番シンプルにかけるのは、VBマクロを使ってしまうことではないでしょうか?

id:Reiaru No.3

Reiaru回答回数152ベストアンサー獲得回数382007/06/18 00:34:15ここでベストアンサー

ポイント40pt

1) 正規表現の扱えるテキストエディタに全てを貼り付ける

2) ,, を \t (タブ) に一括置換する

3) そのテキストを全てコピーして Excel に貼り付ける

4) A 列を削除する


これで会話の部分だけが残る事になります。

  • id:Reiaru
    「Excel 内で」とあったのですが、
    それに限定するとどうしても VBA が必要になってきます。

    より手軽な方法と考えて他のソフトを利用する回答をしてみましたが、
    何かしらの事情がおありなのかもしれませんよね。

    その際にはポイントなどは不要です。
  • id:rikuzai
    う~ん、この定義なら、
    区切り位置で「,,」を区切り文字に設定するだけで一発という気がしますが。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません