テキストの抽出(大文字)

テキストの抽出(大文字)

銀行取引履歴をダウンロードし、説明行の末尾にある顧客の名前を抽出したいと思います。一部の行では、顧客の名前の前に 1 つまたは 2 つの単語があります。すべて大文字の名前を抽出するにはどうすればよいでしょうか。

また、転送された金額をテキストから抽出し、数値に変換する必要があります。

DESCRIPTION                                                     AMOUNT
TRSF E-BANKING DB 2701/FTSCY/WS95051 12000.00 JAMES BOND        12,000.00 DB
TRSF E-BANKING CR 2701/FTSCY/WS95051 10000.00 deposit CHRISTINE 10,000.00 CR
TRSF E-BANKING CR 2701/FTSCY/WS95051 25025.00 AMANDA B GREEN    25,025.00 CR
TRSF E-BANKING CR 2701/FTSCY/WS95051 5000.00 msn1888 JOSH BROWN  5,000.00 CR
TRSF E-BANKING CR 2701/FTSCY/WS95051 1000.00 topup CHRISTINE     1,000.00 CR

結果:

CUSTOMER      TRANSFER
JAMES BOND    12,000
CHRISTINE     10,000
AMAND B GREEN 25,025
JOSH BROWN     5,000
CHRISTINE      1,000
TOTAL         53,025

答え1

マクロ/VBAの使用:

Public Function extract_name(transaction As String)
    Dim WordArray() As String
    WordArray() = Split(transaction, " ")
    firstName = WordArray(5)
    extract_name = firstName
    extract_name_uc = UCase(extract_name)
    If extract_name = extract_name_uc Then
        topBound = 5
    Else
        topBound = 6
    End If
    extract_name = ""
    For i = topBound To UBound(WordArray)
        tempValue = WordArray(i)
        If IsNumeric(tempValue) Then
            i = UBound(WordArray)
        Else
            extract_name = extract_name & " " & tempValue
        End If
    Next i
    extract_name = Trim(extract_name)
End Function

Public Function extract_amount(transaction As String)
    Dim WordArray() As String
    WordArray() = Split(transaction, " ")
    extract_amount = WordArray(UBound(WordArray) - 1)
End Function

extract_nameと の2 つの機能がありますextract_amount

ALT+F11でVBAを開き、下にモジュールを挿入します。このワークブック右側にコードを貼り付けます。

TRSF E-BANKING DB 2701/FTSCY/WS95051 12000.00 JAMES BOND 12,000.00 DBセル内にあると仮定するとA2それから:

B2 =extract_name(A2)そしてC2 =extract_amount(A2)

関連情報