Clever-Excel-Forum

Normale Version: Vorhandene Tabelle in zeilenbasiertes Format umwandeln
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

In einer Tabelle wurden von mehreren Geräten jeweils mehrere Messwerte notiert. Das ganze sieht so aus:

Code:
Datum         Werte Gerät A     Werte Gerät B     Werte Gerät C
01.01.2020    1                 1                 5
              2                 5                 6
              3                 7                 4

02.02.2020    0                 3                 5
              5                 4                 2
              3                 7                 9

Jeder Eintrag wird also von einem Datumswert markiert und für jedes Gerät gibt es dann mehrere Messwerte. Die zahl der Einträge / Werte ist dabei immer gleich.

Nun muss ich das Ganze in ein anderes Programm übertragen, dass die Daten per CSV übernehmen kann. Dafür müsste das Ganz in ein zeilenbasiertes Format umgewandelt werden:

Code:
01.01.2020   Gerät A   1  3  5
01.01.2020   Gerät B   1  5  7
01.01.2020   Gerät C   5  6  4
02.02.2020   Gerät A   0  5  3
02.02.2020   Gerät B   3  4  7
02.02.2020   Gerät C   5  2  9

Die echte Tabelle besteht natürlich aus deutlich mehr Einträgen. Wie mache ich das am besten automatisch?

Geht das mit einfachen Excel Funktionen oder nur mit VB oder anderer Programmierung?
Hallo,

das was Du gezeigt hast hilft nicht gerade. Es wird nur ein Datum angezeigt.
Stell doch eine anonymisierte Tabelle mit ein paar Werten ein. Das würde helfen.

Gruß
Marcus
Hallo,

der 1.1.2020 war der erste Tag des Jahres 2020. Es war ein Mittwoch. KW=1

Konnte ich helfen oder wolltest du etwas ganz anderes wissen?
Vielen Dank für die schnellen Antworten! Ich hatte den Beitrag versehentlich unfertig abgeschickt, nun aber ergänzt Blush
Moin

Normalerweise würde ich ja PQ für das entpivotieren empfehlen, aber da die Daten danach als csv abgespeichert werden sollen (was man mit VBA automatisiert) macht es Sinn auch diesen Teil mit VBA zu lösen.
Falls die Leerzeile in Deinem Beispiel keine ist:

F1: 

=WAHL(MIN(SPALTE(A1);3);
INDEX(A:A;KÜRZEN(ZEILE(A6)/3)*3-4);
INDEX($B$1:$D$1;REST(ZEILE()-1;3)+1);
INDEX($B:$D;KÜRZEN((ZEILE()-1)/3)*3+SPALTE(A1)-1;REST(ZEILE()-1;3)+1))

Wenn sie doch eine ist, kannst Du sie über geeignetes Sortieren entfernen.