online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Suki vom 17.08.2022, 10:14 Options

Lösung

Teil aus URL extrahieren & doppelte Daten markieren

Guten Morgen!

In einer Tabelle habe ich verschiedene URLs, und zwar folgender Art

http://www.abcdefg.com/hij/klm/nopqrstuvwxyz

Nun möchte ich in einer zweiten Spalte jeweils den Teil "KLM" extrahiert haben; hierbei ist anzumerken, dass die URL jeweils dahinter unterschiedlich lange noch weitergeht (auch unterschiedlich viele Slashs).

Zudem darf ich keine URL doppelt drin haben, bzw. der Teil "KLM" darf ich jeweils nur einmal haben. Gibt es eine Möglichkeit, dass doppelte Daten in Excel erkannt und z.B. farbig markiert werden können?

Wenn mir jemand eine Lösung für dieses Problem hätte, wäre ich äusserst dankbar, es würde mir sehr viel Arbeit ersparen!

Liebe Grüsse
Suki


Antwort schreiben

Antwort 1 von Saarbauer vom 17.08.2022, 13:00 Options

hallo,

deine Angaben ist etwas mager und ich nehme unterschiedliche Kennzeichnungen im Bereich "KLM" an

Ein Vorschlag, Hilfsspalte (bei mir E )Zeile 3

=TEIL(A3;28;3)

und dann "Bedingte Formatierung""Formel ist"

=ZÄHLENWENN(E3:E18;E3)>1

und dann mit Muster farbig hinterlegen

Sonst sind weitere Angaben erforderlich

Gruß

Helmut

Antwort 2 von coros vom 18.08.2022, 05:41 Options

Hallo Suki,

ich muss Helmut recht geben. Deine Angaben sind sehr wage, auch wenn Du das anders sehen wirst. Aber Du siehst Deine Daten und da ist für Dich einiges sicherlich selbstverständlich, wir sehen die Daten aber nicht.

Nachfolgend mal ein Makro, das in Spalte A beginnend ab Zeile 2 nach den Wert hinter dem 4. Slash vergleicht und bei Übereinstimmung die Zeile markiert und in Spalte B den gefundenen Wert ausgibt.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Hyperlinks_vergleichen()
Dim strText()               As String
Dim strTextVergleich()      As String
Dim lngRow                  As Long
Dim lngRowVergleich         As Long

'Schleife um Spalte A zu durchlaufen
For lngRow = 2 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    'Wert aufteilen bei jeden Slash-Zeichen
    strText = Split(ActiveSheet.Cells(lngRow, 1), "/")
    'Schleife für den Vergleichswert in Spalte A
    For lngRowVergleich = lngRow + 1 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
            'Vergleichswert aufteilen bei jeden Slash-Zeichen
            strTextVergleich = Split(ActiveSheet.Cells(lngRowVergleich, 1), "/")
            'Wenn aufgeteilter Wert gleich dem aufgeteilten Vergleichswert, dann...
            If strText(4) = strTextVergleich(4) Then
                '...Hintergrundfarbe der Zelle in rot und...
                ActiveSheet.Cells(lngRow, 1).Interior.ColorIndex = 3
                '...eine Spalte daneben den aufgeteilten Wert ausgeben und...
                ActiveSheet.Cells(lngRow, 1 + 1) = strTextVergleich(4)
                '...Hintergrundfarbe der Zelle in rot und...
                ActiveSheet.Cells(lngRowVergleich, 1).Interior.ColorIndex = 3
                '...eine Spalte daneben den aufgeteilten Vegleichswert ausgeben und...
                ActiveSheet.Cells(lngRowVergleich, 1 + 1) = strTextVergleich(4)
            End If
    Next
Next
End Sub

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 3 von Suki vom 18.08.2022, 08:14 Options

Hallo Helmut und Oliver!

Vielen herzlichen Dank euch beiden! Es tut mir leider, wenn die Angaben zu vage waren. Das Makro funktioniert, super, vielen Dank!

Eine Ergänzung noch: es kopiert mir in die zweite Spalte jetzt jeweils nur den Wert zwischen dem 4. und 5. Slash, sofern die Daten doppelt sind; könnte man das irgendwie noch ergänzen, dass dies bei allen Daten geschieht, nicht nur bei den doppelten?

Dankeschön auch für den Link zu deiner HP, die werde ich mir gleich mal noch genauer ansehen!

Liebe Grüsse
Suki

Antwort 4 von nighty vom 18.08.2022, 08:15 Options

hi all :-)

suche rechtsbündig nach slash,das wars doch schon oder ?

gruss nighty

Antwort 5 von coros vom 18.08.2022, 08:31 Options

Hallo Suki,

wenn ich Dich richtig verstanden habe, dann müsste das Makro folgendermaßen aussehen.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Hyperlinks_vergleichen()
Dim strText()               As String
Dim strTextVergleich()      As String
Dim lngRow                  As Long
Dim lngRowVergleich         As Long

'Schleife um Spalte A zu durchlaufen
For lngRow = 2 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    'Wert aufteilen bei jeden Slash-Zeichen
    strText = Split(ActiveSheet.Cells(lngRow, 1), "/")
    'Schleife für den Vergleichswert in Spalte A
    For lngRowVergleich = lngRow + 1 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
            'Vergleichswert aufteilen bei jeden Slash-Zeichen
            strTextVergleich = Split(ActiveSheet.Cells(lngRowVergleich, 1), "/")
            'Wenn aufgeteilter Wert gleich dem aufgeteilten Vergleichswert, dann...
            If strText(4) = strTextVergleich(4) Then
                '...Hintergrundfarbe der Zelle in rot und...
                ActiveSheet.Cells(lngRow, 1).Interior.ColorIndex = 3
                '...Hintergrundfarbe der Zelle in rot und...
                ActiveSheet.Cells(lngRowVergleich, 1).Interior.ColorIndex = 3
            End If
    Next
    'In Spalte B aufgeteilten Wert ausgeben und...
    ActiveSheet.Cells(lngRow, 1 + 1) = strTextVergleich(4)
Next
End Sub
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von Suki vom 18.08.2022, 08:40 Options

Guten Morgen, Oliver!

nun kopiert es einfach jeweils vom letzten Hyperlink den Wert zwischen dem 4. und 5. Slash in die andere Tabelle. Ich versuche mal, das hier an einem Beispiel zu zeigen, wie ich es meine:

http://www.abcdefg.com/hij/123/nopqrstuvwxyz => 123
http://www.abcdefg.com/hij/456/nopqrstuvwxyz => 456
http://www.abcdefg.com/hij/789/nopqrstuvwxyz => 789

Ich möchte also, dass es mir jeweils an der "KLM-Stelle" den jeweiligen Wert in die zweite Tabelle kopiert. Und wie gesagt, sollte dieser Wert einmal doppelt vorkommen, sollte er markiert werden (das funktioniert ja so auch!).

Liebe Grüsse & vielen Dank!
Suki

Antwort 7 von coros vom 18.08.2022, 17:35 OptionsLösung

Lösung
Hallo Suki,

sorry, war ein Flüchtigkeitsfehler meinerseits. Ändere die Zeile

 ActiveSheet.Cells(lngRow, 1 + 1) = strTextVergleich(4) 
in

ActiveSheet.Cells(lngRow, 1 + 1) = strText(4)

MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

Antwort 8 von Suki vom 18.08.2022, 18:04 Options

Hm, habe es geändert; es wird nur bei denjenigen extrahiert, die doppelt sind... gibt es eine Möglichkeit, dass dies bei allen Daten geschieht? Oder müsste man da ein weiteres Makro dazu noch haben? Vom Arbeitsablauf wäre dies gut möglich; ich muss zuerst die doppelten herausfiltern, am Ende dann den Teil "KLM" extrahieren.

Schon mal vielen Dank!

Antwort 9 von coros vom 18.08.2022, 18:11 Options

Hallo Suki,

sorry, aber bei mir funktioniert es. Du kannst Dir gerne meine Beispieldatei unter http://www.excelbeispiele.de/Beispiele_Supportnet/Beispiel_Suki.xls herunterladen. Wie Deine Datei aussieht weiß ich nicht, da meine Glaskugel gerade mit meienr Frau unterwegs ist. :-)

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 10 von Suki vom 18.08.2022, 19:46 Options

Hey Oliver!

Super, vielen vielen herzlichen Dank! Habe jetzt meine Daten in deine Beispieldatei kopiert, da funktioniert es!

Grüsse an die Frau und die Glaskugel ;-)

Suki

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 07:32:25 2026