Excel Domain Name aus URL extrahieren

Verwaltet man in Excel verschieden Links und URLs und möchte in einer separaten Spalte den Domain-Namen extrahieren, dann bietet Excel leider keine fertige Formel dafür.

Ein denkbarer Anwendungsfall kann sein, dass man aus verschiedenen Internetadressen den Domainnamen bestimmen muss, um diesen dann in irgendeiner Art und Weise weiterzuverarbeiten, z.B. um den Gesamtanteil einer Domain in einem Diagramm darzustellen oder um andere Werte, die zu diesen Domainnamen gehören aufzuaddieren oder in einer Pivot-Tabelle darzustellen.

Screenshot Excel mit Internetadressen und Domainnamen
Zwei Varianten den Domain-Namen aus einem Link zu ermitteln

Prinzipiell gibt es zwei Möglichkeiten aus einer URL die Domain zu bestimmen. Einmal unter Verwendung von entsprechenden Excel-Formeln oder unter Verwendung von einer VBA-Funktion, die dann wie einer eigenständige Formel verwendet wird.

Excel-Formel Domainname aus Internetadresse (URL)

Man sieht es schon an nachfolgendem Bild. Die Excel-Formel ist ein kleines Monstrum; und es hat mich auch einiges an Zeit gekostet diese zusammenzubasteln.

Screenshot Excel-Funktion zum Bestimmen des Domainnamens aus einer Internetadresse
Excel-Formel zum Ermitteln der Domain aus der URL

Als Parameter, hier die Zelle A2, übergibt man nur die Url. Nachfolgend noch einmal die Formel zum Kopieren. Einfach “A2” ersetzen durch die Zelle in welcher sich die URL befindet.

=WENN(ISTZAHL(FINDEN("www.";A2)); TEIL(A2;FINDEN("www.";A2)+4;WENN(ISTZAHL(FINDEN("/";A2;FINDEN("www.";A2)));FINDEN("/";A2;FINDEN("www.";A2))-FINDEN("www.";A2)-4;LÄNGE(A2))); WENN(ISTZAHL(FINDEN("://";A2)); TEIL(A2;FINDEN("://";A2)+3;WENN(ISTZAHL(FINDEN("/";A2;FINDEN("://";A2)+3));FINDEN("/";A2;FINDEN("://";A2)+3)-FINDEN("://";A2)-3;LÄNGE(A2))); ""))

Was die Formel so komplex macht, ist, dass man verschiedende Varianten und Schreibweisen einer URL abfangen muss.  So gibt es Internetadressen und Links, die mit http oder https beginnen. Manche Links beinhalten auch noch dass “www.“. Außerdem kann es Schreibweisen geben, bei welchen die URL direkt hinter dem Domainnamen endet und einen Backslash (“/”).

VBA Domain-Name aus URL bestimmen

Anhand der Excel-Formel zum Extrahieren des Domain-Namen kann man erkennen, dass die Formel durchaus schlecht zu warten ist, falls man mal Anpassungen vornehmen muss. Wenn man ein wenig mit Programmierung vertraut ist, dann ist eine passende VBA-Funktion durchaus besser zu lesen und zu verstehen und auch wesentlich flexibler bezüglich nachträglicher Anpassungen.

Eine solche VBA-Funktion kann man dann in seinem Tabellenblatt genauso wie eine Excel-Formel verwenden. In diesem Beispiel heißt die VBA-Funktion respektive Excel-Formel “GetDomainFromURL“. Dieser wird dann einfach die Zelle, hier im Beispiel “A2”, übergeben, in welcher die URL eingetragen ist.

Screenshot Excel VBA-Funktion zum Ermitteln des Domainnamen aus einem Link
VBA-Funktion verwenden, um URL zu bestimmen

Damit die Formel im Tabellenblatt auch funktioniert, muss man im VBA-Editor eine gleichnamige Funktion programmieren. Zum Überprüfen der Zeichenfolge verwenden wir hier die InStr-Funktion. Den nachfolgenden Code kann man sich direkt in den VBA-Editor kopieren.

Function GetDomainFromURL(ByVal url As String) As String
    Dim domain As String
    'Teilstring nach "://" ermitteln
    If InStr(url, "://") Then
        domain = Mid(url, InStr(url, "://") + 3)
    End If
    'prüfen, ob "www." enthalten ist und ggf. entfernen
    If InStr(domain, "www.") Then
        domain = Mid(domain, InStr(domain, "www.") + 4)
    End If
    'den hinteren Teil der URL entfernen
    If InStr(domain, "/") Then
        domain = Left(domain, InStr(domain, "/") - 1)
    End If
    GetDomainFromURL = domain
End Function

Den VBA-Editor kann man direkt mit der Tastenkombination “Alt+F11” öffnen oder man geht über das Menü “Enwicklertools“.
(Für den Fall, dass die Registerkarte “Entwicklertools” nicht zu sehen ist im Menüband von Excel, kann man diese über Datei Optionen Menüband anpassen Hauptregisterkarten einblenden)

Excel-Screenshot VBA-Editor über Entwicklertools öffnen
VBA-Editor über Entwicklertools öffnen

Im Visual-Basic-Editor fügt man dann eine neues Modul ein:

Screenshot Visual-Basic-Editor Kontextmenü Modul einfügen
Per Rechtsklick neues Modul einfügen

Und in dem neu angelegten Modul fügt man nun den oben dargestellten Code ein und klickt auf Speichern. Danach kann man die Funktion wie eine gewöhnliche Excel-Formel verwenden.

Bestseller Nr. 1

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.