Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Power Query Nettoarbeitstage

Power Query Nettoarbeitstage
02.08.2022 11:11:11
Tom
Hallo zusammen,
ich möchte mit Power Query die Nettoarbeitstage (ohne Wochenenden) und mit ausländischen Feiertagen berechnen lassen.
Der Code für die Tage abzgl. den Wochenenden habe ich gegoogelt. Wie lassen sich jetzt noch meine spezifischen Feier- und evtl. Brückentage davon abziehen?
Code Liste aller Tage

List.Dates([Datum von], Number.From([Datum bis] - [Datum von]) + 1, #duration(1,0,0,0))
Liste aller Tage abzgl. Wochenenden

List.Select( [Liste aller Tage als Datum], each Date.DayOfWeek(_) 
Danke & viele Grüße, Tom

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Power Query Nettoarbeitstage
02.08.2022 11:34:50
ChrisL
Hi Tom
Die ausländischen Feiertage habe ich in einer separaten Liste "Feiertage" abgelegt:

let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle3"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Feiertage", type date}}),
Feiertage = #"Geänderter Typ"[Feiertage]
in
Feiertage
Die Anzahl mittels benutzerdefinierter Spalte in der Hauptabfrage:

=List.Count([Liste ohne WE])-List.Count(List.Intersect({[Liste ohne WE],Feiertage}))
cu
Chris
AW: Power Query Nettoarbeitstage
03.08.2022 13:37:48
Tom
Hi Chris,
danke für die Antwort. Den ersten Teil mit der List der Feiertage verstehe ich. Mit der Anzahl in die Hauptabfrage komme ich nicht klar. Woher kommen die Spalte "Liste ohne WE"?

=List.Count([Liste ohne WE])-List.Count(List.Intersect({[Liste ohne WE],Feiertage}))
Der Code aus meinem Post wirft auch ein Error heraus. Ich habe meine Spalten Datum von und Datum bis als Ganze-Zahl formatiert, aber auch es als Datum versucht. An was liegt das?

List.Dates([Datum von], Number.From([Datum bis] - [Datum von]) + 1, #duration(1,0,0,0))
Grüße Tom
Anzeige
AW: Power Query Nettoarbeitstage
03.08.2022 15:41:00
ChrisL
Hi Tom
Woran es liegt, kann ich aus der Ferne nicht beurteilen (evtl. von-bis vertauscht?). Mein Test hatte 2 Spalten "Datum von" und "Datum bis". Beide Spalten als Datum-Kurz definiert.
Entsprechend deiner Vorgabe ergibt sich dann auch die Spalte "Liste ohne WE":
Benutzerdefinierte Spalte "Liste aller Tage als Datum":

= List.Dates([Datum von], Number.From([Datum bis] - [Datum von]) + 1, #duration(1,0,0,0))
Benutzerdefinierte Spalte "Liste ohne WE":

= List.Select( [Liste aller Tage als Datum], each Date.DayOfWeek(_) 
Benutzerdefinierte Spalte "Ergebnis":

= List.Count([Liste ohne WE])-List.Count(List.Intersect({[Liste ohne WE],Feiertage}))
Liste Feiertage hat den gleichen Datentyp (Datum kurz).
cu
Chris
Anzeige
AW: Power Query Nettoarbeitstage
03.08.2022 16:44:44
Tom
Hi Chris,
Dank Dir. Einen Schritt ging es jetzt weiter. Leider kommt wieder ein Error. Die Formatierung ist denke ich das Problem. Anbei eine Datei nachgebaut. Würdest Du bitte einen Blick drüber werfen?
https://www.herber.de/bbs/user/154497.xlsx
Grüße Tom
AW: Power Query Nettoarbeitstage
03.08.2022 17:04:40
ChrisL
Hi Tom
Die Liste darf nicht erweitert werden d.h. die Zwischenschritte weglassen (List.Intersect/List.Count bezieht sich auf Datentyp List und nicht auf Einzelwerte).

let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle2"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Datum von", type datetime}, {"Datum bis", type datetime}}),
#"Geänderter Typ1" = Table.TransformColumnTypes(#"Geänderter Typ",{{"Datum von", type date}, {"Datum bis", type date}}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Geänderter Typ1", "Liste aller Tage als Datum", each List.Dates([Datum von], Number.From([Datum bis] - [Datum von]) + 1, #duration(1,0,0,0))),
#"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte", "Liste ohne WE", each List.Select([Liste aller Tage als Datum], each Date.DayOfWeek(_) 
cu
Chris
Anzeige
AW: Power Query Nettoarbeitstage
04.08.2022 16:31:22
Tom
Hi Chris,
danke für die Erläuterung. Mit der LIST Funktion hatte ich bisher noch nicht gearbeitet.
Jetzt hat es geklappt. Ich lasse statt dem "bis Datum" das heute Datum für die Berechnung der AT nehmen.

=List.Dates([Eingang], Number.From(Date.From(DateTime.LocalNow()) - [Eingang]) + 1, #duration(1,0,0,0))
Vielen Dank für die Unterstützung.
VG Tom
AW: Power Query Nettoarbeitstage
05.08.2022 08:46:57
ChrisL
Hi Tom
Danke für die Rückmeldung. Freut mich, dass es funktioniert hat.
Nachfolgend den ganzen Code noch etwas zusammengedampft. Der Quell-Bezug für Feiertage erfolgt direkt in der Hauptabfrage (keine separate Abfrage mehr benötigt). Die Funktionen zusätzlich noch etwas verschachtelt.
Schlussendlich das gleiche wie vorher, einfach etwas kompakter.

let
QuelleFeiertage = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
ListFeiertage = Table.TransformColumnTypes(QuelleFeiertage,{{"Feiertage", type date}})[Feiertage],
QuelleEingang = Excel.CurrentWorkbook(){[Name="Tabelle2"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Table.TransformColumnTypes(QuelleEingang,{"Eingang", type datetime}),{"Eingang", type date}),
Zwischenresultat = Table.AddColumn(#"Geänderter Typ", "Liste Tage ohne WE", each List.Select(List.Dates([Eingang], Number.From(Date.From(DateTime.LocalNow()) - [Eingang]) + 1, #duration(1,0,0,0)), each Date.DayOfWeek(_) 
cu
Chris
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige