Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

ESTRARRE IL TESTO A PARTIRE DAL 2° SPAZIO

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

ESTRARRE IL TESTO A PARTIRE DAL 2° SPAZIO

Postdi scanacc » 06/10/20 00:02

Ho una lista di disposizioni che iniziano tutte con
BONIFICO A VS FAVORE DA MARIO ROSSI E POI TUTTA UNA SERIE DI INFORMAZIONI
BONIFICO A VS FAVORE DA EBEUI PEUIUI E POI TUTTA UNA SERIE DI INFORMAZIONI
BONIFICO A VS FAVORE DA GIOVANNI VERDI E POI TUTTA UNA SERIE DI INFORMAZIONI
BONIFICO A VS FAVORE DA MARIO ROSSI E POI TUTTA UNA SERIE DI INFORMAZIONI
BONIFICO A VS FAVORE GIULIO CESARE E POI TUTTA UNA SERIE DI INFORMAZIONI
BONIFICO A VS FAVORE SCANACC SANDRO E POI TUTTA UNA SERIE DI INFORMAZIONI

Vorrei estrarre il Nome e Cognome.
Ammesso e non concesso che sia un nome classico composto da due parole, ho provato a estrarre 20 caratteri dopo la parola FAVORE e poi ho eliminato il DA che a volte compare (e a volte no) nella descrizione.
Ma non riesco a trovare il punto dove fermare l'estrazione.
Secondo il mio punto di vista, dopo aver eliminato il DA, dovrei chiedere alla formula di fermarsi dopo il secondo spazio vuoto.
Ma non lo so fare
Aiutoooooooooooooooooooooooooooo
scanacc
Utente Senior
 
Post: 282
Iscritto il: 06/12/15 10:30

Sponsor
 

Re: ESTRARRE IL TESTO A PARTIRE DAL 2° SPAZIO

Postdi Marius44 » 06/10/20 05:47

Ciao
Forse con la funzione SPLIT (ovviamente VBA) dando come delimitatore lo spazio (cioè " ").
Poichè la funzione restituisce una matrice (base 0 - zero) estrai, ammesso che i dati siano SEMPRE come li hai mostrati,
l'indice 4 e 5 (oppure 5 e 6 se lasci il DA).

Ciao,
Mario
Marius44
Utente Senior
 
Post: 516
Iscritto il: 07/09/15 22:00

Re: ESTRARRE IL TESTO A PARTIRE DAL 2° SPAZIO

Postdi scanacc » 06/10/20 10:06

purtroppo non ho capito ... potresti darmi la formula di esempio se hai 1 attimo di tempo
PS
Non si può fare con una formula?
scanacc
Utente Senior
 
Post: 282
Iscritto il: 06/12/15 10:30

Re: ESTRARRE IL TESTO A PARTIRE DAL 2° SPAZIO

Postdi Marius44 » 06/10/20 11:02

Ciao
Io con le formule non ci vado a nozze :D
Penso che possa farsi ma, vista la tua preferenza, lascio il campo ai "formulomani" (senza offesa :lol: )

Ciao,
Mario
Marius44
Utente Senior
 
Post: 516
Iscritto il: 07/09/15 22:00

Re: ESTRARRE IL TESTO A PARTIRE DAL 2° SPAZIO

Postdi Anthony47 » 06/10/20 12:20

Usiamo colonna B come appoggio; se i dati cominciano da A2, allora in B2 usiamo:
Codice: Seleziona tutto
=STRINGA.ESTRAI(SOSTITUISCI(A2;"BONIFICO A VS FAVORE ";"");SE(SINISTRA(A2;24)="BONIFICO A VS FAVORE DA ";4;1);99
Questa ci restituisce la stringa che parte dopo BONIFICO A VS FAVORE (DA).
Copia eventualmente verso il basso

Se vuoi estrarre fermandoti al secondo spazio, allora in C2 puoi usare
Codice: Seleziona tutto
=SINISTRA(B2;TROVA("#";SOSTITUISCI(B2&" 1:1";" ";"#";2)))
Copia eventualmente verso il basso

Se vuoi evitare la colonna di appoggio, "basta" integrare la prima formula nella seconda, cioe':
Codice: Seleziona tutto
=SINISTRA(STRINGA.ESTRAI(SOSTITUISCI(A2;"BONIFICO A VS FAVORE ";"");SE(SINISTRA(A2;24)="BONIFICO A VS FAVORE DA ";4;1);99);TROVA("#";SOSTITUISCI(STRINGA.ESTRAI(SOSTITUISCI(A2;"BONIFICO A VS FAVORE ";"");SE(SINISTRA(A2;24)="BONIFICO A VS FAVORE DA ";4;1);99)&" 1:1";" ";"#";2)))


E cosi' avrai coperto la maggioranza dei casi, ma ben lontano dal 100%

Andrebbe meglio se nel testo ci fosse una qualche parola chiave, tipo " BONIFICO A VS FAVORE DA MARIO ROSSI DI EURO E POI UNA SERIE DI INFORMAZIONI"
In questo caso, con la colonna, di appoggio potresti usare:
Codice: Seleziona tutto
=SINISTRA(B2;SE.ERRORE(TROVA("DI EURO";B2)-1;TROVA("#";SOSTITUISCI(B2&"  ";" ";"#";2))))

(nota che ho previsto che in caso di mancanza della stringa "DI EURO" venga usato il secondo spazio)

E senza la colonna di appoggio:
Codice: Seleziona tutto
=SINISTRA(STRINGA.ESTRAI(SOSTITUISCI(A2;"BONIFICO A VS FAVORE ";"");SE(SINISTRA(A2;24)="BONIFICO A VS FAVORE DA ";4;1);99);SE.ERRORE(TROVA("DI EURO";STRINGA.ESTRAI(SOSTITUISCI(A2;"BONIFICO A VS FAVORE ";"");SE(SINISTRA(A2;24)="BONIFICO A VS FAVORE DA ";4;1);99))-1;TROVA("#";SOSTITUISCI(STRINGA.ESTRAI(SOSTITUISCI(A2;"BONIFICO A VS FAVORE ";"");SE(SINISTRA(A2;24)="BONIFICO A VS FAVORE DA ";4;1);99)&"  ";" ";"#";2))))


Con una "Funzione Utente" la cosa forse diventa piu' semplice. Ad esempio, metti questo codice in un modulo standard del tuo Progetto VBA:
Codice: Seleziona tutto
Function DaChi(ByVal RStr As String, Optional ETipo As Variant = 0) As String
Dim wStr As String
'ETipo=0, si ferma al secondo spazio dopo il presunto Nome Cognome
'ETipo=1, estrae tutto da Nome Cognome
'ETipo="xyz", estrae da Nome Cognome fino alla stringa XYZ, o fino al secondo spazio se mancante
'
wStr = Replace(RStr, "BONIFICO A VS FAVORE ", "", , , vbTextCompare)
If UCase(Left(wStr, "3")) = "DA " Then wStr = Mid(wStr, 4)
If Len(ETipo) > 1 Then
    sstr = InStr(1, wStr, ETipo, vbTextCompare)
    If sstr = 0 Then ETipo = 0
End If
If ETipo = 0 Then
    sstr = InStrRev(Replace(wStr, " ", "#", , 2, vbTextCompare), "#", , vbTextCompare)
    If sstr = 0 Then sstr = 999
    DaChi = Left(wStr, sstr - 1)
ElseIf ETipo = 1 Then
    DaChi = Left(wStr, 999)
ElseIf Len(ETipo) > 0 Then
    sstr = InStr(1, wStr, ETipo, vbTextCompare)
    DaChi = Trim(Left(wStr, sstr - 1))
End If
End Function

Poi torna su Excel dove potrai usare formule del tipo
Codice: Seleziona tutto
=DaChi(A2)

=DaChi(A2;1)

=DaChi(A2;"Euro")

La prima restituisce solo le prime due parole dopo "BONIFICO A VS FAVORE (DA)"
La seconda resituisce come prima ma fino alla fine della stringa di origine
La terza restituisce come la prima ma si ferma quando trova la parola "Euro" (o qualsiasi altra che inserirai nella formula), oppure solo le prime due parole se non trova tale stringa.

Vedi tu...
Avatar utente
Anthony47
Moderatore
 
Post: 17219
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: ESTRARRE IL TESTO A PARTIRE DAL 2° SPAZIO

Postdi scanacc » 06/10/20 14:56

Ora provo ma intanto grazie per gli abbondanti suggerimenti!
scanacc
Utente Senior
 
Post: 282
Iscritto il: 06/12/15 10:30

Re: ESTRARRE IL TESTO A PARTIRE DAL 2° SPAZIO

Postdi scanacc » 06/10/20 16:56

:) :) :)
scanacc
Utente Senior
 
Post: 282
Iscritto il: 06/12/15 10:30


Torna a Applicazioni Office Windows


Topic correlati a "ESTRARRE IL TESTO A PARTIRE DAL 2° SPAZIO":


Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti