人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

あるソフトを使ってエクセルに映画の字幕を抜き出したら下記のようなデータになったのですが、データとして欲しいのは会話の部分だけです。この例で言うと「 ,, 」より下の「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.


●質問者: hatenua
●カテゴリ:コンピュータ インターネット
✍キーワード:I WiSH エクセル ソフト データ 字幕
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● apr-25
●40ポイント

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

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

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

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


2 ● t_shiono
●40ポイント

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

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

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

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

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

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

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

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


3 ● Reiaru
●40ポイント ベストアンサー

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

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

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

4) A 列を削除する


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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ