Jordan ha la necessità di suddividere un URL nei suoi componenti. Se l’URL completo (http://www.xyz.com/business) è nella colonna A, vorrebbe un modo per avere il dominio principale (xyz o xyz.com) nella colonna B e il percorso (business) nella colonna C.

Esistono diversi modi per risolvere questo problema. Se è necessario eseguire questa operazione solo una o due volte, potrebbe essere più semplice utilizzare lo strumento Testo in colonne, disponibile nella scheda Dati della barra multifunzione. Quando si specifica come si desidera che lo strumento divida le stringhe, indicare che si desidera che utilizzi la barra (/) come delimitatore. A seconda del modo in cui sono messi insieme i tuoi URL originali, questo potrebbe richiedere un po ‘di “pulizia”

dopo che lo strumento è finito, ma è semplice e veloce.

Se lo fai più spesso, potresti trarre vantaggio dall’utilizzo di una formula per manipolare l’URL. Il primo compito è estrarre il dominio dall’URL, ma questo è un po ‘più complicato di quanto sembri. Ad esempio, l’URL può iniziare con un numero qualsiasi di specificatori di protocollo (come http: //, https: //, ftp: //, ecc.) Oppure potrebbe non iniziare affatto con uno specificatore di protocollo. Inoltre, potresti voler rimuovere il “www”.

nomenclatura, come alcuni la considerano estranea. Per capire dove inizia il dominio “reale”, potresti usare questa formula nella colonna B:

=IFERROR(FIND("www.",$A1)+4,IFERROR(FIND("://",$A1,1)+3,1))

Cosa fa per restituire la posizione del primo carattere dopo “www.”, Se disponibile. Se non è presente, restituisce la posizione del primo carattere dopo “: //”, se è presente. Se non è presente, viene restituito il numero 1, poiché l’URL non contiene alcun prefisso di protocollo o www.

Con quel valore nella colonna B, puoi quindi iniziare a estrarre effettivamente le parti che desideri. Quanto segue, posto nella colonna C, restituirà il dominio, come già descritto. Restituisce essenzialmente tutto dalla posizione del carattere mostrata nella colonna B fino alla barra successiva (/).

=MID(A1,B1,IFERROR(FIND("/",A1,B1)-B1,LEN(A1))

Se l’URL originale includeva “www.xyz.com”, la formula restituisce “xyz.com”. Se conteneva un sottodominio diverso da “www”

(come “research.xyz.com”), viene restituito il dominio completo compreso il sottodominio. La funzione SE.ERRORE è inclusa nel caso in cui non ci sia barra (/) dopo il nome di dominio. (La funzione TROVA restituisce un errore #VALORE se non riesce a trovare l’elemento che sta cercando.)

Per scegliere il percorso dopo il dominio, puoi utilizzare la seguente formula nella colonna D:

=IFERROR(MID(A1,FIND("/",A1,B1)+1,LEN(A1)),"")

La formula restituisce tutto dopo la prima barra (/) che si trova dopo il nome di dominio. Se non è presente alcuna barra dopo il nome di dominio, non restituisce nulla. (Questo è, ancora una volta, grazie all’uso della funzione SE.ERRORE.)

La chiave per utilizzare le formule di cui sopra, ancora una volta, è la colonna helper nella colonna B.Se si desidera eliminare la necessità della colonna B, è necessario sostituire nelle altre due formule tutte le istanze di B1 con la formula (senza il segno di uguale) che appartiene a B1. Ciò, ovviamente, renderebbe le altre due formule piuttosto lunghe, specialmente quella annotata per la colonna C.

Puoi, se lo desideri, creare una macro che essenzialmente fa la stessa cosa, senza la necessità di una colonna helper. L’esempio seguente si aspetta che tu effettui una selezione, quindi estrae le parti dell’URL dalle celle e le inserisce nelle due colonne a destra della selezione.

Sub GetURLParts()

Dim c As Range     Dim sRaw As String     Dim J As Integer          For Each c In Selection         sRaw = c.Text         J = InStr(sRaw, "://")

If J > 0 Then sRaw = Mid(sRaw, J + 3)

If LCase(Left(sRaw, 4)) = "www." Then             sRaw = Mid(sRaw, 5)

End If         J = InStr(sRaw, "/")

If J > 0 Then             c.Offset(0, 1) = Left(sRaw, J - 1)

c.Offset(0, 2) = Mid(sRaw, J + 1)

Else             c.Offset(0, 1) = sRaw             c.Offset(0, 2) = ""

End If     Next c End Sub

_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 (13320) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.