5

これらの単語に電子メールを意味する「@」が含まれているという条件で、セミコロンの間の特定の単語を抽出する必要があります。

次に例を示します。

A1 >> james john;Paris street;p.o. box:12345;tel.987654321;username@site.com;usa
B1 >> david eric;34th street;tel.543212345;name@web.net;canada;ottawa

... 等々

電子メールの特定の場所がないため、どこにでもあることに注意してください。また、「@」以外の一般的な単語や文字がないため、電子メールを抽出して A2 と B2 などに入れるには、セミコロン + 含む「@」のいずれかを選択する式が必要です。

4

5 に答える 5

3
B1        =FIND("@",A1)
C1        =IF(ISERR(FIND(";",A1,B1)),LEN(A1)+1,FIND(";",A1,B1))
D1        =MAX(IF(ISERR(FIND(";",LEFT(A1,C1-1),ROW(INDIRECT("A1:A"&B1)))),0,FIND(";",LEFT(A1,C1-1),ROW(INDIRECT("A1:A"&B1)))))
E1        =MID(A1,D1+1,C1-D1-1)

必要に応じて、これらを 1 つのスーパーフォーミュラに組み合わせることができます。

B1 = the location of the at sign
C1 = the first semicolon after the @
D1 = the semicolon before the at sign (array entered)
于 2010-10-26T16:52:40.360 に答える
2

データを列にコピーしますA
データを選択します。
Data-> Text to Columns...
DelimitedNext >
Semicolon
Finish

これで、列にデータがありますA-F

入力G1

=INDEX(A1:F1,1,MATCH("~",IF(ISNUMBER(FIND("@",A1:F1)),A1:F1),-1))

Ctrl + Shirt+Enterを押します。数式を下にドラッグします。

于 2010-10-26T08:21:11.867 に答える
1

正規表現を使用するVBA関数は次のとおりです。

Function EmailFrom(source As String)

Dim Matches As Object

    With CreateObject("VBScript.RegExp")

        .Pattern = "(^|;)([^;@]+@[^;@]+);?"

        If .Test(source) Then
            Set Matches = .Execute(source)
            EmailFrom = Matches(0).SubMatches(1)
        Else
            EmailFrom = CVErr(xlErrNA)
        End If

    End With

End Function

[更新]または(要約)

Function EmailFrom(source As String)

    With CreateObject("VBScript.RegExp")
        .Pattern = "(^|;)([^;@]+@[^;@]+);?"
        With .Execute(source)
            If .Count > 0 Then
                EmailFrom = .Item(0).SubMatches(1)
            Else
                EmailFrom = CVErr(xlErrNA)
            End If
        End With
    End With

End Function
于 2010-10-26T08:23:12.653 に答える
0

私の簡単な推測では、正規表現を使用する VBA 関数を作成することです。http://www.vbforums.com/showthread.php?t=480272 を確認してください。

于 2010-10-26T07:42:04.840 に答える
0

特定のブレークポイントで文字列を分割するのに役立つ単純な区切り式があります。この場合、セミコロンは、文字列を分割するポイントです。上部のメニューで [データ] をクリックし、データを含む列を選択してから、上部のナビゲーションで [テキストから列へ] を選択するだけです。あなたが指定したブレアルでデータを分割します。あなたの場合、データを分割したいのはセミコロンです。

参考になるスクリーンショットを投稿しようとしましたが、このサイトのスパム検出機能では投稿できません。しかし、いつでも私のハブページhttp://nikhilchandra.hubpages.com/にアクセスして同じことをすることができます. 私はそれが役立つことを願っています:-)

于 2013-01-17T04:27:10.230 に答える