Allan ha un elenco di diverse centinaia di nomi e indirizzi. Gli indirizzi stradali vanno da Main Street, 123 Main Street, US RT 2 o 187 South Elm St. Vorrebbe separare il numero civico dagli indirizzi.

Quindi l’indirizzo 123 Main Street finirebbe con “123” in una cella e “Main Street” in un’altra. Se non è presente il numero civico, non finisce nulla nella colonna del numero civico. Lo strumento Testo in colonne non funzionerà e si chiede come può farlo.

In un mondo perfetto, Excel ti consentirebbe di dividere facilmente i numeri dai nomi delle strade. Poiché questa opzione non esiste, hai un paio di scelte. L’opzione più dispendiosa in termini di tempo prevede l’aggiunta di una colonna aggiuntiva e la ridigitazione dei dati. Se, tuttavia, desideri risparmiare un po ‘di tempo, puoi utilizzare una varietà di formule per eseguire l’operazione.

Supponendo che l’elenco degli indirizzi si trovi nella colonna A (che inizia nella cella A1), potresti usare una formula simile alla seguente per estrarre la parte numerica dell’indirizzo:

=IF(ISERROR(VALUE(LEFT(A1,1))),"",LEFT(A1,FIND(" ",A1)-1))

Supponendo di inserire la formula nella cella B1, è possibile utilizzare una formula diversa per derivare la parte non numerica dell’indirizzo:

=TRIM(RIGHT(A1,LEN(A1)-LEN(B1)))

Notare che questo approccio ha una limitazione. Alcuni indirizzi, soprattutto nelle principali aree metropolitane, utilizzano un formato come 152-33 Bell Blvd. Le formule precedenti funzioneranno per questi indirizzi, ma se viene utilizzata l’alternativa 152 33 Bell Blvd., la formula verrà analizzata in modo errato. A meno che tu non voglia acquistare un programma di analisi degli indirizzi sviluppato professionalmente, le formule sopra e una rapida scansione dei risultati dovrebbero essere adeguate.

Un’altra formula funziona in questo caso. Supponendo che il tuo indirizzo sia nella cella A2, inserisci la seguente formula nella cella B2:

=IF(ISNUMBER(VALUE(LEFT(A2,1))),VALUE(LEFT(A2,FIND(" ",A2)-1)),"")

Questa formula dice: “Se il primo carattere non è un numero, lascia la cella vuota. Altrimenti, dammi tutti i caratteri a sinistra, ma non includendo, il primo spazio”. È quindi possibile utilizzare il risultato di questa formula per estrarre la parte non numerica dell’indirizzo:

=IF(B2="",A2,MID(A2,FIND(" ",A2)+1,99))

Un altro approccio consiste nell’usare una formula di matrice. Anche in questo caso, supponendo che il tuo indirizzo sia nella cella A2, puoi usare quanto segue:

=IF(ISNUMBER(1*MID(A2,ROW($1:$1),1)) = TRUE, LEFT(A2,FIND(" ",A2,1)),"")

Poiché si tratta di una formula di matrice, è necessario inserirla utilizzando Ctrl + Maiusc + Invio. Il risultato è che la formula restituisce la parte numerica iniziale dell’indirizzo. È quindi possibile determinare la parte non numerica utilizzando la seguente formula di matrice:

=IF(ISNUMBER(1*MID(A2,ROW($1:$1),1)) = TRUE, RIGHT(A2,LEN(A2)-FIND(" ",A2,1)),A2)

Infine, la seguente macro può essere utilizzata per separare l’indirizzo della via dal nome della via.

Sub GetStreetNum()

Dim sStreet As String     Dim J As Integer     Dim iNum As Integer

For Each cell In Selection         sStreet = cell.Value         J = InStr(sStreet, " ")

If J > 0 Then             iNum = Val(Left(sStreet, J))

If iNum > 0 Then                 cell.Offset(0, 1).Value = iNum                 sStreet = Trim(Mid(sStreet, J, Len(sStreet)))

End If         End If         cell.Offset(0, 2).Value = sStreet     Next End Sub

Per utilizzare questa macro, seleziona semplicemente l’intervallo di celle che contengono i tuoi indirizzi e quindi eseguila. La parte numerica iniziale dell’indirizzo apparirà nella cella a destra di ogni indirizzo e il saldo dell’indirizzo verrà posizionato nella cella a destra di quello. (Quindi dovresti assicurarti che ci siano due colonne vuote a destra degli indirizzi selezionati.)

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (8029) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: