# Handoff Power BI HR KPI - 2026-05-11 ## Kontext Ziel ist ein Power-BI-Dashboard fuer HR-KPIs Schweiz. HR soll das Dashboard konsumieren, nicht selbst bauen. Die Daten sollen aus SAP und mehreren Rexx-Exports in Power BI zusammengefuehrt werden. Der aktuelle Fokus ist Phase 1: Zeit und Absenzen, insbesondere Krankheit, Unfall, Ferien, GLZ/Saldo und Vergleich der Quoten mit SAP. ## Dateien im Projektordner Arbeitsordner: ```text C:\Users\koi\source\repos\Ai\Powerbi ``` Vorhandene Dateien: ```text HR_KPI_Formeln_CH.xlsx infos.txt infos2.txt ``` `infos.txt` und `infos2.txt` wurden gelesen. Sie enthalten den bisherigen Chat-/Projektverlauf zum HR-KPI-Dashboard. ## Relevante Exportdateien in C:\temp In `C:\temp` wurden relevante SAP- und Rexx-Dateien gefunden: ```text C:\temp\HR_KPI_EXPORT.xlsx C:\temp\Abwesenheitinstunden.xlsx C:\temp\Exportkommengehen.xlsx C:\temp\Saldiperstichdatum.xlsx C:\temp\Saldistundenferien.xlsx C:\temp\Personalausgeschieden.xlsx ``` Wichtige Beobachtung: `HR_KPI_EXPORT.xlsx` wirkt wie ein SAP-Live-Export. Die ersten gelesenen Daten waren fuer `Geschäftsjahr = 2026` und `Buchungsperiode = 4`, also April 2026. Fuer den von HR gewuenschten Test Q1/2026 muessen vermutlich SAP-Daten fuer Perioden 1, 2 und 3 exportiert bzw. bereitgestellt werden. ## Vorhandene Formelmappe Datei: ```text C:\Users\koi\source\repos\Ai\Powerbi\HR_KPI_Formeln_CH.xlsx ``` Sheets: ```text KPI_Formeln Beispielrechnung PowerBI_Mapping ``` Diese Datei ist aktuell eine Formel-/Beispielmappe, keine Live-Datendatei. ### Inhalt KPI_Formeln Enthaelt mathematische Definitionen fuer: - Krankheitstage je Mitarbeitenden - Krankheitstage gesamt - Krankheitsquote % - Unfallquote % - Gesundheitsbedingte Absenzen % - Soll-Arbeitszeit % - FTE - allgemeine Prozentanteile Wichtige Formelidee: ```text Krankheitstage je Mitarbeitenden = Krankheitsstunden / persoenliche Sollzeit pro Tag Krankheitsquote % = Summe Krankheitsstunden / Summe Soll-Arbeitsstunden * 100 Unfallquote % = (BU-Stunden + NBU-Stunden) / Summe Soll-Arbeitsstunden * 100 Gesundheitsbedingte Absenzen % = (Krankheit + BU + NBU) / Sollstunden * 100 ``` ### Inhalt Beispielrechnung Enthaelt Beispielwerte fuer drei Mitarbeitende: - Vollzeit - Teilzeit 50% - 80% Diese Beispielrechnung dient zum Validieren der Formellogik. ### Inhalt PowerBI_Mapping Enthaelt Mapping von KPI auf Power-BI-Felder/Measures, z.B.: - `Rexx_Absenzen[Krankheit_Gesamt_Std]` - `M_Krankheitstage_Gesamt` - `M_Gesundheitsbedingte_Absenzen_Prozent` - `HR_KPI_Daten[FTE]` ## Architekturentscheidung SAP und Rexx werden nicht in SAP zusammengefuehrt. Stattdessen: ```text SAP CSV/XLSX + mehrere Rexx XLSX/CSV + manuelle Excel-Dateien werden in Power BI ueber Personalnummer/PERNR zusammengefuehrt. ``` ### SAP-Report Der SAP-Report `Z_HR_KPI_CONSOLIDATE` liefert nur SAP-Daten: - Stammdaten - Organisation/Kostenstelle - Beschaeftigungsgrad/FTE - Ein-/Austritt - Lohn - SAP-Abwesenheiten - Stellenplan - CSV-/Excel-Export fuer Power BI Rexx-Daten werden nicht aus SAP extrahiert. Rexx-Felder im SAP-Report sind nur Platzhalter bzw. sollten langfristig eher separat aus Rexx kommen. ### Rexx Rexx kann nicht alles in einem Export liefern, da pro Export maximal ca. 40 Felder moeglich sind. Daher werden thematische Exports benoetigt: - Abwesenheiten/Krankheit - Ferien - GLZ/Salden/Ueberstunden - Austritte/Fluktuation - Pulsumfrage/Zufriedenheit - ggf. weitere Themen ## Gelesene Spalten aus den Live-/Exportdateien ### C:\temp\HR_KPI_EXPORT.xlsx Sheet: ```text Data ``` Dimension: ```text A1:AK1139 ``` Relevante Spalten aus Zeile 1: ```text Personalnummer Geschäftsjahr Buchungsperiode Buchungskreis Personalbereich Personalteilbereich Kostenstelle Organisationseinheit Planstelle Stellenschlüssel Mitarbeiterkreis Abrechnungskreis Teilzeitkraft Mitarbeitergruppe Beschäftigungsgrad % Vorname Nachname Geschlecht Geburtsdatum Datum Datum Bruttolohn Monat Krankheitstage gesamt Krankheit < 60 Tage Krankheit >= 60 Tage (LZK) Nichtberufsunfall Tage Berufsunfall Tage Soll-Stelle vorhanden Pulsumfrage Score (Rexx) MA-Zufriedenheit (Rexx) Kununu Score Angelegt am Uhrzeit Angelegt von ``` Beispiel aus den ersten Datenzeilen: ```text Personalnummer 2005, Geschäftsjahr 2026, Buchungsperiode 4 Personalnummer 2010, Geschäftsjahr 2026, Buchungsperiode 4 Personalnummer 2012, Geschäftsjahr 2026, Buchungsperiode 4 ``` Hinweis: Fuer Q1/2026 brauchen wir Perioden 1, 2, 3 oder einen Q1-Gesamtexport. ### C:\temp\Abwesenheitinstunden.xlsx Sheet: ```text Abwesenheit in Stunden ``` Dimension: ```text A1:Z253 ``` Spalten: ```text Personalnummer Foto rund Nachname, Vorname (Link Personal) Stelle Organisation Leitung j/n Eintrittsdatum Personal Status Krank nicht buchbar angetreten (Stunden Ind.) Krankheit angetreten (Stunden Ind.) Krank nicht buchbar angetreten (Stunden) Krankheit angetreten (Stunden) Krank nicht buchbar angetreten (Zeitraum) Krankheit angetreten (Zeitraum) Krank nicht buchbar ausstehend (Stunden Ind.) Krankheit ausstehend (Stunden Ind.) Krank nicht buchbar gebucht gesamt (Stunden) Krankheit genehmigt (Zeitraum) Krank nicht buchbar genehmigt (Zeitraum) Krankheit genehmigt (Stunden) Krank nicht buchbar genehmigt (Stunden) Krankheit genehmigt (Stunden Ind.) Krank nicht buchbar genehmigt (Stunden Ind.) Krankheit gebucht gesamt (Stunden) Krankheit gebucht gesamt (Stunden Ind.) Krank nicht buchbar gebucht gesamt (Stunden Ind.) ``` Wichtig: Rexx liefert Krankheit in Stunden. Laut Projektentscheidung ist Rexx fuer Krankheit/Absenzen fuehrend, weil SAP nur Tage liefert. ### C:\temp\Exportkommengehen.xlsx Sheet: ```text Export KOMMENGEHEN ``` Dimension: ```text A1:O253 ``` Spalten: ```text Sozialversicherungsnummer Nachname, Vorname (Link Personal) Geburtsdatum Personal Status Stelle Organisation Arbeitszeitmodell Arbeitszeit Ø tägliche Sollarbeitszeit (Woche) Arbeitszeit Mo. Arbeitszeit Di. Arbeitszeit Mi. Arbeitszeit Do. Arbeitszeit Fr. Arbeitszeit Sa. ``` Wichtig: Dieser Export enthaelt keine Personalnummer, sondern Sozialversicherungsnummer und Namen. Fuer stabile Power-BI-Joins ist Personalnummer besser. Falls moeglich, Rexx-Export um `Personalnummer` ergaenzen. ### C:\temp\Saldiperstichdatum.xlsx Sheet: ```text Saldi per Stichdatum ``` Dimension: ```text A1:Q253 ``` Spalten: ```text Personalnummer Kürzel Nachname, Vorname (Link Personal) Stelle Organisation Kostenstelle Leitung j/n Eintrittsdatum Personal Status Anstellungsverhältnis Stunden Saldo Urlaubsanspruch Urlaub Rest Ferien ausstehend (Tage) Lohnart Lohn Lohn Währung ``` Dieser Export ist wichtig fuer: - GLZ/Stunden Saldo - Ferienanspruch - Urlaub Rest - Ferien ausstehend - ggf. Lohn aus Rexx, wobei SAP fuer Lohn fuehrend/sensibler sein sollte ## Fachliche Entscheidungen aus den TXT-Dateien - HR soll das Dashboard konsumieren, nicht bauen. - Phase 1 ist Zeit und Absenzen. - Rexx ist fuer Krankheit/Absenzen fuehrend. - SAP liefert ergaenzende Basisdaten, die Rexx nicht sauber oder nicht vollstaendig liefert. - Kununu wird manuell gepflegt. - Refline/Time-to-hire ist spaeteres Thema. - Rexx Scheduled Reports wurden gesucht, aber offenbar nicht gefunden/freigeschaltet. - Manuelles Ablegen der Exports in einem Ordner ist fuer den Start akzeptabel. ## Welche Daten nur aus SAP kommen Diese Felder sind wichtig und kommen eher aus SAP als aus Rexx: - Geschlecht - Beschaeftigungsgrad % - FTE-Grundlage - Mitarbeitergruppe/Mitarbeiterkreis - Planstelle/Stellenschluessel - Soll-Stelle vorhanden - Bruttolohn Monat - SAP-Abwesenheiten fuer Vergleich - BU-/NBU-Tage, falls nicht in Rexx als Stunden vorhanden ## Welche Daten aus Rexx kommen Rexx ist wichtig fuer: - Krankheit in Stunden - Krankheit genehmigt/gebucht/angetreten/ausstehend - GLZ/Stunden Saldo - Ferienanspruch - Urlaub Rest - Ferien ausstehend - Organisation/Kostenstelle aus Rexx fuer operative Sicht - ggf. Pulsumfrage/Zufriedenheit ## Q1/2026-Test mit Live-Daten HR-Anfrage: > Waere es moeglich, dass wir mit den Live Daten das Q1/2026 testen koennten? Dann koennten wir die Quoten mit jenen aus dem SAP vergleichen um zu pruefen, ob wir die identischen Formeln haben. Interpretation: Es soll mit Live-Daten fuer Q1/2026 gerechnet werden: ```text Januar 2026 Februar 2026 Maerz 2026 ``` Dann sollen die berechneten Quoten gegen SAP verglichen werden. ### Noetige Daten fuer Q1/2026 Aus SAP: - Export fuer Perioden 1, 2, 3 im Jahr 2026 - oder ein Export, der Q1 kumuliert enthaelt Aus Rexx: - Abwesenheit/Krankheit mit Zeitraum Q1/2026 - Sollzeit pro Mitarbeitenden fuer Q1/2026 - optional BU/NBU, falls Rexx das liefert - GLZ/Ferien nur falls fuer den Q1-Vergleich benoetigt ### Kritischer Punkt Die aktuell gefundene SAP-Datei `C:\temp\HR_KPI_EXPORT.xlsx` zeigt in den ersten Datenzeilen Periode 4/2026. Das reicht nicht fuer Q1/2026. Naechster sinnvoller Schritt: 1. SAP-Report fuer Q1/2026 laufen lassen, also Perioden 1 bis 3 oder Q1-Gesamt. 2. Rexx-Abwesenheitsexport ebenfalls fuer Q1/2026 ziehen. 3. Power-BI-/Excel-Testdatei erstellen, die beide Quellen ueber Personalnummer verbindet. 4. Quoten berechnen: - Krankheitsquote % - Unfallquote % - Gesundheitsbedingte Absenzen % - Krankheitstage gesamt 5. Ergebnis mit SAP-Quote vergleichen. ## Technische Hinweise aus dieser Session Excel-Dateien wurden nicht ueber Excel-GUI bearbeitet, sondern als XLSX-Zip/XML gelesen. Das vermeidet Dateisperren. Ein Versuch mit Excel-COM hing und wurde abgebrochen. Danach wurde ein unsichtbarer Excel-Prozess geprueft. Beim Beenden war der Prozess bereits nicht mehr vorhanden. Es wurden keine Excel-Dateien gespeichert oder veraendert. In dieser Session wurde bis zur Erstellung dieser Handoff-Datei keine vorhandene Excel-Datei manipuliert. ## Empfohlene Antwort an HR Vorschlag: ```text Ja, das koennen wir machen. Fuer den Q1/2026-Test brauche ich die Live-Exports fuer Januar bis Maerz 2026 bzw. einen Q1-Gesamtexport aus SAP sowie den passenden Rexx-Abwesenheitsexport fuer denselben Zeitraum. Dann berechne ich die Quoten mit unserer Formel und stelle sie den SAP-Werten gegenueber, damit wir Abweichungen in Definition oder Zeitraum sofort sehen. ``` ## Offene Punkte - SAP-Q1/2026-Datei fehlt noch oder wurde noch nicht gefunden. - Rexx-Q1/2026-Abwesenheitsexport muss bereitgestellt werden. - Klaeren, ob `Exportkommengehen.xlsx` kuenftig Personalnummer enthalten kann. Ohne Personalnummer ist der Join unsauber. - Klaeren, ob BU/NBU in Rexx als Stunden verfuegbar ist oder fuer Unfallquote weiter aus SAP-Tagen umgerechnet werden muss. - Definieren, ob Q1-Quote mit Sollstunden aus Kalender/SAP oder Rexx-Sollarbeitszeit gerechnet wird. - Sicherstellen, dass alle Dateien denselben Zeitraum abdecken.