Non e’ cosi’ semplice perche’ non c’ e’ nessuna regola fissa che si puo’ applicare: la citta’ puo’ essere 1 parola (Napoli), 2 (Torre Annunziata), 3 (Torre del Greco), 4 (San Giorgio a Cremano), forse anche 5; l’ indirizzo idem; e nemmeno il numero in realta’ e’ sempre un numero (es 55/B, o manca).
Detto questo, io partirei tramite il “Testo in colonna”: Selezioni le celle che contengono i tuoi dati, poi Menu ->Dati ->Testo in colonna; in step 1 spunti “delimitati”, in step 2 spunti “Spazio” quale delimitatore, in step 3 non scegli niente; dai “Fine”. Questo mette, nel tuo esempio, Napoli-Via-Roma-53 in 4 colonne (la corrente piu’ 3 a dx; cosi’ come metterebbe San-Giorgio-a-Cremano-Viale-dei-Gelsomini-131 in 8 colonne.
Certo, se tra i vari campi ci fosse un separatore univoco la cosa sarebbe piu’ semplice, perche’ in questo caso il “Testo in colonna” ti fornisce gia’ i risultati voluti; fai quindi un controllo con chi ti passa i dati.
Dopo il “Testo in colonna”, molte situazioni sono gia’ Ok, le altre vanno editate a mano, con l’ aiuto di una macro che fa l’ opposto del “Testo in colonna”, cioe’ prende da N colonne e raggruppa la stringa in una sola, poi elimina le colonne “svuotate”; nell’ esempio di S.Giorgio a Cremano, in pratica, dopo aver fatto “Testo in colonna”, selezioni le celle che contengono San Giorgio a Cremano (4 celle) e fai partire la macro; poi selezioni dei Gelsomini (2 celle) e idem; a questo punto rimani con 4 colonne: San Giorgio a Cremano, Viale, dei Gelsomini, 131.
Per la macro:
-attivi il Vba Editor tramite Alt-F11
-se nella finestra di progetto (il frame a sx in alto, dove compare il tuo file con i suoi N fogli) non compare una “cartella” Moduli, crea un Modulo (tramite Menu ->Inserisci ->Modulo) e incolla nella parte vuota e bianca di Dx la seguente macro:
- Codice: Seleziona tutto
Sub Assiema()
SCOL = Selection.Columns.Count
For Each c In Selection
AA = AA & " " & c.Value
c.Value = ""
Next c
Selection.Range("A1").Select
Selection.Value = LTrim(AA)
Selection.Offset(0, 1).Select
For I = 1 To SCOL - 1
Selection.Delete Shift:=xlToLeft
Next I
End Sub
-se invece c’ e’ gia’, sotto i tuoi fogli, una cartelletta Moduli, aprila, seleziona Modulo1, e incolla la macro.
-torna su Excel, Menu ->Strumenti ->Macro ->Macro; seleziona la macro “Assiema”, premi “Opzioni”, e nella finestrella che si apre inserisci G (maiuscolo, non g) nella voce “Tasto di scelta rapida”; chiudi la finestra “Macro” con x. In questo modo la macro partira’ pigiando i tasti Contr-Maiusc-G, rendendone l’ utilizzo piu’ semplice.
Praticamente:
-esegui le istruzioni per la conversione “Testo in colonne”
-inserisci la macro e setti l’ opzione Contr-Maiusc-G
-seleziona celle che devono essere ri-aggruppate e dai Contr-Maiusc-G per far partire la macro
-continua cosi’ per tutte le situazioni da normalizzare.
Al momento non mi e’ venuto in mente nessuna idea piu’ brillante; ripeto solo quel “Certo, se tra i vari campi ci fosse un separatore univoco la cosa sarebbe piu’ semplice” gia’ detto prima.
Facci sapere come procede…