PDA

View Full Version : Problema (forse banale) con Excel


MarColas
21-11-2005, 18:47
Salve a tutti.

In un foglio excel ho una colonna con circa 10.000 record contenenti da 3 a 5 caratteri alfanumerici, di cui il primo in ordine di lettura (quello piu' a sinistra, insomma) può essere una lettera ed i restanti sono invece numeri.
Ciascun record deve essere modificato secondo le seguenti regole:

-se contiene fino a 3 caratteri deve essere lasciato vuoto
-se contiene 4 caratteri: nel caso il primo sia una lettera (A123), deve diventare vuoto, se invece contiene 4 numeri (1234) deve rimanere com'è
-se contiene 5 caratteri: nel caso il primo sia una lettera (A1234), deve essere eliminato questo, nel caso siano 5 numeri (12345) deve essere tolto l'ultimo, quello più a destra (deve diventare 1234).

In pratica alla fine dovranno rimanere solo record con 4 numeri.
Mi rifiuto di credere che non ci sia altro metodo di editare a mano tutti e
10.000 i record, ma allo stesso tempo non ho la più pallida idea di come si possa fare a risolvere il problema.

Grazie in anticipo a chi mi aiuterà :)

guldo76
21-11-2005, 23:26
Prova così:
=SE(LUNGHEZZA(A1)<4;"";SE(LUNGHEZZA(A1)=4;SE(VAL.NUMERO(A1);A1;"");SE(LUNGHEZZA(A1)=5;SE(VAL.NUMERO(A1);STRINGA.ESTRAI(TESTO(A1;"0");1;LUNGHEZZA(TESTO(A1;"0"))-1);STRINGA.ESTRAI(A1;2;LUNGHEZZA(A1)-1));1)))
Non è il massimo, ma finché i tuoi dati sono consistenti con le caratteristiche che hai detto, funzionerà.

MarColas
22-11-2005, 07:08
Grazie per la risposta :)

Proverò, anche se non mi è del tutto chiara soprattutto la parte finale (devo guardarmi l'help di Stinga.estrai)

guldo76
22-11-2005, 15:53
Nell'utimo stringa.estrai la lunghezza è ridondante.
=SE(LUNGHEZZA(A1)<4;"";SE(LUNGHEZZA(A1)=4;SE(VAL.NUMERO(A1);A1;"");SE(LUNGHEZZA(A1)=5;SE(VAL.NUMERO(A1);STRINGA.ESTRAI(TESTO(A1;"0");1;LUNGHEZZA(TESTO(A1;"0"))-1);STRINGA.ESTRAI(A1;2));1)))