Von Spalten in Zeilen

Bild

Betrifft: Von Spalten in Zeilen
von: Matthias Offermanns
Geschrieben am: 11.11.2003 13:38:54

Hallo Excel-Freunde,

ich habe ein Excel-Problem, welches ich nicht lösen kann.
Mir liegt eine Datei mit 3 Spalten und einigen tausend Zeilen vor. In der ersten Spalte steht eine Patientennummer, in der zweiten Spalte die Diagnoseart (HD oder ND), wobei jeder Patient einmal eine HD hat. Je Patient können, müssen aber nicht, bis zu 15 ND auftreten. In der 3. Spalte steht die dazugehörige Diagnose.

Beispiel:
PatNr Diagnoseart Diagnose
100 HD F20.0
101 HD F34.1
101 ND F43.1
102 HD F10.2
103 HD F03
103 ND F32.1
103 ND F99

Diese Datei soll nun so umgewandelt werden, dass alle Angaben für einen Patienten in einer Zeile stehen, also
PatNr. HD ND1 ND2
100 F20.0
101 F34.1 F43.1
102 F10.2
103 F03 F32.1 F99

Da ich ratlos bin, weiß jemand, wie das zu machen ist?

Grüsse

Matthias

Bild


Betrifft: AW: Von Spalten in Zeilen
von: Dirk
Geschrieben am: 11.11.2003 13:50:42

Hallo.

Alles markieren, dann Inhalte einfügen und transponieren auswählen.

Cheers


Bild


Betrifft: AW: Von Spalten in Zeilen, NOCH OFFEN
von: Hajo_Zi
Geschrieben am: 11.11.2003 13:55:39

Hallo Dirk

hast DU Dir mal die Originaltabelle und die Kopie angesehen. Ich glaube nicht.


Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro




Bild


Betrifft: AW: Von Spalten in Zeilen
von: ChrisL
Geschrieben am: 11.11.2003 14:27:10

Hi Matthias

Option Explicit


Sub RunReport()
Dim iZeile As Long, LetzteZeile As Long, LetzteSpalte As Byte
Dim WS1 As Worksheet, WS2 As Worksheet
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Sheets.Add
WS2.Range("A1") = "PatNr"
WS2.Range("B1") = "HD"
For iZeile = 2 To WS1.Range("A65536").End(xlUp).Row
    If WS1.Cells(iZeile, 1) = WS1.Cells(iZeile - 1, 1) Then
        LetzteZeile = WS2.Range("A65536").End(xlUp).Row
        LetzteSpalte = WS2.Range("IV" & LetzteZeile).End(xlToLeft).Column + 1
        If Cells(1, LetzteSpalte) = "" Then Cells(1, LetzteSpalte) = "ND" & LetzteSpalte - 2
        WS2.Cells(LetzteZeile, LetzteSpalte) = WS1.Cells(iZeile, 3)
        
    Else
        LetzteZeile = WS2.Range("A65536").End(xlUp).Row + 1
        WS2.Cells(LetzteZeile, 1) = WS1.Cells(iZeile, 1)
        WS2.Cells(LetzteZeile, 2) = WS1.Cells(iZeile, 3)
    End If
Next iZeile
End Sub



Siehe Anhang. Bedingt, dass die Tabelle sortiert ist.
https://www.herber.de/bbs/user/1876.xls

Gruss
Chris


Bild


Betrifft: AW: Von Spalten in Zeilen
von: Matthias Offermanns
Geschrieben am: 11.11.2003 14:52:47

Hallo Chris,

ich habe Dein Makro gerade an einer Kopie meiner Originaldatei ausprobiert, und es scheint zu funktionieren.

Vielen Dank für Deine schnelle und kompetente Hilfe!!!

Grüsse

Matthias


Bild


Betrifft: Formellösung
von: IngoG
Geschrieben am: 11.11.2003 15:09:38

HAllo Matthias,

hab mal eine Tabelle erstellt, die Deinen Anforderungen entsprechen sollte.

https://www.herber.de/bbs/user/1877.xls


Deine originaldaten kopierst Du in die Tabelle "OG_Daten", dann errechnet er Deine Auswertung im Blatt "Auswertung".
in der Tabelle Auswertung mußt Du allerdings die Zeilen evt weiter nach unten kopieren, wenn mehr als 200 verschiedene patNr. existieren. Sollte zu einer PatNr. mehr als 15 ND existieren mußt Du auch hier einfach die letzte Saplte nach rechts kopieren.

Es kann sein, dass er bei voller Auslastung etwas länger rechnen, deshalb erstmal diese abgespeckte Version.

solltest Du fragen haben, melde Dich einfach nochmal
Gruß Ingo

PS im augenblick werden aus der Originaldatei nur die erten 2000 zeilen untersucht.
wenn es absehbar wesentlich weniger sind, kannst Du mit Ctrl-H den wert 2000 in zB 1500 in allen zellen ändern, das sollte die Performance auch etwas erhöhen.


Bild


Betrifft: AW: Formellösung
von: Matthias Offermanns
Geschrieben am: 11.11.2003 15:24:50

Hallo Ingo,

ich bin ein Freund von Formellösungen. Aber die index-Funktion habe ich bisher noch nicht angewendet, daher muss ich erst einmal verstehen, wie Deine Formel funktioniert. Da diese sehr verschachtelt ist, wird dies wahrscheinlich eine Weile dauern. Auf der anderen Seite mag ich solche komplizierten Formeln, da sie zum Nachdenken anregen.

Auf jeden Fall danke ich Dir für Deine Mühe!!!

Grüsse

Matthias


Bild

Beiträge aus den Excel-Beispielen zum Thema " Von Spalten in Zeilen"