Jordan muss eine URL in seine Komponenten aufteilen. Wenn sich die vollständige URL (http://www.xyz.com/business) in Spalte A befindet, möchte er die Hauptdomäne (xyz oder xyz.com) in Spalte B und den Pfad (Geschäft) in Spalte A haben C.

Es gibt mehrere Möglichkeiten, um dieses Problem zu lösen. Wenn Sie dies nur ein oder zwei Mal tun müssen, ist es möglicherweise am einfachsten, das Werkzeug Text in Spalten zu verwenden, das auf der Registerkarte Daten des Menübands verfügbar ist. Wenn Sie angeben, wie das Werkzeug die Zeichenfolgen auseinander ziehen soll, geben Sie an, dass der Schrägstrich (/) als Trennzeichen verwendet werden soll. Abhängig von der Art und Weise, wie Ihre ursprünglichen URLs zusammengestellt werden, erfordert dies möglicherweise eine gewisse „Bereinigung“

nachdem das Werkzeug fertig ist, aber es ist schnell und einfach.

Wenn Sie dies häufiger tun, können Sie möglicherweise eine Formel verwenden, um die URL zu bearbeiten. Die erste Aufgabe besteht darin, die Domain von der URL abzurufen. Dies ist jedoch etwas schwieriger als es sich anhört. Beispielsweise kann die URL mit einer beliebigen Anzahl von Protokollspezifizierern beginnen (z. B. http: //, https: //, ftp: // usw.) oder überhaupt nicht mit einem Protokollspezifizierer beginnen. Außerdem möchten Sie möglicherweise das „www“ entfernen.

Nomenklatur, wie manche Leute sie für irrelevant halten. Um herauszufinden, wo die „echte“ Domain beginnt, können Sie diese Formel in Spalte B verwenden:

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

Was es tut, um die Position des ersten Zeichens nach „www.“ Zurückzugeben, falls verfügbar. Wenn es nicht vorhanden ist, gibt es die Position des ersten Zeichens nach „: //“ zurück, falls es vorhanden ist. Ist dies nicht der Fall, wird die Nummer 1 zurückgegeben, da die URL kein Protokollpräfix oder www enthält.

Mit diesem Wert in Spalte B können Sie dann beginnen, die gewünschten Teile tatsächlich herauszuziehen. Im Folgenden in Spalte C wird die Domäne wie bereits beschrieben zurückgegeben. Es gibt im Wesentlichen alles von der in Spalte B gezeigten Zeichenposition bis zum nächsten Schrägstrich (/) zurück.

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

Wenn die ursprüngliche URL „www.xyz.com“ enthielt, wird „xyz.com“ von der Formel zurückgegeben. Wenn es eine andere Subdomain als „www“ enthält

(z. B. „research.xyz.com“), wird die vollständige Domain einschließlich der Subdomain zurückgegeben. Die IFERROR-Funktion ist enthalten, falls nach dem Domainnamen kein Schrägstrich (/) steht. (Die FIND-Funktion gibt einen # VALUE-Fehler zurück, wenn das gesuchte Element nicht gefunden werden kann.)

Um den Pfad nach der Domäne auszuwählen, können Sie die folgende Formel in Spalte D verwenden:

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

Die Formel gibt alles nach dem ersten Schrägstrich (/) nach dem Domänennamen zurück. Wenn nach dem Domainnamen kein Schrägstrich steht, wird nichts zurückgegeben. (Dies ist wiederum der Verwendung der IFERROR-Funktion zu verdanken.)

Der Schlüssel zur Verwendung der obigen Formeln ist wiederum die Hilfsspalte in Spalte B. Wenn Sie die Notwendigkeit für Spalte B beseitigen möchten, müssen Sie in den beiden anderen Formeln alle Instanzen von B1 durch die Formel (ohne) ersetzen das Gleichheitszeichen), das zu B1 gehört. Das würde natürlich die beiden anderen Formeln ziemlich lang machen, insbesondere die für Spalte C.

Falls gewünscht, können Sie ein Makro erstellen, das im Wesentlichen dasselbe tut, ohne dass eine Hilfsspalte erforderlich ist. Im folgenden Beispiel wird erwartet, dass Sie eine Auswahl treffen und dann die Teile der URL aus den Zellen ziehen und in die beiden Spalten rechts von der Auswahl einfügen.

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

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (13320) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.