Extraindo Texto (Letra Maiúscula)

Extraindo Texto (Letra Maiúscula)

Baixei o histórico de transações bancárias e gostaria de extrair o nome dos clientes que está localizado no final da linha Descrição. Algumas linhas possuem uma ou duas palavras antes dos nomes do cliente. Como posso extrair todos os nomes em letras maiúsculas.

Também preciso extrair o valor transferido do texto e convertê-lo em números.

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

Resultado:

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

Responder1

Usando macros/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

Existem duas funções extract_namee extract_amount.

Abra o VBA com ALT+ F11, insira um módulo emEsta pasta de trabalhoe cole o código no lado direito.

Supondo que TRSF E-BANKING DB 2701/FTSCY/WS95051 12000.00 JAMES BOND 12,000.00 DBesteja na célulaA2então:

B2 =extract_name(A2)eC2 =extract_amount(A2).

informação relacionada