1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Stringerkennung Excel

Discussion in 'Office-Programme' started by gis-man, Nov 2, 2005.

Thread Status:
Not open for further replies.
  1. gis-man

    gis-man ROM

    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

    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

    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

    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.
     
Thread Status:
Not open for further replies.

Share This Page