Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: n-tes Auftreten eines Zeichens in String

n-tes Auftreten eines Zeichens in String
Enrico
Liebe Forumsmitglieder,
nach langer Suche im WWW bleibt mir nun keine andere Moeglichkeit mehr.
Ich moechte in einem String, z.b: "G:\Departments\PD\5S - MSC\WAREHOUSE\Umsetzung\Pictures\EditDSCF9682.JPG"
variabel das zweite, dritte, vierte mal auftreten des "\" berechnen, um bestimmte Teile eines Pfades auszuschneiden.
Leider habe ich bisher keine VBA freie Loesung finden koennen.
Habr ihr eine Idee?
Ich habe auch noch keine VBA-Loesung gefunden, die in Excel 2000 funktioniert :-)
Bin fuer jeden Tip sehr dankbar
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: n-tes Auftreten eines Zeichens in String
08.07.2011 05:51:03
BoskoBiati
Hallo,
suchst Du sowas:
Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDE
1G:\Departments\PD\5S - MSC\WAREHOUSE\Umsetzung\Pictures\EditDSCF9682.JPG318G:\Departments\PD5S - MSC\WAREHOUSE\Umsetzung\Pictures\EditDSCF9682.JPG
2 756G:\Departments\PD\5S - MSC\WAREHOUSE\Umsetzung\PicturesEditDSCF9682.JPG

ZelleFormel
C1=SUCHEN("#";WECHSELN($A$1;"\";"#";B1))
D1=LINKS($A$1;SUCHEN("#";WECHSELN($A$1;"\";"#";B1))-1)
E1=TEIL($A$1;SUCHEN("#";WECHSELN($A$1;"\";"#";B1))+1;99)
B2=SUMMENPRODUKT((TEIL(A1;ZEILE(1:99);1)="\")*1)
C2=SUCHEN("#";WECHSELN($A$1;"\";"#";B2))
D2=LINKS($A$1;SUCHEN("#";WECHSELN($A$1;"\";"#";B2))-1)
E2=TEIL($A$1;SUCHEN("#";WECHSELN($A$1;"\";"#";B2))+1;99)
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Gruß
Bosko
Anzeige
VBA Lösung
08.07.2011 08:09:11
Heiko
Moin Enrico,
wenn du Teile des Pfades ausschneiden willst dann z.B. so:
Sub ZerlegenVBA()
Dim strPfad As String
strPfad = "G:\Departments\PD\5S - MSC\WAREHOUSE\Umsetzung\Pictures\EditDSCF9682.JPG"
MsgBox "1. Teil = " & Split(strPfad, "\")(0)
MsgBox "2. Teil = " & Split(strPfad, "\")(1)
MsgBox "3. Teil = " & Split(strPfad, "\")(2)
MsgBox "4. Teil = " & Split(strPfad, "\")(3)
End Sub
Solange Split schon EXCEL 2000 vorhanden ist, dann kann ich hier (2007) nicht prüfen.
Gruß
Heiko
Anzeige
VBA Lösung, Nachtrag
08.07.2011 08:39:56
Heiko
Moin nochmal,
hier noch ein paar Lösungsmöglichkeiten:
Sub ZerlegenVBA()
Dim strPfad As String
strPfad = "G:\Departments\PD\5S - MSC\WAREHOUSE\Umsetzung\Pictures\EditDSCF9682.JPG"
MsgBox "1. Auftreten = " & Split(strPfad, "\")(0)
MsgBox "2. Auftreten = " & Split(strPfad, "\")(1)
MsgBox "3. Auftreten = " & Split(strPfad, "\")(2)
MsgBox "4. Auftreten = " & Split(strPfad, "\")(3)
MsgBox "1. - 4. Teil = " & Join(Array(Split(strPfad, "\")(0), Split(strPfad, "\")(1), Split( _
strPfad, "\")(2), Split(strPfad, "\")(3)), "\")
' Die gute alte Methode mit Instr, InstrRev, Left, Right, Mid geht natürlich auch immer.
' Finde ich persönlich aber unübersichtlicher.
' Nur das Laufwerk
MsgBox "Nur Laufwerk = " & Left(strPfad, InStr(strPfad, "\"))
' Laufwerk und erster Teil
MsgBox "Laufwerk und 1. Teil = " & Left(strPfad, InStr(InStr(strPfad, "\") + 1, strPfad, "\"))
' Laufwerk erster und zweiter Teil
MsgBox "Laufwerk 1. und 2. Teil = " & Left(strPfad, InStr(InStr(InStr(strPfad, "\") + 1,  _
strPfad, "\") + 1, strPfad, "\"))
' Dateinamen oder letzten Teil abschneiden
MsgBox "Dateinamen oder letzten Teil abschneiden = " & Left(strPfad, InStrRev(strPfad, "\"))
End Sub

Gruß Heiko
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

n-tes Auftreten eines Zeichens in einem String in Excel


Schritt-für-Schritt-Anleitung

Um das n-te Auftreten eines Zeichens in einem String zu finden, kannst du folgende Schritte in Excel ausführen:

  1. String eingeben: Gib den Pfad oder String in Zelle A1 ein, z.B.:

    G:\Departments\PD\5S - MSC\WAREHOUSE\Umsetzung\Pictures\EditDSCF9682.JPG
  2. Zielzeichen festlegen: Bestimme, welches Zeichen du suchen möchtest (z.B. \).

  3. n-te Position berechnen: Verwende die folgende Formel, um das n-te Auftreten des Zeichen zu finden:

    =SUCHEN("#";WECHSELN($A$1;"\";"#";B1))

    Hierbei steht B1 für die Zelle, in der du die n-te Zahl festgelegt hast.

  4. Teile des Pfades ausschneiden: Nutze die LINKS- und TEIL-Funktionen, um Teile des Strings basierend auf der gefundenen Position zu extrahieren:

    =LINKS($A$1;SUCHEN("#";WECHSELN($A$1;"\";"#";B1))-1)
    =TEIL($A$1;SUCHEN("#";WECHSELN($A$1;"\";"#";B1))+1;99)

Häufige Fehler und Lösungen

  • Problem: „#WERT!“ Fehler in der Formel.

    • Lösung: Überprüfe, ob in der Zelle, die die n-te Zahl enthält (z.B. B1), tatsächlich eine Zahl steht.
  • Problem: Das Zeichen wird nicht gefunden.

    • Lösung: Stelle sicher, dass das gesuchte Zeichen korrekt eingegeben wurde und im String vorhanden ist.

Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, gibt es auch alternative Methoden. Eine Möglichkeit ist die Verwendung von Hilfsspalten:

  1. Hilfsspalte erstellen: Erstelle eine Hilfsspalte, die die Anzahl der Vorkommen des Zeichen zählt.

    =SUMMENPRODUKT((TEIL($A$1;ZEILE(1:99);1)="\")*1)
  2. VERGLEICH-Funktion: Verwende VERGLEICH, um die Position des n-ten Auftretens zu finden.

Zusätzlich kannst du die FINDEN-Funktion nutzen, um das erste Auftreten eines Zeichens zu ermitteln und dann die Suche fortzusetzen.


Praktische Beispiele

Hier sind einige Beispiele, wie du die oben genannten Formeln verwenden kannst:

  1. Zweites Auftreten finden:

    • Setze B1 auf 2 und verwende die SUCHEN-Formel, um die Position des zweiten \ zu finden.
  2. Drittes Auftreten ausschneiden:

    • Nutze die LINKS- und TEIL-Funktionen, um den Pfad bis zum dritten \ zu extrahieren.

Beispiel-Formeln:

=SUCHEN("#";WECHSELN($A$1;"\";"#";2))  ' Für das zweite Auftreten
=TEIL($A$1;SUCHEN("#";WECHSELN($A$1;"\";"#";3))+1;99)  ' Für das dritte Auftreten

Tipps für Profis

  • Verwende benannte Bereiche: Wenn du oft mit denselben Daten arbeitest, erstelle benannte Bereiche für einfacheren Zugriff.

  • VBA-Alternativen: Wenn du VBA verwenden möchtest, denke daran, dass die Split-Funktion in Excel 2000 verfügbar ist. Hier ein Beispiel:

    Sub ZerlegenVBA()
      Dim strPfad As String
      strPfad = "G:\Departments\PD\5S - MSC\WAREHOUSE\Umsetzung\Pictures\EditDSCF9682.JPG"
      MsgBox "1. Teil = " & Split(strPfad, "\")(0)
    End Sub
  • Verknüpfungen nutzen: Nutze die Funktion VERKETTEN, um mehrere Teile des Pfades zusammenzuführen.


FAQ: Häufige Fragen

1. Wie finde ich das n-te Auftreten eines Zeichens? Du kannst die SUCHEN- und WECHSELN-Funktion in Kombination verwenden, um die Position des n-ten Auftretens eines Zeichens zu berechnen.

2. Gibt es eine VBA-Lösung für Excel 2000? Ja, die Split-Funktion ist in Excel 2000 verfügbar. Du kannst sie nutzen, um Teile eines Strings zu extrahieren.

3. Kann ich auch andere Zeichen suchen? Ja, du kannst jedes Zeichen suchen, indem du es in die Formeln einfügst. Ersetze einfach \ durch das gewünschte Zeichen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige