› Excel e gli applicativi Microsoft Office › Estrarre parte di una stringa dopo gli zeri
-
AutoreArticoli
-
Ciao a tutti,
avrei bisogno di un aiuto per estrarre una parte di una stringa es.:
7901000064432
7901000129063
7900000109020
7900000004433dovrebbe estrarre
6443
12906
10902
0443cioè,togliere l’ultimo carattere, minimo 4 caratteri e poi tutto quello che viene dopo la serie di zeri..
Grazie
Cosa è successo ??
ci riprovo...
Ciao a tutti,
avrei bisogno di un aiuto per estrarre una parte di una stringa es.:
7901000064432
7901000129063
7900000109020
7900000004433dovrebbe estrarre
6443
12906
10902
0443cioè,togliere l'ultimo carattere, minimo 4 caratteri e poi tutto quello che viene dopo la serie di zeri..
Grazie
La macro è ok, fa perfettamente il suo lavoro,solo che ho sbagliato io a non dire che quelle stringhe si trovano in un txt e poi importate in excel, chiedo se si puo' modificare la macro in modo che possa leggere dal txt. Grazie.
Salve, da una formula salvata in VALORI sono formate: un numero di una o 2 cifre*tre lettere di un mese*da 2 a 4 numeri es:23*mar*2455; oppure; 32*mag*33. Questi dati in colonna vorrei si posizionano dal più grande al più piccolo rispetto al numero dopo il secondo asterisco. nel caso dei 2 esempi primo il 2455 poi il 33. Grazie
giorgioantonio, non è permesso accodarsi a discussioni aperte da altri, aprine una tua con titolo adeguato e spiegati meglio, magari allegando un file di esempio
Patel scusami ho commesso un altro errore non andare avanti...adesso non ho il txt con me non posso verificare. Grazie
Buongiorno allego un file con le spiegazioni, perché mi dava problemi di:
*** Il messaggio è vietato. Il messaggio sembra di essere spam. ***
Grazie
Allegati:
You must be logged in to view attached files.Ciao Non c'è la possibilità di una delimitazione logica. Ipotizziamo le tue righe in A1:A6, se ti va bene, si può provare con questa macro ma ... c'è qualche numero di troppo (vedi celle U4:U5)
Sub Macro1() Range("A1:A6").Select Selection.TextToColumns Destination:=Range("S1"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(7, 1), Array(12, 1), Array(13, 1), Array(20, 1), _ Array(46, 1)), TrailingMinusNumbers:=True Range("S:S,U:U,W:W,X:X").ClearContents Columns("U").Delete End SubFai sapere.
Ciao,
MarioGrazie Mario, non vedo problemi sulle celle U4:U5...invece il problema sta tipo nella cella T4 dove 443, dovrebbe essere 0443, poichè questo dato deve essere confrontato con una colonna che contiene minimo sempre 4 cifre, 0443, oppure 0044, 0003...correggendo questo potrebbe andare bene, anche se ho visto che piu di 5 cifre non lo estrae e questo potrebbe essere un problema se mi dovesse capitare un codice a 6 cifre..
ciao
=SE(LUNGHEZZA(DESTRA(STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100);LUNGHEZZA(STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100))-MIN(TROVA({1\2\3\4\5\6\7\8\9};STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100)&{1\2\3\4\5\6\7\8\9})-1)))<4;0&DESTRA(STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100);LUNGHEZZA(STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100))-MIN(TROVA({1\2\3\4\5\6\7\8\9};STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100)&{1\2\3\4\5\6\7\8\9})-1));DESTRA(STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100);LUNGHEZZA(STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100))-MIN(TROVA({1\2\3\4\5\6\7\8\9};STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100)&{1\2\3\4\5\6\7\8\9})-1)))TROVA("00".. è la chiave da cambiare se necessario
Grazie Gianfranco55, ho provato la funzione ma mi da errore
diventa nero qui... {1.2.3.4.5.6.7.8.9}
ciao
cambia la formula con=SE(LUNGHEZZA(DESTRA(STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100);LUNGHEZZA(STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100))-MIN(TROVA({1\2\3\4\5\6\7\8\9};STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100)&{1\2\3\4\5\6\7\8\9})-1)))<4;DESTRA("000"&DESTRA(STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100);LUNGHEZZA(STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100))-MIN(TROVA({1\2\3\4\5\6\7\8\9};STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100)&{1\2\3\4\5\6\7\8\9})-1));4);DESTRA(STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100);LUNGHEZZA(STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100))-MIN(TROVA({1\2\3\4\5\6\7\8\9};STRINGA.ESTRAI(SINISTRA(B2;LUNGHEZZA(B2)-1);TROVA("00";SINISTRA(B2;LUNGHEZZA(B2)-1);1);100)&{1\2\3\4\5\6\7\8\9})-1)))sistema se il risultano è inferiore alle tre cifre
prima non lo avevo considerato.Ciao se le stringhe sono tutte simili a quelle proposte secondo me, con formula si potrebbe pensare a qualcosa del genere: con la stringa in A1
=TESTO(DESTRA(SINISTRA(A1;LUNGHEZZA(A1)-1);LUNGHEZZA(A1)-5)*1;"0000")elimino l'ultimo carattere con sinistra
elimino i primi 4 caratteri con destra
trasformo in un numero (elimino gli zeri davanti) moltiplicando per 1
con testo e formato "0000" forzo a minimo 4 caratteri
Ciao
Luca -
AutoreArticoli
