mehrere Spalten in DBfreundliches Format bringen mit Spaltentitel als extra Spalte
#1
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:
   

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
Antworten Top
#2
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" 
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • konrad
Antworten Top
#3
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.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • konrad
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste