Aggiungere spazi davanti alle lettere maiuscole

Maurizio ha una lunga lista di nomi di società in un foglio di lavoro. Al nome di ogni azienda sono, in qualche modo, stati rimossi tutti gli spazi, in modo che (ad esempio) appaiano come “AstroPhysics” invece di “Astro Physics”. Maurizio ha bisogno di rielaborare tutti i nomi delle società e inserire uno spazio prima di qualsiasi occorrenza di una lettera maiuscola, ad eccezione della prima lettera nella cella. Si chiede se c’è un modo semplice per farlo.

Ci sono alcuni modi in cui puoi aggiungere gli spazi. Prima di arrivare alle inevitabili soluzioni basate su macro, potresti voler esaminare i nomi delle aziende. Potrebbe essere che ci sia semplicemente un carattere non stampabile tra ogni parola nel nome, invece di uno spazio. Puoi determinarlo modificando la cella, posizionando il punto di inserimento alcuni caratteri prima di una lettera maiuscola e quindi premendo più volte la freccia destra. Dovresti vedere il punto di inserimento spostarsi di un singolo spazio a destra dopo ogni pressione; se sembra “esitare” dove dovrebbe essere lo spazio, allora c’è un carattere non stampabile lì.

In questo caso, la soluzione migliore è eseguire un’operazione Trova e sostituisci per sostituire il carattere non stampabile con uno spazio effettivo (puoi selezionare il carattere non stampabile: tieni premuto il tasto Maiusc mentre premi la freccia destra sopra dove credi che sia e copialo. Quindi incollalo nella casella Trova per eseguire la ricerca).

Supponendo che i dati non contengano caratteri non stampabili, potresti anche provare a utilizzare un approccio non macro. Forse l’approccio più semplice è aggiungere una o due colonne di supporto. Nella prima puoi inserire una formula per capire la posizione della seconda lettera maiuscola all’interno del nome dell’azienda. Supponendo che il nome dell’azienda sia nella cella A1, la formula che segue deve essere inserita come una formula di matrice:

=PICCOLO(TROVA(0;SOSTITUISCI(A1;CODICE.CARATT(RIF.RIGA(INDIRETTO("65:90")));0)&0);2)

Se questa formula è stata inserita nella cella B1, è possibile utilizzare quanto segue per inserire lo spazio nel nome originale dell’azienda:

=SINISTRA(A1;B1-1)&" " & DESTRA(A1;(LUNGHEZZA(A1)-B1)+1)

quest’ultima formula può anche essere abbreviata utilizzando la seguente:

=RIMPIAZZA(A1;B1;0;" ")

Tuttavia, questo approccio presenta un enorme svantaggio: presuppone che i dati originali seguano un formato molto rigido. Funziona meravigliosamente con nomi di aziende che iniziano con la lettera maiuscola e che richiedono l’inserimento di un solo spazio. Se il nome non soddisfa questi parametri, non funzionerà come previsto.

Ovviamente puoi superare questi problemi se usi una macro per inserire gli spazi. Quello che segue è un approccio semplice che esamina ogni carattere nella cella. Se il carattere è una lettera maiuscola, viene inserito uno spazio prima del carattere. Al termine della macro, la stringa viene reinserita nella cella.

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

Tags: , , , , , , , , , , , , , , , , , , , , , , ,

Ti è stato utile?