Dividere le celle in base alle minuscole/maiuscole presenti nel testo

Mario ha un foglio di lavoro che, nella colonna A, ha valori di testo nel formato “marioROSSI”, dove il nome della persona è in minuscolo e il cognome è in maiuscolo. Vorrebbe dividere i nomi in due colonne separate, in base alle minuscole/maiuscole del testo.

Questo può essere ottenuto utilizzando una formula o una macro. Indipendentemente dall’approccio utilizzato, la chiave è capire dove il testo passa da minuscolo a maiuscolo. Questo può essere fatto solo esaminando ogni carattere nella stringa. Quindi, se vuoi utilizzare un approccio basato su formule, dovrai utilizzare una formula di matrice. La seguente formula di matrice restituisce il cognome di qualunque persona indicata in cella A1:

=STRINGA.ESTRAI(A1;CONFRONTA(1;(CODICE(STRINGA.ESTRAI(A1;RIF.RIGA($1:$255);1))>=65)*(CODICE(STRINGA.ESTRAI(A1;RIF.RIGA($2:$255);1))<90);)+1;255)

Ricorda, poiché questa è una formula di matrice, devi inserirla premendo Ctrl + Maiusc + Invio. Restituisce tutto quanto presente nella cella a partire dalla prima lettera maiuscola che trova. Pertanto, in “marioROSSI” restituirebbe “ROSSI” e in “marioRossi” restituirebbe “Rossi”. Supponendo di utilizzare la formula di matrice nella cella B1, è quindi possibile determinare il nome utilizzando quanto segue:

=SOSTITUISCI(A1;B1;"")

Questa è una formula normale, non una formula di matrice.

Esistono molte formule di matrice simili che possono eseguire più o meno lo stesso compito. Ad esempio, questa formula di matrice restituirà il nome (tutti i caratteri fino al primo carattere maiuscolo) di qualunque persona indicata in cella A1:

=SINISTRA(A1;MAX((CODICE(STRINGA.ESTRAI(A$1;RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1)));1))>96)*RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1)))))

È quindi possibile utilizzare la stessa formula normale (quella che utilizza la funzione SOSTITUISCI) per ricavare il cognome.

Se vuoi utilizzare un approccio macro per trovare i nomi, tutto ciò che devi fare è trovare una formula che restituirà la posizione della prima lettera maiuscola nel testo. Il codice seguente restituisce questo “punto di cambiamento” nel testo:

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.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

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

Ti è stato utile?