Office: Zuordnen von Datensätzen anhand von mehreren Kriterien mit zusätzlicher Prüfung

Helfe beim Thema Zuordnen von Datensätzen anhand von mehreren Kriterien mit zusätzlicher Prüfung in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo erstmal an Alle. Ich bräuchte wiedermal eure Hilfe. Ich muss alte Exceltabellen aufarbeiten und am ende mit einer bestimmten Tabelle... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von User, 2. März 2017.

  1. Zuordnen von Datensätzen anhand von mehreren Kriterien mit zusätzlicher Prüfung


    Hallo erstmal an Alle.

    Ich bräuchte wiedermal eure Hilfe. Ich muss alte Exceltabellen aufarbeiten und am ende mit einer bestimmten Tabelle vergleichen, die alten Daten sind aber sehr schlecht aufgebaut. Da es sehr viele Datensätze sind und es. Manuel eine Ewigkeit dauern würde, will ich es in mehreren Arbeitsschritten mit einer Mischung aus VBA und manuellem nacharbeiten lösen. In dem ich mir immer eine von den alten Dateien vornehme und das was ich brauche per VBA zuordne. So das ganz am ende eine brauchbare Datei rauskommt.

    VBA mässig bin ich dafür aber zu schwach. Ich weis leider nicht wie man zuordnet und die Daten während dessen noch Prüft/Vergleicht.*frown.gif* vielleicht könnte mir hier jemand weiterhelfen. jedes Bsp ist schon eine Hilfe. Glaube das ist sicher etwas was man sehr oft gebrauchen kann deswegen würde ich es gern beherrschen. Es wäre sehr net wenn ihr den Code Kommentieren könntet damit ich daraus Leichter lernen kann.

    Ich hab eine Musterdatei erstellt mit Kommentaren usw. um es verständlich rüber zu bringen im letzten Tab gibt es ein Bsp wie es am Ende ausschauen sollte alles andere mach ich dann Manuel und für die anderen Dateien kann ich mir den code auf Grundlage dieser Datei Erstelen. Die Bsp.Datei basiert auf einer der Schlimmsten von den alten wenn zumindest um den aufbau geht.

    Es müsste folgendes passieren.
    • Daten aus anderen Tab's rechts neben die Datensätze im Tabellenblatt "Gesamt" zugeordnet werden ab Spalte "P" unter Berücksichtigung der Fehler und Kriterien.
    • Vergleichskriterien "Tab's"="Tab Gesamt" - A=A , B=G , D=I , E=L , F=M.
    • Beistriche im Namen müssen ignoriert werden. Doppelte Lehrzeichen am besten bereinigt.
    • Bei zu wenig Übereinstimungen bzw Übereinstimungen die aber eine falsche Zuordnung erzeugen würden. Datensatz ans ende der Tabelle Schreiben.
    • Zeitangaben Spalte "L" bis "Q" (Tab's) müssen auf einzelne Zellen im Tab Gesamt aufgeteilt werden. Damit man damit rechnen kann.
    • während der Zuordnung Daten auf Fehler prüfen und entsprechenden Kurztext in Spalte "N" schrieben. 7 Mögliche Fehler sind mir aufgefallen. Stehen im Kommentar der Überschrift.
    • Spalte "N" (Tab Gesamt) soll die Summe der Zeitenangaben hineingeschrieben werden wenn bei Prüfung ein Fehler aufgetaucht ist. Das Ergebniss ist für weitere Prüfung relevant.
    • Farbliche Markierung des Fehlers (nur wenn Möglich)

    Ich hab mit dem Recorder bei einem meiner versuche, die Aufteilung der zeitenen schonmal aufgezeichnet und das Makro in die Bsp Datei kopiert ist aber nicht so ganz optimal *frown.gif*

    Ich hoffe ihr könnt mir helfen.

    Grüße Simpel

    :)
     
  2. Hallo

    Hab grad von jemanden erfahren das, das was ich mir ausgedacht hab sehr aufwendig zu Programmieren ist*frown.gif* . Auch wenn ich mehr ein bsp dafür haben will wie das Grundsätzlich geht wird sich daher wohl eher niemand finden der mir da weiterhilft.

    Lieber Forum admin: Bitte Lösch den Thread

    Grüße Simpel
     
  3. Hallo Simpel,

    vermutlich geht das meist von dem, was du haben möchtest völlig ohne VBA. Aber mir geht es so, dass ich aus deiner Beschreibung und der Beispielmappe kaum erkennen kann was du haben möchtest.

    Du hast zwar Datensätze als fehlerhaft markiert, aber ich finde nicht die Erklärung, warum der Satz fehlerhaft ist. Zum Teil kann man dies ahnen, aber dies ist keine vernünftige Arbeitsgrundlage.

    Es ist auch nicht erläutert, warum überhaupt schon in der Gesamtliste eine Personalnummer in einer Abteilung mehrfach auftaucht.

    Aber da es ja eine Personalnummer gibt, die ja einen eindeutigen Schlüssel repräsentieren sollte, könnte diese ja schon als Zusammenführungskriterium dienen.

    Du müsstest aber schon ziemlich exakt erläutern, was wie zusammengeführt werden soll, und welche Umstände dann dazu führen, dass etwas als fehlerhaft bzw. möglicherweise fehlerhaft markiert werden soll.

    Wenn dann für jeden hilfsbereiten die Aufgabenstellung klar ersichtlich ist, dann hast du gute Chancen, dass die geholfen wird.
     
    WS-53, 6. März 2017
    #3
  4. Zuordnen von Datensätzen anhand von mehreren Kriterien mit zusätzlicher Prüfung

    Hallo WS-53 danke ersteinmal für deine Antwort.

    Ich hab mir erlichgesagt echt viel mühe gegeben mit dieser Bsp Datei aber ich versuch es nochmal zu erklären.

    Die Zeilen aus Tab's 2,3,4 sollen ins erste Tabellenblatt ab Spalte P in die jeweils richtige Zeile Kopiert werden. Bei diesem Kopiervorgang müssten die von bis Uhrzeiten die in Tab 2,3,4 immer in einer einzelnen Zelle stehen. Auf aufgeteilt werden.

    Die Personalnummer ist nur im ersten Tabelblatt vorhanden aber nicht in den anderen von denen rübenkopiert werden soll. Die einzigen Gemeinsamkeiten Zwischen Tab 1 und den anderen Tabellenblättern sind die spalten Abt , Name , wtl.AZ , Bez. ,Objekt (Objekt=Adresse aus Tab 2,3,4) Das Hauptproblem ist einfach das da Beistriche sein könne Doppelte Leerzeichen oder andere Abweichungen deswegen mehrere sollten am besten mehrere Kriterien zutreffen und deswegen auch die Fehlermeldungen um dann nochmal Manuel drüber zu schauen. die Tabellen sind in Wirklichkeit sehr groß.
    "Tab 2,3,4"="Tab 1"
    • A = A
    • B = G
    • D = I
    • E = L
    • F = M

      Die Aussagekräftigsten Kriterien wären damit: A=A , B=G , F=M (Abt. ,Name , Objekt/Adresse)
    Das ist eine liste von Arbeitsadressen also die Personen aus Tab1 Arbeiten unter verschiedenen Adresse manche haben mehr als eine Arbeitsadresse daher kommt ihre Personalnummer mehrmals vor. In den Tabs 2,3,4 stehen zbsp. unter anderem die Uhrzeiten die sie in den einzelnen Gebäuden Arbeiten. Manche haben nur eine und anderen haben 3 Arbeitsadressen innerhalb einer Woche.

    Ich hab die Fehler im Kommentar der Zelle N2 im 5 Tabellenblatt geschildert aber mir reicht es schon wenn nur 2 - 3 davon umgesetzt werden dann weis ich wie das geht und kann dann selber rumprobieren. Die anderen kann ich mir dann auf Grundlage des Codes selber erstellen.

    Gut wäre da der Fehler: "Adresse" , "Fehlt" , "Doppelt"
    Erklärung Fehler "Adresse": Eintrag in Tab2 hat eine identischen (Abt , Namen, Bez.) mit einem Eintrag in Tab 1 die Adresse ist jedoch anders. Daraufhin wird eine Lehrzeile in Tab 1 unter den ähnlichen Eintrag erstellt und die vermeintlich richtigen eintrage aus Tab 2 ab Spalte P in diese Leerzeile Kopiert. Zusätzlich werden die "Abt" in spalte A und der "Name" in Spalte G in Rot eingetragen. In der Bsp Datei ist es die: Altenburg Anna (Schau auf Tab 5)

    Erklärung Fehler"Fehlt": In Tab 2 befindet sich ein Datensatz der vom Namen her nicht zugeordnet werden kann aber die Abt" passt daher wird auf Tab1 innerhalb der selben "Abt" (Alphabetisch korrekt) eine Leerzeile eingefügt und der Datensatz aus Tab 2 in Tab1 ab Spalte P in die Lehrzeile Kopiert.Zusätzlich werden die "Abt" in spalte A und der "Name" in Spalte G in Rot eingetragen. In der Bsp Datei ist es die: Schönauer Elfriede (Schau auf Tab 5 Zeile 15)

    Erklärung Fehler "Doppelt": beim zuordnen ein Name aus den Tab 2,3,4 in einer anderen "Abt." Nochmal aufscheint und einer der zwei einträge nicht ganz klar zugeordnet werden kann also nicht alle Kriterien erfüllt sind. Die Fehlermeldung scheint bei beiden einträgen auf.
    In diesem Bsp betrift es Frau Graf Viktoria sie scheint in der Abt: "2a" und auch in der Abt:"RH" auf. der eintrag in der Abt "RH" läst sich zu 100% zuordnen bei der Abt "2a" stimmt nur der Name überein

    Spalte N (Tab1): Wenn ein Fehler auftritt werden die Wochenstunden aus den bereits rübenkopierten und aufgeteilten Zeitangaben berechnet.

    Die ganzen Fehler sind darauf ausgelegt Manuel nachzuprüfen weil mir die Daten in den Tab 2,3,4 einfach zu unsicher und schlampig sind um es ausschließlich von einem Makro erledigen zu lassen. Aber es sind eben sehr viele Datenzeilen also brauch ich irgend eine Farbige Unterscheidung um es besser sehen zu können.
    Die Personalnummer ist nur im ersten Tabellblatt vorhanden aber nicht in den anderen von denen rübenkopiert werden soll. Ich hoffe das ganze ist jetzt etwas verständlicher geworden , hab über eine stunde an dem Text geschrieben.

    Wäre rein grundsätzlich "in ein Dictionary einlesen und dann per foreach Schleife die Einträge im Dictionary prüfen" ein brauchbarer Lösungs Ansatz deiner Meinung nach? Nicht das ich wüste wie man das macht, ist bei meiner googelt Recherche rausgekommen.

    Danke für deine Hilfe

    Grüße Simpel
     
  5. Hallo Simpel,

    ich durfte das auch schon machen, das ist kein Spass und das meiste kannst du nicht automatisieren.

    Der erste Schritt wäre die Bereinigung alternativer Schreibweisen in den Suchspalten, also das Ersetzen nicht gewünschter Zeichen. Das kannst du nur soweit automatisieren, wie der Freiheitsgrad der Regel es zulässt.
    Bsp.:
    Wenn ein Bindestrich (-) in einer Spalte nicht vorkommen darf, kannst du diesen einfach ersetzen - durch nichts.
    Darf der Bindestrich zwar vorkommen, aber nicht an einer bestimmten Stelle stehen, machst du das per Formel (z.B. WECHSELN, GLÄTTEN).
    Darf der Bindestrich prinzipiell vorkommen, aber in bestimmten Werten nicht, musst du manuell jeden Wert einzeln prüfen.
    Ich habe das damals mit Hilfsspalten gemacht und dann die Originalwerte mit den bereinigten überschrieben.

    Der 2te Schritt ist der SVERWEIS mit mehreren Suchkriterien.
    Edit: Hier siehst du am #NV auch gleich, zu welchen Personalnummern nichts gefunden wurde.

    VG,
    Alex
     
    Lernender, 6. März 2017
    #5
  6. Hallo Danke für deine Antwort

    Mit Formeln würd ich es im gründe sicher hinbekommen, das ersetzen der Zeichen über "suche und ersetzen". Das zuordnen über Sverweis. Auch die hinweise auf Fehler bekomm ich mit =wenn() größtenteils hin. Ebenso das aufteilen der Zeiten geht Manuel indem ich die zuerst die "." durch ":" ersetze und dann den Bindestrich mithilfe von "Text in Spalte" zum aufteilen nutze (bis vielleicht auf vereinzelte Zeitangaben die besonders schlampig geschrieben sind)

    Ich würde aber gerne wissen wie man diese dinge über VBA löst, quasi zu lernen.
    Besonders wie man mit mehreren Kriterien zuordnet interessiert mich. Ich gerate oft an Tabellen die keine eindeutigen spalte haben die man zum verglichen nutzen kann.

    Ich könnt mir zbsp. vorstellen das man die Daten aus den Tabellenblättern in eine Array Einlist, das bekomm ich ja noch hin. Aber ich hab keine Ahnung wie ich die Datenzeilen aus der Array dann in die jeweils richtigen Zeilen auf Tab 1 bekomme.

    Ich hab irgendwo gelesen das es eine Möglichkeit wäre das ganze in ein Dictionary einzulesen und dann mit einer schleife zu durchsuchen aber wie genau geht das?? Und vor allem wie geht das wenn es keine eindeutige spalte gibt die in beiden Tabellen identisch ist sondern ich über mehrere Zellen in den Zeilen als Kriterium für die Zuordnung miteinander vergleichen will.

    Ich mein zbsp so aber ich weis nicht wie es weiter gehen soll

    Code:
    Oder ist ein anderer weg alls eine Array besser? Was ist die beste Lösung für so ein Problem? Wie würde ein code mit einer Dictionary ausschauen. So wie ich die Erklärungen zu einer Dictionary im net verstehe handelt es sich dabei um eine Auflistung, Kappier da nicht ganz den unterschied. Es gibt dann ja noch collections die sind doch auch irgendwie das selbe*entsetzt .

    Grüße Simpel
     
  7. Hi,

    die Datenaufbereitung und den Abgleich solltest du aber auch im VBA trennen.
    Für die Aufbereitung musst du die jeweiligen Spalten mit einer Schleife durchlaufen (hast du im Code schon drin), und dann über IF-Statements deine Regeln anwenden. Das geht im VBA recht komfortabel, da du jede Regel mit beliebig vielen Befehlen abbilden kannst und Zwischenergebnisse in Variablen speicherst, und das nicht alles wie bei Formeln in Hilfsspalten speicherst. Die korrigierten Werte schreibst du direkt wieder zurück (oder in ein ARRAY) und hast damit eine saubere Grundtabelle.

    Nun gehst du zeilenweise durch und kannst den SVERWEIS verwenden, wenn du den in VBA verwenden willst heißt der: VLOOKUP.

    VG,
    Alex
     
    Lernender, 7. März 2017
    #7
  8. Zuordnen von Datensätzen anhand von mehreren Kriterien mit zusätzlicher Prüfung

    Hallo

    also nicht während des Einlesens bereinigen. Aber warum nicht?

    Und meinst du: bereinigen vor dem einlesen in die Array also innerhalb des Sheets oder nachdem ich die Daten in der Array hab. Im Moment lese ich sie mit den oberen code ja nur ein. sonst nichts.

    Wie greif ich auf die Array zu zbsp damit soll die mehrfach Leerzeichen Lehrzeichen entfernen:

    Was Passiert eigentlich wenn ich mit VBA Textfunktionen wie "Tirm" auf Felder mit anderen Typen als string zugreife? bspw. auf Integer. wie Prüf ich den Typ einzelnen Array Zellen. sozusagen für den fall das die eingelesene Tabelle irgendwo eine falsch formatierte Zelle hat.

    Grüße Simpel
     
Thema:

Zuordnen von Datensätzen anhand von mehreren Kriterien mit zusätzlicher Prüfung

Die Seite wird geladen...
  1. Zuordnen von Datensätzen anhand von mehreren Kriterien mit zusätzlicher Prüfung - Similar Threads - Zuordnen Datensätzen anhand

  2. Sortierung und Zusammenfassung nach Kostenstelle

    in Microsoft Excel Hilfe
    Sortierung und Zusammenfassung nach Kostenstelle: Servus ich muss Lieferscheine wo die Materialien immer gleich deklariert werden ( jedes Material bestimmten Namen und auch immer den gleichen) sortieren und dann eine Summe daraus bilden sodass...
  3. Preise zuordnen mit welcher Funktion ?

    in Microsoft Excel Hilfe
    Preise zuordnen mit welcher Funktion ?: Huhu ihr Lieben, ich hoffe jemand kann mir behilflich sein wie und mit welcher Funktion ich am besten aus einer Preisstaffel die Preise für die jeweiligen Packstücke zuordnen kann. Hier ein...
  4. Kategorie anhand Stichworten automatisch zuordnen

    in Microsoft Excel Hilfe
    Kategorie anhand Stichworten automatisch zuordnen: Guten Tag Da mein E-Banking keine Ausgabeanalyse mehr macht, wollte ich mir dies mittels Excel selber erstellen. Nun ist es so, dass ich möchte, dass automatisch Kategorien zugeordnet werden,...
  5. Zellen per Makro in Tabelle zum jeweiligen Datum kopieren

    in Microsoft Excel Hilfe
    Zellen per Makro in Tabelle zum jeweiligen Datum kopieren: Hallo ihr Excel-Profis, ich könnte eure Hilfe gebrauchen. Ich habe eine Berechnungstabelle, die verschiedene Zellen mit Ergebnissen ausgibt. Des Weiteren habe ich 12 Blätter für die jeweiligen...
  6. Numerisches Datum Wochentagen zuordnen

    in Microsoft Excel Hilfe
    Numerisches Datum Wochentagen zuordnen: Guten Morgen, ich hab mal wieder ein Problem bei dem ich nicht genau weiß wie ich es angehen soll. Ich habe eine Liste mit Aufträgen und den Zugehörigen Daten. Jetzt habe ich den Auftrag diese...
  7. Den 4 größten Zahlen eines Bereiches einen Gewinn zuordnen

    in Microsoft Excel Hilfe
    Den 4 größten Zahlen eines Bereiches einen Gewinn zuordnen: Ich möchte den Bereich A1:A14 betrachten und der größten Zahl dieses Bereiches den Gewinn zuordnen, der in Feld B7 steht, der Zweitgrößten Zahl den gewinn in c7 etc. bis e7. Hat jemand eine Idee,...
  8. Daten aus zwei Zeitreihen zuordnen - suche nach kürzesten Zeitabständen zweier Datensätze

    in Microsoft Excel Hilfe
    Daten aus zwei Zeitreihen zuordnen - suche nach kürzesten Zeitabständen zweier Datensätze: Hallo liebe Excel-Experten, ich habe 2 Datensätze mit Messdaten vorliegen, also Zeitreihen, mit nicht immer identischen Datums- und Zeitangaben. Die beiden Zeitreihen sollen nun aber...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden