Estrazione dei numeri civici da un indirizzo (Microsoft Excel)
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: