Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: juchem am April 04, 2015, 01:08:09 Vormittag

Titel: Office 2010: TextToColumns von Rechts; AD-Pfad auswerten
Beitrag von: juchem am April 04, 2015, 01:08:09 Vormittag
Hi @ all,

ich bin frustiert! Konnte mir bisher eigentlich immer mit Recherche im Netz helfen. Nach einigen Stunden gebe ich aber die Suche erstmal auf und hoffe auf Eure Hilfe!

Ich habe einen Export aus einem AD (ca. 1500 Datensätze). Dabei habe ich auch den Parent Container nach folgendem Muster:

Users/Department/TownABC/Test/Objects/google.com
external/Users/Department/TownXY/Test/Objects/google.com
int/Users/Department/TownXY/Test/Objects/google.com

Ich sucher jetzt eine Fomel, die mir alle Town...-Einträge in eine Spalte aufteilt.
Die einzige Konstante, die ich aktuell sehe ist, dass ich von rechts kommend alles vor "/Test/Objects/google.com" bis zum nächsten / benötige. Aber ich wüsste aktuell nicht wie ich das hinbekommen sollte.

Ich hoffe ihr könnt mir helfen. Ich brauche jetzt erstmal etwas Schlaf!

Danke Euch!

VG
Juchem
Titel: Antw:Office 2010: TextToColumns von Rechts; AD-Pfad auswerten
Beitrag von: gmg-cc am April 04, 2015, 01:39:50 Vormittag
Moin,

ich habe zwar keine Ahnung, was ein AD-Pfad ist aber eine mögliche Lösung. Verwende diese benutzerdefinierte Funktion:
Option Explicit

Function TheTown(c As Range) As String
    Dim aZeile
    Dim i As Integer
   
    aZeile = Split(c, "/")
    For i = 0 To UBound(aZeile)
        If LCase(aZeile(i)) = "test" Then
            If i > 0 Then
                TheTown = aZeile(i - 1)
            Else
                TheTown = aZeile(0)
            End If
            Exit Function
        End If
    Next i
    TheTown = ""
End Function

Wie du eine UDF in die Datei integrierst, kannst du bei Excel-ist-sexy (http://www.excel-ist-sexy.de/eigene-funktionen-udfs-einfuegen/) erfahren.
Anwendung:

=TheTown(A1)
wenn in A1 der "Bandwurm" steht.
Titel: Antw:Office 2010: TextToColumns von Rechts; AD-Pfad auswerten
Beitrag von: maninweb am April 04, 2015, 09:13:40 Vormittag
Hallo,

Das Wort "Department" scheint auch eine Konstante zu sein, weshalb Du diese Formel verwenden könntest:

Code: Visual Basic
  1. =TEIL(A1;FINDEN("Department"&"/";A1)+LÄNGE("Department")+1;
  2.  FINDEN("/";A1;FINDEN("Department"&"/";A1)+LÄNGE("Department")+1)-
  3.  FINDEN("Department"&"/";A1)-LÄNGE("Department")-1)

Gruß
Titel: Antw:Office 2010: TextToColumns von Rechts; AD-Pfad auswerten
Beitrag von: juchem am April 06, 2015, 12:52:55 Nachmittag
Hallo Günther,
hallo maninweb,

vielen Dank für Eure Hilfe! Leider komme ich wegen Ostern erst jetzt dazu zu antworten. Ich hoffe ihr hattet alle ein schönes Wochenende!
Ein AD-Pfad ist ist der Pfad zu den entsprechenden Obejkten im Active Directory (Microsofts Userverwaltung z.B. in Firmen o.ä.). Von daher entsprechen die genannten Pfade auch nicht der genauen Situation und ich möchte auch ungerne firmeninternen Daten ins Internet stellen. Ich hoffe ihr könnte das verstehen.
Wie so häufig in solchen Foren hätte ich auch wieder etwas mehr Infos geben müssen, damit eure Gedanken nicht in die falsche Richtung gehen.  :-\

Hier noch mal die Rohdaten in anderer Schreibweise mit etwas mehr Infos:

Users/Department/TownABC/Land01/Objects/google.com
external/Users/Department/TownXY/Land23/Objects/google.com
int/Users/Department/TownXY/Land23/Objects/google.com

Die Bezeichnungen Department, TownABC und Land01 sind dabei nur stellvertretend für die einzelnen Bezeichnungen und sind somit "quasi" immer ein anderer Wert. Daher kann ich mich leider weder an dem Wort Departmentnoch an dem Wort Test orientieren.  :'(

Aus meiner Sicht kann ich also nur etwas machen wie z.B. eine Funktion, die mir den Wert zwischen dem 3. und dem 4. "/" von rechts kommend ausgibt.

Oder eine Funktion, die Werte zwischen den "/" tauscht, so dass die Zeile google.com/Objects/Land01/TownABC/Department/Users aussehen würde und dann ein "Text to columns" durchführt.

Ich danke Euch für Eure Hilfe!!!

VG
Juchem


Titel: Antw:Office 2010: TextToColumns von Rechts; AD-Pfad auswerten
Beitrag von: maninweb am April 06, 2015, 13:43:17 Nachmittag
Hallo Juchem,

dann probiere es mal mit der Formel hier (vorausgesetzt, das $-Zeichen kommt nie im Pfad vor):
Code: Visual Basic
  1. =TEIL(A1;FINDEN("$";WECHSELN(A1;"/";"$";LÄNGE(WECHSELN(A1;"/";"$"))-LÄNGE(WECHSELN(A1;"/";""))-3))+1;FINDEN("/";WECHSELN(A1;"/";"$";LÄNGE(WECHSELN(A1;"/";"$"))-LÄNGE(WECHSELN(A1;"/";""))-3);FINDEN("$";WECHSELN(A1;"/";"$";LÄNGE(WECHSELN(A1;"/";"$"))-LÄNGE(WECHSELN(A1;"/";""))-3))+1)-FINDEN("$";WECHSELN(A1;"/";"$";LÄNGE(WECHSELN(A1;"/";"$"))-LÄNGE(WECHSELN(A1;"/";""))-3))-1)

Gruß
Titel: Antw:Office 2010: TextToColumns von Rechts; AD-Pfad auswerten
Beitrag von: juchem am April 06, 2015, 14:51:36 Nachmittag
Hi Maninweb,

Super!!!!! Vielen Dank!!!! Es funktioniert.

Ich musste nur noch die englischen Begriffe nehmen und habe die gleiche Formel auch genutzt, um mir andere Teile des Pfades ausgeben zu lassen. Dazu musste nur die -3 entsprechend angepasst werden (nur zur Infos für Leute, die mal über dieses Thema stolpern sollten!).

Viele Grüße und allen noch einen schönen Feiertag!

Juchem
Titel: Antw:Office 2010: TextToColumns von Rechts; AD-Pfad auswerten
Beitrag von: gmg-cc am April 06, 2015, 22:35:45 Nachmittag
Moin,

an ActiveDirectory hätte ich auch denken können  :(.
Für alle, die (wie ich auch) Formeln mit mehr als 50 Zeichen nicht so optimal finden, hier noch eine UDF, die das auch leistet:

Function FindTheTown(c As Range) As String
    Dim aCellSplit
    aCellSplit = Split(c, "/")
    FindTheTown = aCellSplit(UBound(aCellSplit) - 3)
End Function

Dank der klareren Definition ist der Code auch etwas kürzer geraten.  ;)