Excel - nicht deckungsgleiche Datenbasen verknüpfen

HoneyBadger

Aktiver NGBler
Registriert
7 Sep. 2015
Beiträge
1.913
Hallo zusammen,

kurze Frage in die Runde. Bin ein wenig am Verzweifeln und könnte daher einen Gedankenanstoß gebrauchen.
Ich habe diverse Tabellen, mit vielen Daten dahinter, die nicht miteinander harmonisiert sind. Kommen aus verschiedenen Abteilungen.

Ein Teil der Daten kommt aus einem ERP-System und ist daher logisch aufgebaut. Diese müssen erweitert und anschließend wieder importiert werden. Die Tabellen, in denen die Informationen stehen, die mit ins ERP sollen, sind zwar logisch aufgebaut, jedoch nicht was automatische Datenerfassung betrifft. Sprich SVerweis etc. ist aus zwei Gründen nicht ohne weiteres möglich.

  1. Namen nicht 100 % Deckungsgleich - Bsp.: Name1234 in Tabelle a) und Name 1234 in Tabelle b)
  2. Informationen nicht durch Spaltenüberschrift und dann Feld mit Atribut XY trifft zu "X" gepflegt - bedeutet, nicht so:

    [table="width: 500, class: grid"]
    [tr]
    [td]Name[/td]
    [td]Attribut 1[/td]
    [td]Attribut 2[/td]
    [td]Attribut 3[/td]
    [td]Attribut 4[/td]
    [/tr]
    [tr]
    [td]Name A[/td]
    [td][/td]
    [td]X[/td]
    [td][/td]
    [td][/td]
    [/tr]
    [tr]
    [td]Name B[/td]
    [td]X[/td]
    [td]X[/td]
    [td][/td]
    [td]X[/td]
    [/tr]
    [tr]
    [td]Name C[/td]
    [td][/td]
    [td][/td]
    [td]X[/td]
    [td]X[/td]
    [/tr]
    [/table]

    sondern Attribute sind in jedem Feld beschrieben. Und zwar so:

    [table="width: 500, class: grid"]
    [tr]
    [td]Name 1[/td]
    [td]Attribut 1[/td]
    [td]leer[/td]
    [td]Attribut 2[/td]
    [td]Attribut 3[/td]
    [/tr]
    [tr]
    [td]Name 2[/td]
    [td]Attribut 2[/td]
    [td]Attribut 4[/td]
    [td]leer[/td]
    [td]leer[/td]
    [/tr]
    [tr]
    [td]Name 3[/td]
    [td]Attribut 1[/td]
    [td]Attribut 2[/td]
    [td]Attribut 3[/td]
    [td]Attribut 4[/td]
    [/tr]
    [tr]
    [td]Name 4[/td]
    [td]leer[/td]
    [td]leer[/td]
    [td]Attribut 3[/td]
    [td]Attribut 4[/td]
    [/tr]
    [/table]

    Es sind sehr viele Daten, wie im zweiten Beispielaufgezeigt. Teilweise auch nicht die gleichen Spaltenanzahlen, da zu allem Übel auch noch mit verschiedenen Registern in den einzelnen Tabellen gearbeitet wurde.

Hat zufällig jemand eine Idee, wie ich diese ganzen Daten sinnvoll ineinander überführt bekomme, ohne mir alles per copy & paste zusammenfrickeln zu müssen. Die Daten werde ich nicht neu aufbereitet bekommen. Warum? "Keine Zeit." Ihr kennt das ja.... :rolleyes:
Der Wille (oder das Verständnis) zum gleich richtig und einfach arbeiten ist nicht so ganz gegeben.

Danke für´s Köpfe zusammenstecken.
 
1. Namen nicht 100 % Deckungsgleich - Bsp.: Name1234 in Tabelle a) und Name 1234 in Tabelle b)
2. Informationen nicht durch Spaltenüberschrift und dann Feld mit Atribut XY trifft zu "X" gepflegt - bedeutet, nicht so:

Bei der zweiten Zeile stolpere ich - du hast keine Spaltenüberschrift, zu was beziehen sich sonst die Attribute für "Name 1" usw... ?
Du willst die Daten wie in die folgende Tabelle A haben, hast aber nur Tabelle B an Daten erhalten?

Um welche Excel Version handelt es sich denn?

Ich würde fast vorschlagen die Daten zum Beispiel mit so etwas wie Python einzulesen und jede Tabelle zu normalisieren so das du diese nach dem Angleichen weiterverarbeiten kannst.
Zum Beispiel mit dieser Bibliothek: einlesen. Gibt aber einige.

Ich weiß nicht ob es dafür nicht noch andere Tools gibt, aber das wäre so der Weg den ich gehen würde - weil niemand wird die Daten so gut kennen wie du.
Deßhalb, der Ratschlag ist ohne Gewähr. :)
 
  • Thread Starter Thread Starter
  • #3
Bei der zweiten Zeile stolpere ich - du hast keine Spaltenüberschrift, zu was beziehen sich sonst die Attribute für "Name 1" usw... ?
Du willst die Daten wie in die folgende Tabelle A haben, hast aber nur Tabelle B an Daten erhalten?

Stell es Dir so vor. Links steht der Name. Und rechts daneben in verschiedenen Zellen die Attribute als Text dazu. Keine Überschriften und keine Sortierungen. In der Zeile darunter geht der Spaß dann von vorne los. Und so weiter. In der ersten Tabelle (s.o.) steht´s, wie ich´s gebrauchen könnte. Also einfach nur markieren, wenn ein Attribut zutrifft und es eben lassen, wenn es nicht so ist. Quasi weg von Textbeschreibungen.

Um welche Excel Version handelt es sich denn?

Office365

Ich würde fast vorschlagen die Daten zum Beispiel mit so etwas wie Python einzulesen und jede Tabelle zu normalisieren so das du diese nach dem Angleichen weiterverarbeiten kannst.
Zum Beispiel mit dieser Bibliothek: pyopenxml einlesen. Gibt aber einige.

Habe keine Berührungspunkte mit Pyhton. Easy oder weniger?
 
Gäbe es eine Option die Daten in ein älteres Format zu konvertieren? Wie zum Beispiel 2010 ?

---
Aber was ja wichtiger ist:

Also, wenn du keine Spaltenüberschriften hast ist es wohl einfacher! Also wenn die Reihenfolge keine Rolle spielt!?

Ich nenn es mal:
"Werkstoff A" -> Attribut 1 (10 mal), Attribut 2 (8 mal) usw...
"Werkstoff B" -> Attribut 4 (3 mal), Attribut 3 (2 mal) usw...

Ich glaube auf so etwas willst du ja in etwas hinaus mit den Daten oder?

Also ich frage daher, die Spalten geben keine Ordnung vor, man orientiert sich nur nach Name 1 2 3 4 usw... und jeweils ein oder mehrere Spalten/Attribute zu diesem "Element/Werkstoff" in beliebiger Reihenfolge, richtig?

Ansonsten verstehe ich nicht wie du die Spalten sonst auswerten lassen willst, könnte ja "irgend eine Eigenschaft" / Attribut sein, also irgendwas muss ja identisch sein, auch wenn es nur ein Spaltenname + Werkstoff Name sind? :unknown:


----

Ob es mit Python Easy ist, ja und nein, schätze ich mal.
Programmieren solltest du schon etwas können, sonst wirds schwer - aber Python ist eigentlich "einfach" und die Bibliothek die ich verlinkt habe sollte auch gut dokumentiert sein.
Kommt darauf an wie viel Zeit du hast und wie einfach die Struktur zu erfassen ist... würde ich pauschal sagen.
 
Zuletzt bearbeitet:
Konkretisier mal Input und gewünschter Output.
Du schreibst du hast diverse Tabellen, aber es gibt nur ein Beispiel. Sind die Tabellen alle in der selben Form? Soll der Output ebenfalls diese Form haben?

Namen nicht 100 % Deckungsgleich - Bsp.: Name1234 in Tabelle a) und Name 1234 in Tabelle b)
Da bin ich mal gespannt inwiefern das geht. Generell lässt sich ja eine Ähnlichkeitsbeziehung zwischen Zeichenketten Algogerecht halbwegs beschreiben (weglassen//hinzufügen/vertrauschen von Zeichen), irgendwas in der Richtung gibt es bestimmt bei Python. Chancen auf Falsch-negativ und Falsch-Positiv kannst du natürlich nur ausbalancieren.
 
@TheSplit Office365 ist aktuell auf dem Stand von einem etwas aktualisierten Office2016 Retail, das "Format" also xlsx ist seit office 2007 "gleich" geblieben - ist ja eine offene .xml Struktur. Sind nur Optionen dazu gekommen.

@TS außer Python ist es da eigentlich viel simpler das über ein Makro direkt in Excel zu erledigen - da gibts auch keine Format Probleme.
Ich habe aber auch das "Problem" das ich den Ablauf nicht ganz verstehe.
Woher stammen die Daten? Also wie kommst du an diese? *Jemand* Exportiert *irgendwie* aus dem ERP und schickt dir die dann per Mail?
Du list die aus dem ERP aus > wenn ja, wie?
Also an welchem Punkt der Datenverarbeitungskette stehst du - und welchen Weg nimmt das Dokument, und wo ist das Ziel?
 
  • Thread Starter Thread Starter
  • #8
Sorry für die späte Antwort. Es ist folgendermaßen. Ich ziehe via Export eine große, logisch aufgebaute Datenbasis in Excel aus einer Software. Diese Datei muss um Informationen ergänzt werden, die von versschiednen Quellen (Abteilungen) kommen. Dann reimport. Die haben sich nicht viele Gedanken darüber gemacht, ob das mal jemand automatisch verarbeiten will. Hauptsache die Informartionen sind enhalten...

Daher sehr bunter Aufbau. Nicht einmal innerhalb der Register identisch. Etc..
 
Jetzt ists mir noch weniger klar. Du musst schon konkret beschreiben, wie die Informationen jeweils strukturiert sind.
Das Zielformat und was du aus der Software holst ist wie im Anfangsbeitrag beschrieben?

Wie gesagt, wenn du das Problem nur vage beschreibst wird dir niemand konkret helfen können, dazu musst du auch selber konkret sein.
 
Jep - wie passiert der Export, per sql? ein Klick in der Software und dann liefert er mal die Daten in Spalten, dann mal in Zeilen?
Evtl. kann man das ganze schlicht auch ganz anders angehen....
 
  • Thread Starter Thread Starter
  • #11
Also der Export läuft per Klick in der Software. Dort kann ich aussuchen, welche Daten ich ausgegeben haben möchte. In den Zeilen sind die Nummerierten Datensätze hinterlegt. In den Spalten die Überschriften mit dem jeweiligen Input pro Zeile.
Das kommt aus der Software. Diese Exceltabelle soll im weitere Informationen ergänzt werden. Also weitere Spalten hinzufügen. Dann pro Zeile mit Inhalten füllen.

Die neuen Inhalten kommen aus manuell erstellten Exceltabellen. In denen sind die Informationen etwas chaotisch verteilt. Beispielsweise besteht eine Exceltabelle aus 25 Registern. Diese Register sind jeweils ähnlich, aber nie identisch strukturiert.
Im ersten Register sind beispielsweise die einzelnen Datensätze in Zeilen geschrieben. Die dazugehörigen Informationen (Attribute) liegen in Spalten vor.

Die Attribute liegen hier in drei Blöcken vor.

Attributgruppe a) In Spalte B-D, inkl. Überschriften. Attributgruppe b) in Spalte E-K, keine Überschriften Attributgruppe c) in Spalte L-O Überschriften in Spalten.

Selbe Datei, zweites Register. Gleiche Attributgruppen, jedoch nicht über die gleichen Spaltenanzahlen verteilt. Also Gruppe a) beispielsweise 3 Spalten länger. Überschriften ja. Gruppe b) 2 Spalten kürzer, teilweise beschriftet. Gruppe c) Gleich lang wie im ersten Register, hier ausnahmsweise dieselben Beschriftungen.

Und so weiter.

Selbe Datei irgendwo eins der letzten Register. Sagen wir mal zwanzig.

Hier sind wieder die 3 Attributgruppen in Spalten hinterlegt. Jedoch im selben Arbeitsblatt blockweise.
Also in Zeile 2-10 erster Block. Gruppe a) in Spalte B-D. Gruppe b) in Spalte E-H. Gruppe c) Spalte I-L

Zweiter Block, Zeile 12 -25. Gruppe a) in Spalte B-F. Gruppe b) in Spalte F-I. Gruppe c) Spalte J-O

Die einzelnen Spalten in den Gruppen sind wieder nur teilweise beschriftet. Und auch nicht identisch. Obwohl mehr oder weniger dieselben Informationen dahinter stehen. Immer der gleiche Aufbau ließe sich easy bearbeiten. So bin ich leider überfragt.

Hoffe, ich konnte nun erklären, worum es geht. =)
 
ah - ja nu ist das verständlicher ;)

Gut dann würde ich die die vertauschte Reihenfolge haben - also die Infos Attribute in den zeilen statt Spalten haben über Transponieren tauschen


Dann die Augen offen halten was die Unterschiede der einzelnen Attribute sind.
Du kannst einfach alle Attribute selektieren und suchen>ersetzen leerzeichen durch unterstriche ersetzen - bei alten und neuen daten z.B. bzw. leerzeichen durch "" ersetzen damit sie ganz rausfallen insofern in einer Tabelle die Attribute mit "Attribut8" stehen.

Rechtschreibfehler bekommst du so natürlich nicht behoben - aber meist machen die *gleichen* bearbeiter die *gleichen* Fehler.
Somit könntet du trotzdem mit globalem suchen> erstetzen
relativ schnell ans Ziel kommen.

Das klingt zwar dann immer nach viel Handarbeit - aber ein Makro / Programm dafür zu schreiben braucht ebenfalls Zeit - vor allem wenn man es nicht gewohnt ist ;D

Wenn die Unterschiede Komplexer sind kannst du ja mal ein Beispiel zeigen - dann finden wir evtl. noch bessere Methoden.
Wenn du das regelmäßig machen musst - dann ist es jedoch natürlich recht sinnvoll das in ein Makro zu gießen - dafür würde ich aber die Schritte notieren die du beim ersten mal manuell machen musstest und dann ein excel-Makro machen - das geht recht fix wenn du weißt *wie* du manuell ans Ziel kommst.
 
Wenn du das regelmäßig machen musst
Wenn man dir angetragen hat, das regelmäßig zu machen, solltest du an einen Entscheider herantragen, dass das völlig inakzeptabel ist. Ihr müsst euch Abteilungsübergreifend auf ein Format einigen und das dann verwenden, im Zweifelsfall hast du zufällig eine Vorlage schon vorliegen, sprich so, wie es dann auch importiert wird von dir.
Du bist auch nicht zuständig dafür, Rechtschreibfehler zu korrigieren. Natürlich korrigiert man Fehler, die man sieht, aber alle Datensätze einzeln = halbautomatisch auf Fehler zu korrigieren.. brrrr.
Klar wälzen die Abteilungen das gerne auf dich ab, da müssen neue Verfahren implementiert werden, damit das alles mit möglichst wenig Arbeitsaufwand geschieht, im Idealfall werden Änderungen nicht in Excel, sondern direkt im System eingetragen, das potenzielle Fehler von sich aus erkennt und dem User Korrekturen vorschlägt.
Nunja. Das mit den Tabellen, dass muss auf jeden Fall vereinheitlicht werden.
 
Also mal fern ab - ich habe immer noch nicht ganz verstanden ob die "Spaltenüberschriften" wirklich wichtig sind oder nicht.

Wie kann einer eine Spalte ohne Überschrift anlegen, Attribute dort eintragen und erwarten das man dann Rückschlüsse daraus ziehen kann um welche "Spaltentitel/Überschrift" es sich handelt?
Solltest du das Anhand des "Attributes" erkennen?

---

Ich glaube, die Daten müssen erstmal in einer Format gebracht werden bzw. könntest du gleich eine Erkennung schreiben, wenn Daten deinem Format nicht entsprechen.
Also quasi ein Vorfilter um valide Dokumente von schlecht formatierten Dokumenten zu unterscheiden.

Sowieso besitzen die Daten aber ja in so fern eine fixe Struktur von oben nach unten, links nach rechts gesehen:
1) ein Feld leer, dann Spaltenüberschriften oder keine Überschrift (melden!)
2) Name 1/Name1 - Attributliste also alles melden was "leer"|"Leer"|"LEER".... betitelt ist - Datenfreie Attributzellen sind ja laut ERP in Ordnung ansonsten müsste man davon ausgehen das es sich um ein korrektes Attribut handelt?


--

Für die Zukunft, falls dir das öfter passiert:
Auch stimme ich hier mit den Leuten überein die sagen du solltest Vorgaben machen:
Bereite ein Dokument vor das die zu erfassenden Daten komplett listet - und verteile das zum Ausfüllen.
So wie ein Beispiel wie die Daten auszufüllen sind in einer Tabelle vor dem "Arbeitsdokument" mit Titel "Beispiel".

So wäre sichergestellt das die Leute nicht irgendwas ausdenken müssen und man hinterher halbwegs eine Struktur hat. So geht man der Situation aus dem Weg das jeder Mensch, anders denkend, seine eigene Suppe kocht.
 
Zuletzt bearbeitet:
  • Thread Starter Thread Starter
  • #16
Es ist mehr oder weniger ein wiederkehrender Zustand. Jedoch nicht, weil nicht die passende Entscheidungen getroffen werden und/oder die MA nicht mitziehen wollen. Es ist vielmehr so, dass wir vor etwas mehr einem Jahr ein neues ERP-System eingeführt haben. Vorher war es so, dass unsere Standorte (länderübergreifend) ihr eigenes System verwendet haben. Da war von "alles mit Excel" bis auf den Leib programmierte Individuallösung alles dabei. Das wird nun auf Grund der Größe des Unternehmens harmonisiert. Bzw. ist noch dabei. Ein Großteil der Länder sind bereits ausgerollt. Ein Teil ist gerade dabei und der Rest ist noch in den Vorbereitungen. Zeitgleich wird noch an zig anderen Schrauben gedreht. Das hat zur Folge, dass man quasi am laufenden Band irgendwas entdeckt, wo eine Schnittstelle geschaffen/angepasst werden muss, Daten zu migrieren (wie in diesem Fall hier) sind. Usw.. Grundsätzlich sollen die Daten hier schon einen einheitlichen und logischen Stand bekommen. Daher geht alles ins ERP, was da eben rein geht. Die Daten, die ich jetzt reinbekommen muss, lagen schon etwas vor der Entscheidung vor, dass diese hinein sollen. Die Abteilung, die diese erstellt hat, ist grundsätzlich gewillt, Formatvorlagen zu verwenden. Nur wenn´s keine gibt, machen die sich eben ihre eigenen Gedanken dazu. Die berücksichtigen nur nicht, ob man die mal irgendwann elektronisch verarbeiten wollen würde. Ich konnte denen keine Vorlage geben, da´s mir erst später bekannt wurde. Durch den großen Harmonisierungsprozess kommen solche Sachen b.a.W. wohl weiterhin vor. Liegt aber wie gesagt eher am nicht besser wissen und keine Zeit haben, es neu zu machen.
 
Zurück
Oben