Clever-Excel-Forum

Normale Version: mehrere Spalten in DBfreundliches Format bringen mit Spaltentitel als extra Spalte
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe das dumpfe Gefühl, dass dieses Thema sich irgendwie mit Googlen oder Forumlesen beantworten lässt, jedoch bin ich scheinbar zu inkompetent eine vernünftige Googlesuche zu machen, wenn es um Excel geht.
Folgendes Bild beschreibt sehr gut, was ich vorhabe:
[attachment=44979]

Aus der vorderen Tabelle soll die Hintere generiert werden. Dabei soll aus dem Jahr in der Kopfzeile eine eigene Spalte "Jahr" werden, sodass die Daten die Normalformen für Datenbanken erfüllen. Der Name ist hier quasi der Primärschlüssel und soll im Ergebnis mehrfach vorkommen.
Die Anzahl an Jahresspalten in der Ausgangstabelle ist immer gleich, die Jahre selber können sich ändern.
Kann mir jemand dabei helfen, dies umzusetzen oder zumindest ein paar Befehle in den Raum werfen, mit welchen ich mich dafür beschäftigen sollte?

Bitte entschuldigt diese von Unwissenheit gefüllte Frage und vielen Dank für die Hilfe!

VG
Konrad
Moin!
Google mal nach Power Query entpivotieren
Dort solltest Du fündig werden.

Wenn Du nicht klarkommst, lade eine Excel-Datei hoch.
Ein Bild mag ich nicht abtippen!

Gruß Ralf

P.S.:
Ich habe es mal kurz gemacht und erhalte folgenden M-Code:
PHP-Code:
let
    Quelle 
Excel.CurrentWorkbook(){[Name="Tabelle3"]}[Content],
    #"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Name", type text}, {"2020", Int64.Type}, {"2021", Int64.Type}, {"2022", Int64.Type}, {"2023", Int64.Type}}),
    #"Entpivotierte andere Spalten" = Table.UnpivotOtherColumns(#"Geänderter Typ", {"Name"}, "Attribut", "Wert"),
    #"Neu angeordnete Spalten" = Table.ReorderColumns(#"Entpivotierte andere Spalten",{"Name", "Wert", "Attribut"})
in
    
#"Neu angeordnete Spalten" 
Hi,

falls du über Formeln gehen willst:
G2: =ZUSPALTE(WENN(SEQUENZ(;SPALTEN(Tabelle1)-1);Tabelle1[Name]);0;WAHR)
H2: =ZUSPALTE(WEGLASSEN(Tabelle1;0;1);0;WAHR)
I2: =ZUSPALTE(WENN(SEQUENZ(ZEILEN(Tabelle1));WEGLASSEN(Tabelle1[#Kopfzeilen];0;1));0;WAHR)
Die Formeln spillen automatisch nach unten. Daher ist es nicht möglich, daraus eine Strg-T-Tabelle zu machen.

Falls du eine solche Strg-T-Tabelle haben willst, oder dein Excel z.B. ZUSPALTE() noch nicht kennt:
G2: =INDEX(Tabelle1[Name];REST(ZEILE(A1)-1;ZEILEN(Tabelle1))+1)
H2: =INDEX(Tabelle1;REST(ZEILE(A1)-1;ZEILEN(Tabelle1))+1;(ZEILE(A1)-1)/ZEILEN(Tabelle1)+2)
I2: =INDEX(Tabelle1[#Kopfzeilen];1;(ZEILE(A1)-1)/ZEILEN(Tabelle1)+2)
Der Nahteil hier: du musst die Formeln selbst weit genug nach unten ziehen.