2016-11-10 19 views
0

レポートから特定のデータを抽出するタスクがあります。コール・アドバイザがスクリプトに費やした時間を教えてくれるスクリプト・ソフトウェアに何かを追加しました。これは、ほとんどの場合、文字列の真ん中で正しいですが、文字列の長さは異なります。excelで混合文字長文字列からベクトル長の数値を抽出する方法

私はそれを簡単にするために抽出する必要があるテキストの下限を追加しましたが、理想的には末尾に1つのアンダースコアを使用して分けたいと思います。以下に、文字列の表示例をいくつか示します。

ZZテストスクリプトのみ:インベントリテスト。はい; は時間がスクリプトで過ごし:11

をこんにちは、私たちは彼らの問題に関してマイクロソフトカスタマーからの電話を受けています..._時間はスクリプトで過ごした:123_Q1 =あなたは?:A1 =「その他」をタスクにしたいです。 ...

私が後にしたのは、「スクリプトで費やされた時間」の後ろに数字の数字だけを抽出する方法です。これらの数字は、1〜4文字の長さにすることができます。潜在的に5ですが、ありそうもありません。私は2番目のアンダースコアの左にある文字を抽出しようとしましたが(私は最初のアンダースコアを削除して、将来のすべてのレポートにこれがないようにすることができます)、これは文字列に他のアンダースコアがないことを前提としています。私たちはしばしばそこに電子メールアドレスを持っており、それらのいくつかには下線があります。

私はSQLのバックグラウンドから来ているので、何時間もこれに固執している可能性が高いことを知っているので、Excelは私の特権ではありません。

+0

それはあなたが正規表現を使用したいと思うでしょう可能性があります:http://stackoverflow.com/questions/22542834/how-to-use-regular-expressions-regex-in- microsoft-excel-both-in-cell-and-loops – maxhob17

+0

数字*は常に「スクリプトに費やされた時間」ですか? – tigeravatar

+0

こんにちはtigeravatar、はい、それは常にその形式になります。 Maxhob17、私は現在、これについて詳しく学ぶためにこれを読んでいます。それ以前にExcelでマクロを使用したことはありませんでした。 –

答えて

0

以下では、答えを得るためのよりラウンドアバウトな方法について説明しますが、マクロの必要性を回避します。あなたの文字列を想定し

があるA1に:=FIND("Time spent in script:",A1)

C1(ターゲット文字列の長さ):=LEN("Time spent in script:") = 21

D1

B1(ターゲット文字列の文字を開始)ターゲット文字列の後の最初の "_"の位置):=FIND("_",A1,B1)

E1(結果):=INT(MID(A1,B1+C1,D1-B1-C1))

関連する問題