![Extraindo Texto (Letra Maiúscula)](https://rvso.com/image/1482495/Extraindo%20Texto%20(Letra%20Mai%C3%BAscula).png)
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_name
e 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 DB
esteja na célulaA2então:
B2 =extract_name(A2)
eC2 =extract_amount(A2)
.