Stringerkennung Excel

Dieses Thema im Forum "Office-Programme" wurde erstellt von gis-man, 2. November 2005.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. gis-man

    gis-man ROM

    Registriert seit:
    2. November 2005
    Beiträge:
    2
    Hallo,

    es wurden zwar sicher viele Threads zu ähnlichen Themen gepostet - richtig fündig geworden bin ich nicht! Deshalb meine ganz spezielle Frage an das Forum:

    In einer xls-Tabelle habe ich in Feld A einen kompletten DB-Pfad (Servername,Dienst,Benutzername,PWD,Datenbank,DB-Besitzer, DS-Name,Typ etc..)mit kommagetrennten Werten.

    In einem Feld B möchte ich einen String aus Feld A (Bsp. DS-Name)extra aufführen. Da die Zeichenlängen variieren kann ich nicht mit der Left, Mid oder Right-Funktion arbeiten sondern bin auf die Stringerkennung zwischen dem x-ten und y-ten Komma angewiesen. Laut Hilfe sollte dies mit einer Kombination aus TEIL und FINDEN möglich sein. Nur leider erschließt sich mir die Syntax noch nicht richtig.

    Schon mal Dank für Eure Tips!
     
  2. Scasi

    Scasi Ganzes Gigabyte

    Registriert seit:
    1. August 2004
    Beiträge:
    19.432
    das Ergebnis einer Tasse Kaffee und etwas Langeweile - ist aber eine ziemliche Krücke ...

    angenommen A1 enthält diesen String wie angegeben (wobei ich das Leerzeichen vor "DS-Name" manuell entfernt habe !):

    "Servername,Dienst,Benutzername,PWD,Datenbank,DB-Besitzer,DS-Name,Typ"

    jetzt frage ich die Position der Kommas der Reihe nach ab (beginnend in A3):

    =FINDEN(",";A$1;1) #Ergebnis: 11
    =FINDEN(",";A$1;A3+1) # 18
    =FINDEN(",";A$1;A4+1) # 31
    =FINDEN(",";A$1;A5+1) # 35
    =FINDEN(",";A$1;A6+1) # 45
    =FINDEN(",";A$1;A7+1) # 57
    =FINDEN(",";A$1;A8+1) # 65

    ich setze also immer mit dem vorigen Ergebnis auf und überspringe gleich das jeweils gefundene Komma - das $-Zeichen fixiert die Abfrage und die Formel lässt sich einfach kopieren !

    jetzt kenne ich die Position von 6. und 7. Komma und hole mir die Zeichenlänge in Zelle A10:

    =+A9-A8-1 # Ergebnis: 7

    jetzt habe ich Position und Länge und komme endlich zur Sache:

    =TEIL(A1;A8+1;A10) # Ergebnis: "DS-Name"
    ____________________________________
    kurzer Test mit einem anderen String:

    Host,Küchendienst,Gast,4711/0815,Test,Ich,Ergebnis,Unwichtig

    hier liefern die Formeln: 5 - 18 - 23 - 33 - 38 - 42 - 51 - 8 - "Ergebnis"
    ____________________________________

    also: nicht schön, aber funktioniert ! ;)

    jetzt muss sich nur noch ein Excel-Spezi finden, der das ganze etwas zusammenfasst ... :wegmuss:
     
  3. gis-man

    gis-man ROM

    Registriert seit:
    2. November 2005
    Beiträge:
    2
    habe gerade einen weiteren Tip erhalten, der das ganze in eine Hammerformel gießt:

    =GLÄTTEN(TEIL(H2;SUCHEN("#";WECHSELN(H2;",";"#";6))+1;SUCHEN("#";WECHSELN(H2;",";"#";7))-SUCHEN("#";WECHSELN(H2;",";"#";6))-1))

    Aber vielen Dank

    Stefan
     
  4. volkerK

    volkerK Byte

    Registriert seit:
    21. Oktober 2005
    Beiträge:
    12
    Hallo,

    ganz elegant würde es natürlich aussehen wenn man sich diese Function erstellt:

    Function aufteilen(text, position)
    t = Split(text, ",")
    aufteilen = t(position)
    End Function

    Diese kann man dann ganz normal mit dem FunktionsAssistenten im ExcelBlatt verwenden (unter Benutzerdefiniert) als Parameter benötigst Du nur den Text und die Position.

    In Deinem Beispiel (DS-Name) müßtest Du in B1 nur AUFTEILEN(A1, 6) schreiben.

    Gruß Volker.
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen