Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

eine Tabellen-Zeile in mehreren Zeilen ausgeben
#1
Hallo Forum,

ich habe folgendes Problem: 

Ich trage die Tagesstunden von Mitarbeitern in eine Tabelle ein (Tabelle A1:I4).

Jetzt sollen diese Daten via Schnittstelle in ein Programm importiert werden. Die Schnittstelle sieht vor, dass für jede Zeiterfassung eine Zeile geschrieben werden soll. Wie bekomme ich nun die in obiger Tabelle in einer Zeile erfassten Uhrzeiten auf drei Zeilen aufgeteilt (gelb hinterlegt: C8:D16)?

Ich bin ratlos.... Ich bitte um Eure Hilfe!!

vielen Dank im Voraus!! :D


Angehängte Dateien
.xlsx   Mappe4.xlsx (Größe: 12,27 KB / Downloads: 22)
Antworten Top
#2
Hallo,

Du könntest PowerQuery verwenden. Die ersten beiden Spalten mit den Namen auswählen und unter "Transformieren" den Menüeintrag "andere Spalten entpivotieren" auswählen.
Gruß
Michael
Antworten Top
#3
Hallo Danke für deine Antwort.

Ich hatte mit PowerQuery bisher noch nicht zu tun. 

Ich habe versucht deinen Ratschlag umzusetzen. Wenn ich die zu entpivotieren Spalten auswähle und auf "nur ausgewählte Spalten entpivotieren" klicke erzeugt er mir 6 Zeilen, anstatt drei.

Wie muss ich es nun anstellen, dass ich die von - bis Zeilen eine eine Zeile bekomme?
Antworten Top
#4
Ich habe mir da mal angesehen. Ganz so einfach, wie ich es mir gedacht hatte, sieht es nicht aus. Ich habe mal eine PQ-Abfrage erstellt:
Code:
let
    Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    #"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Name", type text}, {"Vorname", type text}, {"von1", type number}, {"bis1", type number}, {"von2", type number}, {"bis2", type number}, {"von3", type number}, {"bis3", type number}, {"Summe Std.", type number}}),
    #"Entpivotierte andere Spalten" = Table.UnpivotOtherColumns(#"Geänderter Typ", {"Name", "Vorname"}, "Attribut", "Wert"),
    #"Gefilterte Zeilen" = Table.SelectRows(#"Entpivotierte andere Spalten", each ([Attribut] <> "Summe Std.")),
    #"Spaltentrennung nach Zeichenwechsel" = Table.SplitColumn(#"Gefilterte Zeilen", "Attribut", Splitter.SplitTextByCharacterTransition((c) => not List.Contains({"0".."9"}, c), {"0".."9"}), {"Attribut.1", "Attribut.2"}),
    #"Pivotierte Spalte" = Table.Pivot(#"Spaltentrennung nach Zeichenwechsel", List.Distinct(#"Spaltentrennung nach Zeichenwechsel"[Attribut.1]), "Attribut.1", "Wert"),
    #"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Pivotierte Spalte", "Zeit", each ([bis]-[von])*24)
in
    #"Hinzugefügte benutzerdefinierte Spalte"
Kopiere diesen Code in den PowerQuery-Editor unter "Ansicht" - "Erweiterter Editor" (lösche vorher alles was darin steht). Danach kannst Du die einzelnen Schritte nachvollziehen.
Gruß
Michael
Antworten Top
#5
Hallo

ganz höfliche Frage:   ohne PQ, oder sonstwie Schnickschnack.  Einfach nur simples logisches Denken!

Warum setzt du nicht in Spalte I, J, K, die Teilsumme 1-3 pro Mitarbeiter ein, und die Gesamtzeit in Spalte L.
Das ist m.E. fiel übersichtlicher als die Mitarbeiter in drei Zeilen zu wiederholen.  Ist nur ein Vorschlag von mir.

mfg Gast 123
Antworten Top
#6
Moin,

@Gast:
erster Post schrieb:Jetzt sollen diese Daten via Schnittstelle in ein Programm importiert werden. Die Schnittstelle sieht vor, dass für jede Zeiterfassung eine Zeile geschrieben werden soll

Viele Grüße 
derHöpp
[-] Folgende(r) 1 Nutzer sagt Danke an derHoepp für diesen Beitrag:
  • Gast 123
Antworten Top
#7
Wink 
danke für diesen Code!! 

Ich hab es in der Zwischenzeit auch selber geschafft! :D

Ich habe einfach die Zeiten (von1 - bis1 usw.) die zusammengehören zuerst verbunden und dann erst die Daten entpivotisiert. 

Wahrscheinlich hast du das ähnlich gelöst. 

Wie gesagt, ich kannte dieses Power-Query bis Dato nicht. Ist echt ein Super-Tool :D 

Meine Schnittstelle ist deutlich komplizierter als ich gepostet hab, aber ich denke dass ich das mit dem PQ alles lösen kann!!

vielen Dank für eure super schnellen Antworten!!!!! Echt ein super Forum hier!!!!!
Antworten Top


Gehe zu:


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