Commit pending finance and Power BI work
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
// ============================================================
|
||||
// QUERY 2: Rexx_Absenzen
|
||||
// ============================================================
|
||||
// Quelle: Abwesenheitinstunden.xlsx (Rexx #744)
|
||||
// Krankheitsstunden Detail → fuehrend statt SAP-Tage
|
||||
// ============================================================
|
||||
|
||||
let
|
||||
Source = Excel.Workbook(File.Contents("C:\temp\Abwesenheitinstunden.xlsx"), null, true),
|
||||
Data = Source{0}[Data],
|
||||
Head = Table.PromoteHeaders(Data, [PromoteAllScalars = true]),
|
||||
|
||||
Sel = Table.SelectColumns(Head, {
|
||||
"Personalnummer",
|
||||
"Nachname, Vorname (Link Personal)",
|
||||
"Stelle", "Organisation", "Leitung j/n", "Personal Status",
|
||||
"Krankheit angetreten (Stunden Ind.)",
|
||||
"Krank nicht buchbar angetreten (Stunden Ind.)",
|
||||
"Krankheit angetreten (Zeitraum)",
|
||||
"Krank nicht buchbar angetreten (Zeitraum)",
|
||||
"Krankheit genehmigt (Stunden Ind.)",
|
||||
"Krank nicht buchbar genehmigt (Stunden Ind.)",
|
||||
"Krankheit gebucht gesamt (Stunden Ind.)",
|
||||
"Krank nicht buchbar gebucht gesamt (Stunden Ind.)"
|
||||
}),
|
||||
|
||||
Ren = Table.RenameColumns(Sel, {
|
||||
{"Personalnummer", "PERNR_Text"},
|
||||
{"Nachname, Vorname (Link Personal)", "Name"},
|
||||
{"Stelle", "Stelle"},
|
||||
{"Organisation", "Organisation"},
|
||||
{"Leitung j/n", "Leitung"},
|
||||
{"Personal Status", "Status"},
|
||||
{"Krankheit angetreten (Stunden Ind.)", "Krankheit_Kurz_Std"},
|
||||
{"Krank nicht buchbar angetreten (Stunden Ind.)", "Krankheit_Lang_Std"},
|
||||
{"Krankheit angetreten (Zeitraum)", "Krankheit_Kurz_Zeitraum"},
|
||||
{"Krank nicht buchbar angetreten (Zeitraum)", "Krankheit_Lang_Zeitraum"},
|
||||
{"Krankheit genehmigt (Stunden Ind.)", "Krankheit_Kurz_Genehmigt"},
|
||||
{"Krank nicht buchbar genehmigt (Stunden Ind.)", "Krankheit_Lang_Genehmigt"},
|
||||
{"Krankheit gebucht gesamt (Stunden Ind.)", "Krankheit_Kurz_Gebucht"},
|
||||
{"Krank nicht buchbar gebucht gesamt (Stunden Ind.)", "Krankheit_Lang_Gebucht"}
|
||||
}),
|
||||
|
||||
AddPernr = Table.AddColumn(Ren, "Personalnummer", each
|
||||
try Number.FromText(Text.Trim(Text.From([PERNR_Text]))) otherwise null, Int64.Type),
|
||||
|
||||
SetTypes = Table.TransformColumnTypes(AddPernr, {
|
||||
{"Krankheit_Kurz_Std", type number},
|
||||
{"Krankheit_Lang_Std", type number},
|
||||
{"Krankheit_Kurz_Genehmigt", type number},
|
||||
{"Krankheit_Lang_Genehmigt", type number},
|
||||
{"Krankheit_Kurz_Gebucht", type number},
|
||||
{"Krankheit_Lang_Gebucht", type number}
|
||||
}),
|
||||
|
||||
// Gesamt-Krankheitsstunden
|
||||
AddGes = Table.AddColumn(SetTypes, "Krankheit_Gesamt_Std", each
|
||||
(if [Krankheit_Kurz_Std] = null then 0 else [Krankheit_Kurz_Std]) +
|
||||
(if [Krankheit_Lang_Std] = null then 0 else [Krankheit_Lang_Std]),
|
||||
type number),
|
||||
|
||||
// Krankheitstage (Stunden / 8.4h pro Tag)
|
||||
AddKTG = Table.AddColumn(AddGes, "Krankheitstage_Gesamt", each
|
||||
Number.Round([Krankheit_Gesamt_Std] / 8.4, 1), type number),
|
||||
AddKTK = Table.AddColumn(AddKTG, "Krankheitstage_Kurz", each
|
||||
let s = if [Krankheit_Kurz_Std] = null then 0 else [Krankheit_Kurz_Std] in
|
||||
Number.Round(s / 8.4, 1), type number),
|
||||
AddKTL = Table.AddColumn(AddKTK, "Krankheitstage_Lang", each
|
||||
let s = if [Krankheit_Lang_Std] = null then 0 else [Krankheit_Lang_Std] in
|
||||
Number.Round(s / 8.4, 1), type number),
|
||||
|
||||
// Krankenquote (kompatibel, Basis 21 Tage)
|
||||
AddKQ = Table.AddColumn(AddKTL, "Krankenquote_MA", each
|
||||
if [Krankheitstage_Gesamt] = 0 then 0 else [Krankheitstage_Gesamt] / 21, type number),
|
||||
AddKQO = Table.AddColumn(AddKQ, "Krankenquote_ohne_LZK", each
|
||||
if [Krankheitstage_Kurz] = 0 then 0 else [Krankheitstage_Kurz] / 21, type number),
|
||||
|
||||
AddAbs = Table.AddColumn(AddKQO, "Absenztage_Total", each [Krankheitstage_Gesamt], type number),
|
||||
|
||||
Filter = Table.SelectRows(AddAbs, each [Status] = "Aktiv"),
|
||||
Clean = Table.RemoveColumns(Filter, {"PERNR_Text"}),
|
||||
Reorder = Table.ReorderColumns(Clean, {"Personalnummer"} &
|
||||
List.RemoveItems(Table.ColumnNames(Clean), {"Personalnummer"}))
|
||||
in
|
||||
Reorder
|
||||
Reference in New Issue
Block a user