Ho provato a fare un esercizio, lo condivido aggiungendolo alle proposte /considerazioni di Alfredo e Ricky...
Cominciamo a formattare tutte le colonne del foglio iniziale vuoto come Testo
Elenchiamo in colonna M tutti i prefissi noti dei cellulari; si puo' partire da
https://it.wikipedia.org/wiki/Prefissi_ ... i_italianiElenchiamo in colonne P e Q i prefissi delle aree geografiche con la localita' di riferimento; si puo' partire da
https://www.paginebianche.it/prefissi-italia.htmI prefissi in colonna Q devono risultare di 2, 3 o 4 caratteri; es 02-Milano; 030-Brescia; 0121-Pinerolo
Noterete che ci sono prefissi che possono essere confusi tra Fisso e Mobile; certamente 324, 331, 343 (poi ho smesso di guardare)
Formattiamo le colonne B:J come Generale, perche' ci metteremo delle formule
Inseriamo in A2:K2 queste intestazioni: N° Originale/Normalizzato/?0/?Cell/?Fix/vuoto/Mob/Fix/???/Area/Risolvi
Inseriamo, come testo i numeri in nostro possesso in colonna A, da A3 verso il basso;
assumo che siano senza il prefisso internazionale.
Inseriamo in C3:J3 rispettivamente queste formule (la formula in E3 va confermata con Contr-Maiusc-Enter, non il solo Enter)
- Codice: Seleziona tutto
=SE(SINISTRA(A3;1)="0";1;0)
=SE(E(CONTA.SE($N$2:$N$101;SINISTRA(A3;3))>0;LUNGHEZZA(A3)>8);1;0)
=SOMMA(CONTA.SE($P$2:$P$1001;0&SINISTRA(SE(C3=0;A3;STRINGA.ESTRAI(A3;2;99));{1.2.3}))*(10^({0.1.2})))
(F3 rimane vuote)
=--(E(C3=0;D3=1;E3=0))
=--(O(E(E3>0;D3=0);(E(C3=1;E3>0))))
=--(E(G3=0;H3=0;A3<>""))
=SE(A3<>"";SE(I3=1;"??";"")&SE(G3=0;CERCA.VERT("0"&STRINGA.ESTRAI(A3;C3+1;LUNGHEZZA(E3));$P$2:$Q$1001;2;0);"#Cell");"")
Suggerisco di formattare C3:I3 con lo stile "Separatore" (e' quello che in genere viene mostrato con l'icone "000") e riducete i decimali, in modo che i risultati siano mostrati come visibile in figura.
Copiate E3:J3 verso il basso, per tutto l'elenco dei numeri presenti in colonna A e anche oltre
In colonne C-D-E ci sono dei dati intermedi; cioe' (rispettivamente)
-se il numero di colonna A comincia con 0
-se i primi 3 numeri di colonna A corrispondono a un prefisso elencato in colonna N
-se le prime cifre in testa al numero di col A corrispondono a un prefisso elencato in colonna P; la lunghezza del risultato indica la lunghezza del prefisso trovato
I risultati di colonne C-D-E consentono di elaborare le ipotesi di Mobile o Fisso (col G-H):
-sono Mobili i numeri che non cominciano per 0, hanno un prefisso che "sembra" di cellulare e non puo' essere di numero fisso
-sono Fissi i numeri che hanno un prefisso che sembra di numero fisso e non sembra di cellulare, o che cominciano con 0 e hanno un prefisso che sembra di numero fisso
Sono ???=Dubbi tutti quelli che non appartengono ne' ai Mob ne' ai Fissi
In colonna J provo a estrarre la localita' a cui e' intestato l'ipotetico prefisso del possibile numero fisso
In colonna K l'operatore puo'
forzare (dopo i dovuti controlli) l'assegnazione di un numero dubbio alla rete F=Fissa oppure M=Mobile
L'intervento in colonna K ha senso per le colonne I=???, mentre puo' dare luogo a risultati ambigui se fatto su numeri assegnati gia' (vedi colonne G:H) alla rete Mobile o Fissa
Dopo tutte queste premesse, possiamo provare a "normalizzare" il numero, se ci sono le condizioni; per questo si inserisce in B3 la formula
- Codice: Seleziona tutto
=SE(A3<>"";SE(O(SINISTRA(A3;1)="+";SINISTRA(A3;2)="00");A3;SE(O(G3=1;K3="M");"+39 "&SINISTRA(A3;3)&" "&TESTO(STRINGA.ESTRAI( A3;4;99);"### ###");SE(O(H3=1;K3="F");"+39 "&SINISTRA(RIPETI("0";1-C3)&A3;1+LUNGHEZZA(E3))&"-"&STRINGA.ESTRAI(RIPETI("0";1-C3)&A3;2+LUNGHEZZA(E3);99);"###")));"")
Se i numeri di colonna A hanno gia' un prefisso internazionale, allora le elaborazioni di colonne C:I non hanno valore e in colonna B viene replicato esattamente il contenuto di colonna A
Ecco come si comporta quello che ho qui descritto su un mio foglio di prova:
Clicca sull'immagine per vederla tutta
Spero che troviate qualche spunto utile...
Ciao