441 lines
10 KiB
Markdown
441 lines
10 KiB
Markdown
# 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.
|
|
|