| | Post: 1 | Registrato il: 26/07/2019
| Città: TORRACA | Età: 60 | Utente Junior | 11 | | OFFLINE | |
|
27/02/2023 12:00 | |
Ciao.
Io ho una stringa di 18 caratteri alfanumerici che inizia con un numero variabile di zero e termina con un identificativo della stazione di campionamento formata da un numero variabile di caratteri alfanumerici. Sotto trovate alcuni esempi:
0000000SMR_COM_WA5
000000000000VAD120
000000IT_m1vt04_12
Io dovrei da queste stringhe solo la parte priva della serie di zeri posti a sinistra, il cui numero è però variabile.
La cosa è un po' più complicata perché in alcuni casi, per fortuna pochi, la sigla della stazione inizia con 1 o 2 zeri. Non credo che si possa si possa prevedere questo caso nella formula; vuol dire che aggiungerò gli zero manualmente.
Purtroppo non sono riuscito a implementare una formula che faccia questo. E' possibile farlo con una formula oppure bisogna ricorre ad un piccolo script in VBA ?
Grazie
|
|
| | Post: 2.858 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
27/02/2023 16:33 | |
ciao
in A2 la prima stringa
=STRINGA.ESTRAI(A2;CONFRONTA(VERO;VAL.ERRORE(VALORE(STRINGA.ESTRAI(A2;RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A2)));1)));0);100)
senza indiretto
=STRINGA.ESTRAI(A2;CONFRONTA(VERO;VAL.ERRORE(VALORE(STRINGA.ESTRAI(A2;RIF.RIGA($1:$100);1)));0);100)
se vuoi puoi aggiungere ANNULLA.SPAZI(formula)
dovrebbe essere matriciale
ctrl maiuscolo invio [Modificato da federico460 27/02/2023 16:36] |
| | Post: 1 | Registrato il: 26/07/2019
| Città: TORRACA | Età: 60 | Utente Junior | 11 | | OFFLINE | |
|
27/02/2023 16:57 | |
Grazie mille funziona su gran parte delle stringhe.
Su questa
00004-MS00200_TR03
la tua prima formula mi genera:
-MS00200_TR03 invece che 4-MS00200_TR03.
Come mai ? |
| | Post: 2.859 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
27/02/2023 17:12 | |
ciao
mi sono basato sull'esempio
infatti cerca la prima lettera della stringa
=STRINGA.ESTRAI(A1;CONFRONTA(VERO;(STRINGA.ESTRAI(A1;RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1)));1)<>"0");0);LUNGHEZZA(A1)) [Modificato da federico460 27/02/2023 17:28] |
| | Post: 3.400 | Registrato il: 06/04/2013
| Utente Master | 2010 | | OFFLINE |
|
27/02/2023 17:17 | |
ciao
[ c u t ]
....formula errata......
che figura di m......
edit: ci riprovo:
=STRINGA.ESTRAI(A2;CONFRONTA(VERO;(STRINGA.ESTRAI(A2;RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A2)));1)<>"0");0);LUNGHEZZA(A2))
matriciale
saluti a tutti [Modificato da dodo47 27/02/2023 17:24] Domenico
Win 10 - Excel 2016 |
| | Post: 2.406 | Registrato il: 21/03/2008
| Città: LOCATE VARESINO | Età: 76 | Utente Veteran | 2007 / 13 | | OFFLINE | |
|
27/02/2023 17:47 | |
ciao a tutti
con una UDF in VBA
da inserire in un Modulo Standar
Function EliminaZero(ByVal stringa As String) As String
Dim i As Long
Dim car1 As String
For i = 1 To Len(stringa)
car1 = Mid(stringa, i, 1)
If car1 <> Chr(48) Then
EliminaZero = Mid(stringa, i, 50)
Exit Function
End If
Next i
End Function
Ciao da locate
excel 2007 / 13 |
| | Post: 2.407 | Registrato il: 21/03/2008
| Città: LOCATE VARESINO | Età: 76 | Utente Veteran | 2007 / 13 | | OFFLINE | |
|
27/02/2023 17:47 | |
ciao a tutti
con una UDF in VBA
da inserire in un Modulo Standar
Function EliminaZero(ByVal stringa As String) As String
Dim i As Long
Dim car1 As String
For i = 1 To Len(stringa)
car1 = Mid(stringa, i, 1)
If car1 <> Chr(48) Then
EliminaZero = Mid(stringa, i, 50)
Exit Function
End If
Next i
End Function
Ciao da locate
excel 2007 / 13 |
| | Post: 2 | Registrato il: 26/07/2019
| Città: TORRACA | Età: 60 | Utente Junior | 11 | | OFFLINE | |
|
28/02/2023 11:24 | |
Grazie.
Alla fine la formula di Dodo47 ha funzionato !!!
😀 |
|
|