La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Buongiorno a tutti,
Tra le varie formule che mi trovo ad usare spesso per lavoro è l'estrazione da una stringa fino ad un certo carattere da sinistra o destra.
Mi ero appuntato le seguenti formule:
ESTRARRE TESTO DA SINISTRA FINO A UN CARATTERE
=SE.ERRORE(SINISTRA(Q2;TROVA("-";Q2)-1);Q2) Es: 1111-222 Ris. 1111
ESTRARRE TESTO DA DESTRA FINO A UN CARATTERE
=SE.ERRORE(DESTRA(Q2;LUNGHEZZA(Q2)-TROVA("-";Q2));"") Es: 1111-022 Ris. 022
Utilizzo le formule in modo tale da evitare di perdere gli zero se utilizzassi la funzione testo in colonne.
Per automatizzare e rendere facile da compilare avevo abbozzato un codice con gli inputbox per far scrivere la formula al vba
Sub prova_estrazione_testo() Dim Value, Symbol As String Dim DestRng As Range 'On Error GoTo Uscita Value = Application.InputBox("Seleziona il valore da estrarre:", Type:=8).Address(False, False) Symbol = Application.InputBox("Seleziona Carattere", Type:=2) Set DestRng = Application.InputBox("Indicare la cella dove inserire la formula", "Destinazione Formula", Type:=8) DestRng.Formula = "=LEFT(" & Value & ",FIND(" & Symbol & "," & Value & ")-1)" Uscita: Exit Sub End Sub
Se immetto un carattere tipo il "-" mi da errore; inserendo un numero o lettera mi scrive la formula in questo modo:
=SINISTRA(A1;TROVA(10;A1)-1) dove il 10 è senza " ", come invece dovrebbe essere.
Qualche suggerimento? Sono due giorni che provo ma non riesco proprio.
Grazie a chiunque vorrà contribuire
ciao
prova questa
=SE.ERRORE(FILTRO.XML("<d><a>"&SOSTITUISCI($Q2;"-";"</a><a>")&"</a></d>";"//a["&RIF.COLONNA(A1)&"]");"")
e tirala a destra