
Ich habe folgende Daten
patient-id last name first name date of birth value date of measurement
A1 A BC 1900-01-01 1 1900-01-03 0:00
A1 A BC 1900-01-01 2 1900-01-04 0:00
A1 A BC 1900-01-01 3 1900-01-03 0:00
A1 A BC 1900-01-01 2 1900-01-02 0:00
A1 A BC 1900-01-01 1 1900-01-05 0:00
D5 D EF 1900-01-02 4 1900-01-04 0:00
D5 D EF 1900-01-02 5 1900-01-03 0:00
D5 D EF 1900-01-02 4 1900-01-02 0:00
F2 G HI 1900-01-03 6 1900-01-04 0:00
F2 G HI 1900-01-03 5 1900-01-01 0:00
F2 G HI 1900-01-03 6 1900-01-05 0:00
Jeder Patient hat maximal 10 Zeilen. Ich möchte diese zu einer einzigen Zeile pro Patient zusammenführen.
Beispielsweise werden die obigen Daten zu:
patient-id last name first name date of birth value1 date of measurement1 value2 date of measurement2 value3 date of measurement3 value4 date of measurement4 value5 date of measurement5 value6 date of measurement6 value7 date of measurement7 value8 date of measurement8 value9 date of measurement9 value10 date of measurement10
A1 A BC 1900-01-01 1 1900-01-03 0:00 2 1900-01-04 0:00 3 1900-01-03 0:00 2 1900-01-02 0:00 1 1900-01-05 0:00
D5 D EF 1900-01-02 4 1900-01-04 0:00 5 1900-01-03 0:00 4 1900-01-02 0:00
F2 G HI 1900-01-03 6 1900-01-04 0:00 5 1900-01-01 0:00 6 1900-01-05 0:00
Weiß jemand, wie das geht?
Antwort1
Sie können dies mit einer Hilfsspalte und einer Pivot-Tabelle tun
- Hilfsspalte: Fügen Sie Ihrer Tabelle eine neue Spalte mit einer Formel hinzu:
=COUNTIF($A$1:A2,A2)
Dadurch werden jedem Messdatum pro Patienten-ID Nummern zugewiesen.
- Pivot-Tabelle:
- Konstante Spalten (die man nur einmal braucht) als "Zeilen" hinzufügen
- neu erstellte Spalte als „Spalten“ hinzufügen
- Spalten zum Replizieren als „Werte“ hinzufügen
- Stellen Sie sicher, dass „Wertfeld zusammenfassen nach“ für jedes davon auf „Summe“ oder „Durchschnitt“ eingestellt ist
- Korrektes Zahlenformat für Datumsangaben festlegen
- dies funktioniert nur für Daten, die ausschließlich numerische Informationen enthalten (= kein Text)
Antwort2
Eine alternative Lösung, die weniger elegant als eine Pivot-Tabelle ist und möglicherweise etwas mehr Arbeit erfordert.
Nehmen wir an, Ihre aktuellen Daten befinden sich in einem Blatt mit dem Namen Old
.
- Stellen Sie
Old
sicher, dass die Daten nach Patienten-ID sortiert sind. - Ähnlich wie bei Mátés Lösung fügen Sie eine Hilfsspalte mit der Formel hinzu
=COUNTIF($A$1:A2;A2)
Sie sollten ungefähr Folgendes haben:
- Neues Blatt erstellen (zB
New
) - Kopieren Sie die Spalten A bis D von
Old
nachNew
- Wählen Sie in
New
die Spalten A bis D aus, klicken Sie aufDaten > Duplikate entfernen > Ok - Sie sollten jetzt eine eindeutige Zeile pro Patient haben (siehe den grünen Bereich unten).
Verwenden Sie den folgenden Screenshot, um den Rest des Blattes zu erstellen:
- Der graue Bereich sind die dynamischen Überschriften. Wenn Sie diese rechts 9 Mal kopieren/einfügen, werden sie automatisch von 1 bis 10 aktualisiert.
- Im weißen Bereich gibt es 2 Formeln: eine zum Abrufen des „Wertes“ und eine zum Abrufen des „Messdatums“. Sie können sie auch rechts kopieren/einfügen und sie werden automatisch aktualisiert.
Hier sind die SUMIFS
:
=SUMIFS(Old!$E:$E,Old!$G:$G,E$2,Old!$A:$A,$A4)
=SUMIFS(Old!$F:$F,Old!$G:$G,F$2,Old!$A:$A,$A4)
Notiz:Dies funktioniert auch nur mit numerischen Werten. Für nicht numerische Werte, die für jede Messung und jeden Patienten einzigartig sind, wäre meiner Meinung nach ein VBA-Makro die einzige Lösung.