[Datenmanagement] Viele Datensätze sortieren

Hallo,

ich hänge hier gerade an einem Datenverwaltungs-Problem. Für meine Dissertation will ich eine Patientendatenbank aufsetzen. Dazu werden ersteinmal Patientendaten aus einer Klinikdatenbank mittels Excel exportiert (Keine Angst, jeglicher Datenschutz ist berücksichtigt!).

Leider kann die Datenbank nicht eine einheitliche Tabelle ausgeben; ich habe hier in Folge ca. 40 Excel-2003-Tabellen mit Informationen die Verknüpft werden sollen. Das einzige Merkmal (oder auch: die einzige Spalte) das in jeder (Excel)Tabelle vorkommt ist der Patientenname, alle anderen Merkmale(Spakten) variieren. Ein Patient kann in mehreren Tabellen vorkommen, muss aber nicht. Manche Merkmale/Spalten) kommen in mehreren Tabellen vor, andere nicht - aber wie gesagt: Nur „Patientenname“ ist wirklich in jeder Tabelle drin, immerhin immer als die erste Spalte.

An Programmen steht MS Office 2010 Pro zur Verfügung, sprich, auch Access.

Die meisten Access-Tutorials gehen davon aus, dass man die Daten in ein Formular eingibt, so das sich das Problem mit der ID löst. Das hilft mir aber aktuell nicht weiter, ich sitze vor einem Datenberg, den ich schnell sortieren muss.

Meine einzige Idee bisher war das ganze mit sehr vielen SVERWEIS-Befehlen in Excel zu lösen, aber das ist langsam und fühlt sich irgendwie umständlich an.

Ich suche daher nach der schnellsten Möglichkeit alle diese Daten anhand des einen gleichen Faktors (Name) zu verknüpfen und zwar am besten in einer großen Tabelle, damit ich mit SPSS drüber gehen kann.

Vielen Dank im Voraus!

Hallo Remy,

Dazu werden ersteinmal Patientendaten aus einer
Klinikdatenbank mittels Excel exportiert (Keine Angst,
jeglicher Datenschutz ist berücksichtigt!).

kann ich so aus der Ferne nicht beurteilen. Aus Datenschutz-
gründen fände ich es irschendwie besser die Klinik würde
dir den Patientenklarnamen nicht mitteilen.
Sondern nur eine eindeutige Nummer o.ä. pro Patient und nur
wenige in der Klinik haben eine Zuordnungsliste
NummerPatient oder auch keiner.

Leider kann die Datenbank nicht eine einheitliche Tabelle
ausgeben; ich habe hier in Folge ca. 40 Excel-2003-Tabellen
mit Informationen die Verknüpft werden sollen.

Eine Excelmappe hat u.a. Tabellenblätter. Auf diesen Blättern
können Tabellen sein, Auflistungen die wie Tabellen aussehen.
Was also meinst du mit 40 Tabellen?

Ein Patient kann in mehreren
Tabellen vorkommen, muss aber nicht. Manche Merkmale/Spalten)
kommen in mehreren Tabellen vor, andere nicht - aber wie
gesagt: Nur „Patientenname“ ist wirklich in jeder Tabelle
drin, immerhin immer als die erste Spalte.

Haben pro Patient der in mehreren „tabellen“ vorkommt
gleiche Merkmale den exakt gleichen Inhalt oder vaiiert das?

An Programmen steht MS Office 2010 Pro zur Verfügung, sprich,
auch Access.

Sorry, ich habe k.A. von Access.

Die meisten Access-Tutorials gehen davon aus, dass man die
Daten in ein Formular eingibt, so das sich das Problem mit der
ID löst. Das hilft mir aber aktuell nicht weiter, ich sitze
vor einem Datenberg, den ich schnell sortieren muss.

Verstehe ich das richtig, für Access bräuchtest du alle 40 T
in einem Formular = Tabelle?

Meine einzige Idee bisher war das ganze mit sehr vielen
SVERWEIS-Befehlen in Excel zu lösen, aber das ist langsam und
fühlt sich irgendwie umständlich an.

Sverweis() ist nicht langsam. Pro Patient 40 mal Sverweis()
benutzen kann umständlich werden. Aber ich weiß ja nicht
was genau du da Formeln geschrieben hast.
Und auch wichtig, umständlich hin oder her, ob es zu einer
Lösung führte die OK ist.

Ich suche daher nach der schnellsten Möglichkeit alle diese
Daten anhand des einen gleichen Faktors (Name) zu verknüpfen
und zwar am besten in einer großen Tabelle,

Das schnellste was ich kenne ist Vba-Code der durchaus im
Code die viel schnelleren eingebauten Excel-Funktionen
„benutzt“.

Gruß
Reinhard

Hallo!

Das Hauptproblem an SVERWEIS ist die Struktur der Daten, ich versuche mal eine genauere Beschreibung ( | = Spaltengrenze). Die angegebenen Zahlen sind nur zu Orientierung der Zeilenmenge

Mastertabelle (n > 1000)
_ Ptn_Name | Eigenschaft_1 | Eigenschaft_2_

40x Tabellen_Sorte_1 (M = Merkmal, 1 = Untermerkmal, 2 = Untermerkmal von 1), n zwischen 10 und > 500 je nach Tabelle
_ Ptn_Name | M11 | M1… | M14 | M21 | M2… | M94_
(Also insgesamt an die 100 Spalten)

1x Tabelle_Sorte_2 (Ist immerhin mit Mastertabelle in Sache n identisch)
_ Ptn_Name | Wert_1 | Wert_2 … Wert_10_

1x Tabelle_Sorte_3, 1800 Spalten, n > 100

Mein Hauptproblem mit SVERWEIS ist, dass ich die Spalten zählen müsste, was angesichts der Spaltenmenge und der Tatsache, dass diese auch noch pro Tabelle unterschiedliche Reihenfolgen haben wahrscheinlich Tage dauern würde und hochgradig Fehleranfällig ist.

Ich hatte eben gedacht, dass ich es beinahe mit Access geschafft hätte, nämlich mittels „Abfrage erstellen“, leider packt er mir nur Daten in eine neue Tabelle, wenn Ptn_Name in allen verwendeten Tabellen auftaucht - das passiert aber nicht.
Die Lösung müsste alle Spalten in denen für eine Person kein Wert existiert mit 0 füllen oder leer lassen. Selbst wenn ein Patient nur in der Mastertabelle (Theoretisch mögliche Stichprobe) drin steht müssen am Ende für ihn alle überhaupt in der Studie vorkommenden Variablen (= alle Spalten aller Tabellen) angelegt sein, wenn auch ohne Inhalt.

Hallo Remy,

Das Hauptproblem an SVERWEIS ist die Struktur der Daten, ich
versuche mal eine genauere Beschreibung ( | = Spaltengrenze).
Die angegebenen Zahlen sind nur zu Orientierung der
Zeilenmenge

genau wie sverweis interessiert mich die Zeilenmenge und
Spaltenmenge nicht. Sie muß im Rahmen der Obergrenze
der Version sein, ansonsten uninteressant für mich.
(erstmal, da mir vieles unklar ist)

Achja, zum unklaren, es wäre, wenn ich dir helfen soll,
für dich sehr weiterführend du würdest bitte mal auf all meine
Fragen auch eingehen.

Mein Hauptproblem mit SVERWEIS ist, dass ich die Spalten
zählen müsste, was angesichts der Spaltenmenge und der
Tatsache, dass diese auch noch pro Tabelle unterschiedliche
Reihenfolgen haben wahrscheinlich Tage dauern würde und
hochgradig Fehleranfällig ist.

Das ist deine Erfahrung/Einschätzung. Ich sehe für mich bislang
noch keinen Grund da manuell was zu zählen.
Wie wäre es mit Finden()?

Die Lösung müsste alle Spalten in denen für eine Person kein
Wert existiert mit 0 füllen oder leer lassen. Selbst wenn ein
Patient nur in der Mastertabelle (Theoretisch mögliche
Stichprobe) drin steht müssen am Ende für ihn alle überhaupt
in der Studie vorkommenden Variablen (= alle Spalten aller
Tabellen) angelegt sein, wenn auch ohne Inhalt.

Darin sehe ich kein Problem das mit Excel-Vba zu lösen.

Gruß
Reinhard

Hi,

eine Anmerkung.

Ich habe hier in Folge ca. 40 Excel-2003-Tabellen mit Informationen die Verknüpft werden sollen. Das einzige Merkmal (oder auch: die einzige Spalte) das in jeder (Excel)Tabelle vorkommt ist der Patientenname, alle anderen Merkmale(Spakten) variieren.

Wie viele Datensätze sind das denn insgesamt? XL2003 kann 65.000, XL2010 kann 1 Mio. Zeilen pro Arbeitsblatt. Da 2010 zur Verfügung steht, kann man alle Daten in ein Blatt überführen und dann die normalen Auswertungen darauf anwenden. Ich würde so vorgehen:

  1. Die Spaltenüberschriften der 40 einzelnen Export-Tabellen in ein neues Blatt kopieren. Unter jede Überschrift die „Herkunft“ eintragen, z.B.

Tabelle1 Spalte A

  1. Die so erzeugten vierzig Tabellchen in eine neue Arbeitsmappe auf ein Blatt kopieren; dabei mit Bearbeiten > Inhalte einfügen transponieren, so daß alle Spaltenüberschriften untereinander stehen und ihre Herkunft rechts danebensteht.
  2. Diese Tabelle dann auswerten, d.h. Dubletten entsorgen und eine sinnvolle Reihenfolge finden. Das ist die neue Struktur der Patientendaten, muß nur mit Transponieren wieder zurückverwandelt werden.
  3. Jede der vierzig Export-Tabellen mit Daten > Spezialfilter: Liste an andere Stelle kopieren auf ein neues Blatt in derselben Mappe so filtern, daß sie der im 3. Schritt entwickelten Datenstruktur entsprechen.
  4. Die Filterergebnisse in einem Arbeitsblatt (am besten in der Arbeitsmappe mit der Datenstruktur) zusammenführen. Dann hat man eine „richtige“ (naja, es ist ja noch Excel) Datenbankk und kann bequem die Auswertungen machen.

Und nicht vergessen: immer schön speichern und nix löschen! Daher auch die scheinbar umständliche Filterei der Originaldaten auf ein neues Blatt!

Alles andere scheint mir weniger zielführend, weil verteilte Daten der Tod jeder Auswertung sind.

HTH.

Markus
------------------
der immer noch Sterne sammelt.

Grüß Gott,

ich verstehe dein Problem nicht! Wir haben hier ein Access-Brett und ein Excel-Brett. (siehe Brettbeschreibung hier)

In beiden Brettern wird dir geholfen.
Ich würde es in Access machen. Alle 40 Tabellen importieren in eine Tabelle und per Abfrage/n dann deine Auswertungen machen.

Du hast Realnamen der Patienten in den Tabellen? Das kostet min. zwei Personen in der Klinik den Kopf. Eigentlich kannst du gleich aufhören zu studieren, sollte das bekannt werden.

Grüße aus München
Wolfgang
(Netwolf)

Klarstellung
Ich wollte den Beitrag nicht in beide Foren schreiben und wusste nicht ob Access oder Excel das richtige Programm dafür ist.

Übrigens: Das die Daten hoch sensibel sind weis ich selber und den Off-Line-Bereich der Klinik verlassen die Daten und die Datenbank auch nicht.

Um Missverständnissen vor zu beugen: Die Daten sind nicht Grundlage einer Veröffentlichung, sondern im internen Gebrauch - sie liegen eh schon vor. Zum Vergleich: Das was ein Hausarzt bei jedem Besuch an die Krankenkasse sendet ist brenzlicher. Meine Arbeit beginnt dann -und nur dann-, wenn sich ein „Verdacht“ aus dem klinikinternen Vergleich bestätigt.

Ich finde es kränkend wenn jemand glauben würde, das in der eigentlichen Arbeit mit Klarnamen geforscht wird, das ginge durch keinen Medizin-Ethik-Rat.

Nu isser weg, Pöser pöser Wolf :smile:) o.w.T.