From 0871068ff803e877b08e3ecc3b55905a9f757806 Mon Sep 17 00:00:00 2001 From: Metacube Date: Tue, 20 Jan 2026 08:08:49 +0100 Subject: [PATCH 1/2] Add HTML Power BI HR manual --- .../Power BI Schulungshandbuch fuer HR.html | 331 ++++++++++++++++ .../Power BI Schulungshandbuch fuer HR.md | 359 ++++++++++++++++++ 2 files changed, 690 insertions(+) create mode 100644 training/Power BI Schulungshandbuch fuer HR.html create mode 100644 training/Power BI Schulungshandbuch fuer HR.md diff --git a/training/Power BI Schulungshandbuch fuer HR.html b/training/Power BI Schulungshandbuch fuer HR.html new file mode 100644 index 0000000..8b686c2 --- /dev/null +++ b/training/Power BI Schulungshandbuch fuer HR.html @@ -0,0 +1,331 @@ + + + + + + Power BI Schulungshandbuch für HR + + + +
+

Power BI Schulungshandbuch für HR

+

Word-Version: Nicht im Repo enthalten (Binary-Dateien werden beim PR-Erstellen nicht unterstützt).

+

Version: HTML-Ausgabe mit erweiterten Erklärungen, Checklisten und Beispielen.

+
+ +
+
+

Überblick

+
+
+

Zielgruppe

+
    +
  • 3–4 HR-Mitarbeiterinnen (Schweiz)
  • +
  • Excel-Basis + SVERWEIS
  • +
  • Technikaffinität 5–6/10
  • +
  • Keine Power BI Vorkenntnisse
  • +
+
+
+

Zielgruppen der Reports

+
    +
  • Geschäftsleitung
  • +
  • Verwaltungsrat
  • +
  • Finanzbuchhaltung
  • +
  • Abteilungsleiter
  • +
+
+
+ +

Datenquellen

+
    +
  • SAP HCM/HRM (Infotypen PA0001, PA0002, PA0008, PA2001)
  • +
  • Rexx HR-System (Stellenplan, Pulsumfrage, MA-Zufriedenheit)
  • +
  • Excel/CSV (Kununu-Score, Refline/Time-to-hire)
  • +
+ +

KPIs

+
    +
  • Headcount/FTE (monatlich)
  • +
  • Fluktuation (monatlich)
  • +
  • Krankenquote gesamt + ohne Langzeitkrankheiten >30 Tage (Quartal)
  • +
  • Überstunden (Quartal)
  • +
  • Produktivstunden (wöchentlich)
  • +
  • Ferientage/GLZ-Saldi (jährlich)
  • +
  • Stellenplan Soll vs Ist (monatlich, Rexx)
  • +
  • Lohnkosten (monatlich)
  • +
  • Time to hire (Quartal)
  • +
  • Kununu Score (monatlich)
  • +
  • Pulsumfrage (Quartal, Rexx)
  • +
  • MA-Zufriedenheitsumfrage (jährlich, Rexx)
  • +
+ +
+ + + + + + + + + SAP HCM/HRM + + + Rexx HR-System + + + Excel/CSV + + + Power BI Desktop + + + Berichte & Dashboards + GL · VR · Finanzen · Abteilungen + + + + + + + + + + + + +
Grafik: Datenfluss von HR-Quellen in Power BI bis zu den Zielgruppen-Reports.
+
+
+ +
+

1. Grundlagen & Datenimport Modul 1

+

1.1 Installation & erster Start

+
    +
  1. Gehe auf https://powerbi.microsoft.com/de-de/desktop/ und lade Power BI Desktop herunter.
  2. +
  3. Installiere die Anwendung mit den Standardoptionen (Weiter → Installieren → Fertigstellen).
  4. +
  5. Starte Power BI Desktop und wähle „Leerer Bericht“.
  6. +
  7. Speichere die Datei als HR-Reporting.pbix in einem Projektordner.
  8. +
+
Tipp: Lege eine Ordnerstruktur an: 01_Rohdaten, 02_Modelle, 03_Exporte.
+ +

1.2 Oberfläche kennenlernen

+
    +
  1. Wechsle links zwischen Berichts-, Daten- und Modellansicht.
  2. +
  3. Suche das Menüband (oben), Visualisierungen (rechts) und den Felderbereich (rechts).
  4. +
  5. Öffne den Filterbereich, um Filter auf Visual-, Seiten- und Berichtsebene zu sehen.
  6. +
+ +

1.3 Excel & CSV importieren

+
    +
  1. Start → Daten abrufen → Excel/CSV.
  2. +
  3. Im Navigator nur relevante Tabellen auswählen.
  4. +
  5. Encoding auf UTF-8 setzen, wenn Umlaute falsch angezeigt werden.
  6. +
+
Warnung: Achte auf das Dezimaltrennzeichen (Punkt/Komma). Setze ggf. das Gebietsschema auf Schweiz.
+
+ +
+

2. Power Query Editor Modul 2

+

2.1 Datentypen & Struktur

+
    +
  1. Transformieren → Erste Zeile als Überschriften.
  2. +
  3. Datentypen auf Datum, Text oder Zahl setzen.
  4. +
  5. Überflüssige Spalten entfernen, relevante Spalten behalten.
  6. +
+ +

2.2 Filter & Bereinigung

+
    +
  1. Filter für aktive Mitarbeitende setzen.
  2. +
  3. Nullwerte ersetzen (z. B. 0 für fehlende Überstunden).
  4. +
  5. Codes in Klartext umwandeln (z. B. A → Aktiv).
  6. +
+
+ +
+

3. Datenmodell Modul 3

+

3.1 Beziehungen erstellen

+
    +
  1. PERNR als Schlüssel zwischen SAP-Tabellen nutzen.
  2. +
  3. Datumsbeziehungen über eine zentrale Datumstabelle herstellen.
  4. +
  5. Kreuzfilterrichtung auf „Einweg“ setzen.
  6. +
+ +

3.2 Datumstabelle (DAX)

+
Datum = ADDCOLUMNS(
+    CALENDAR(DATE(2020,1,1), TODAY()),
+    "Jahr", YEAR([Date]),
+    "Monat", MONTH([Date]),
+    "MonatName", FORMAT([Date],"MMMM"),
+    "Quartal", "Q" & QUARTER([Date]),
+    "KW", WEEKNUM([Date])
+)
+
+ +
+

4. DAX Measures Modul 4

+

4.1 Basis-Measures

+
Headcount = COUNTROWS(Mitarbeiter)
+FTE = SUMX(Mitarbeiter, Mitarbeiter[Beschäftigungsgrad]/100)
+Krankenquote = DIVIDE([Krankheitstage], [Sollarbeitstage], 0)
+ +

4.2 Zeitintelligenz

+
Headcount_VJ = CALCULATE([Headcount], SAMEPERIODLASTYEAR(Datum[Date]))
+Headcount_YTD = TOTALYTD([Headcount], Datum[Date])
+
+ +
+

5. Visualisierung & Dashboard Module 5–6

+

5.1 Visuals gezielt einsetzen

+
    +
  • Karten für KPI-Summen (Headcount, Fluktuation)
  • +
  • Liniendiagramm für Trendverläufe
  • +
  • Matrix für Detailansichten mit Drill-down
  • +
+ +

5.2 Dashboard-Layout

+
    +
  1. Wichtigste KPIs oben links platzieren (F-Muster).
  2. +
  3. Maximal 6–8 Visuals pro Seite.
  4. +
  5. Farben konsistent mit der Firmen-CI.
  6. +
+
+ +
+

6. Veröffentlichen & Teilen Modul 7

+
    +
  1. Datei → Veröffentlichen → Arbeitsbereich wählen.
  2. +
  3. Dashboard-Visuals anheften.
  4. +
  5. Geplante Aktualisierung einrichten (mit Gateway für lokale Daten).
  6. +
  7. Row-Level Security für Abteilungsleiter einrichten.
  8. +
+
Tipp: Teste RLS immer im Service über „Als Rolle anzeigen“.
+
+ +
+

7. Troubleshooting & Checklisten Modul 8–9

+

7.1 Häufige Fehler

+
    +
  • Encoding-Probleme → UTF-8 auswählen
  • +
  • Datum als Text → Datentyp mit Gebietsschema Schweiz
  • +
  • Division durch Null → DIVIDE() verwenden
  • +
+ +

7.2 Checkliste neuer Report

+
    +
  1. Datenquellen klären und Exporte konsolidieren.
  2. +
  3. Power Query Bereinigung durchführen.
  4. +
  5. Datenmodell und Datumstabelle sauber anlegen.
  6. +
  7. Measures erstellen und formatieren.
  8. +
  9. Dashboard bauen, testen, veröffentlichen.
  10. +
+
+
+ + diff --git a/training/Power BI Schulungshandbuch fuer HR.md b/training/Power BI Schulungshandbuch fuer HR.md new file mode 100644 index 0000000..997b169 --- /dev/null +++ b/training/Power BI Schulungshandbuch fuer HR.md @@ -0,0 +1,359 @@ +# Power BI Schulungshandbuch für HR +Word-Version: Nicht im Repo enthalten (Binary-Dateien werden beim PR-Erstellen nicht unterstützt). + +## Überblick +**Zielgruppe:** 3–4 HR-Mitarbeiterinnen (Schweiz), Excel-Basis + SVERWEIS, Technikaffinität 5–6/10, keine Power BI Vorkenntnisse. + +**Datenquellen:** +- SAP HCM/HRM (alle Infotypen, besonders PA0001, PA0002, PA0008, PA2001) +- Rexx HR-System (Stellenplan, Pulsumfrage, MA-Zufriedenheit) +- Excel/CSV (Kununu-Score, Refline/Time-to-hire) + +**KPIs (mit Periodizität):** +- Headcount/FTE (monatlich) +- Fluktuation (monatlich) +- Krankenquote gesamt + ohne Langzeitkrankheiten >30 Tage (Quartal) +- Überstunden (Quartal) +- Produktivstunden (wöchentlich) +- Ferientage/GLZ-Saldi (jährlich) +- Stellenplan Soll vs Ist (monatlich, aus Rexx) +- Lohnkosten (monatlich) +- Time to hire (Quartal) +- Kununu Score (monatlich) +- Pulsumfrage (Quartal, aus Rexx) +- MA-Zufriedenheitsumfrage (jährlich, aus Rexx) + +**Zielgruppen der Reports:** Geschäftsleitung, Verwaltungsrat, Finanzbuchhaltung, Abteilungsleiter. + +--- + +## 1. MODUL 1: GRUNDLAGEN & DATENIMPORT + +### 1.1 Power BI Desktop installieren und starten +1. Schritt: Gehe auf https://powerbi.microsoft.com/de-de/desktop/ und lade Power BI Desktop herunter. +2. Schritt: Installiere die Anwendung mit den Standardoptionen (Weiter → Installieren → Fertigstellen). +3. Schritt: Starte Power BI Desktop über das Startmenü. +4. Schritt: Wähle "Leerer Bericht" und speichere die Datei als `HR-Reporting.pbix`. + +[Screenshot: Startfenster von Power BI Desktop mit leeren Berichtsvorlagen]. + +**Tipp:** Wenn der Download blockiert ist, wende Dich an die IT (Admin-Rechte erforderlich). + +### 1.2 Oberfläche kennenlernen +1. Schritt: Wechsle links zwischen **Berichtsansicht**, **Datenansicht** und **Modellansicht**. +2. Schritt: Erkenne die Bereiche: **Menüband**, **Visualisierungen**, **Felder**, **Seiten-Navigation**. +3. Schritt: Öffne rechts den Bereich **Filter**, um Visual-, Seiten- und Berichtsebene zu sehen. + +[Screenshot: Power BI Desktop mit markierter Berichtsansicht, Visualisierungen und Felder-Bereich]. + +### 1.3 Excel-Datei importieren +1. Schritt: **Start → Daten abrufen → Excel**. +2. Schritt: Datei auswählen → **Öffnen**. +3. Schritt: Im **Navigator** Tabelle oder Blatt auswählen → **Laden**. +4. Schritt: Prüfe in der Datenansicht, ob die Spalten korrekt geladen wurden. + +**Häufige Probleme und Lösungen:** +1. Problem: Falsche Spaltennamen → Lösung: Erste Zeile als Header setzen (Modul 2). +2. Problem: Zahlen als Text → Lösung: Datentyp korrigieren (Modul 2). +3. Problem: Leere Zeilen → Lösung: Leere Zeilen entfernen (Modul 2). + +### 1.4 CSV importieren +1. Schritt: **Start → Daten abrufen → Text/CSV**. +2. Schritt: Datei auswählen → **Öffnen**. +3. Schritt: Im Vorschaufenster **Trennzeichen** (z. B. Semikolon) prüfen. +4. Schritt: **Dateiursprung** (Encoding) auf **UTF-8** stellen, wenn Umlaute falsch dargestellt werden. + +**Warnung:** In der Schweiz sind Umlaute oft nur mit UTF-8 korrekt. + +### 1.5 SAP-Export importieren +1. Schritt: SAP-Export (z. B. TXT/CSV/XLSX) in einen lokalen Ordner speichern. +2. Schritt: **Start → Daten abrufen → Text/CSV** oder **Excel** wählen. +3. Schritt: Prüfe, ob die erste Zeile die Spaltenüberschriften enthält. +4. Schritt: Importiere pro Infotyp getrennte Tabellen (PA0001, PA0002, PA0008, PA2001). + +**Tipp:** Benenne Tabellen sofort verständlich um (z. B. `Mitarbeiter_Grunddaten`, `Mitarbeiter_Lohn`). + +--- + +## 2. MODUL 2: POWER QUERY EDITOR + +### 2.1 Power Query öffnen +1. Schritt: **Start → Daten transformieren**. + +[Screenshot: Button 'Daten transformieren' im Menüband]. + +### 2.2 Erste Zeile als Header verwenden +1. Schritt: **Transformieren → Erste Zeile als Überschriften**. +2. Schritt: Prüfe, ob die Spaltennamen korrekt sind. + +### 2.3 Datentypen ändern +1. Schritt: Spalte auswählen (z. B. Eintrittsdatum). +2. Schritt: **Transformieren → Datentyp → Datum**. +3. Schritt: Bei Zahlen **Dezimalzahl** oder **Ganze Zahl** wählen. +4. Schritt: Bei Schweizer Datumsformat **mit Gebietsschema (Deutsch – Schweiz)** konvertieren. + +**Warnung:** Datumsfelder werden oft als Text erkannt. + +### 2.4 Spalten entfernen/behalten +1. Schritt: Unnötige Spalten markieren. +2. Schritt: **Start → Spalten entfernen**. +3. Schritt: Für schlanke Tabellen: **Andere Spalten entfernen**. + +### 2.5 Zeilen filtern +1. Schritt: Filterpfeil in der Spalte **Status**. +2. Schritt: Nur aktive Mitarbeitende auswählen. +3. Schritt: Zeitraumfilter setzen (z. B. letztes Jahr). + +### 2.6 Werte ersetzen +1. Schritt: **Transformieren → Werte ersetzen**. +2. Schritt: `null` durch `0` ersetzen. +3. Schritt: Codes (z. B. `A`) durch Klartext (z. B. `Aktiv`) ersetzen. + +### 2.7 Spalten teilen/zusammenführen +1. Schritt: Spalte auswählen. +2. Schritt: **Transformieren → Spalte teilen** (nach Trennzeichen). +3. Schritt: Für Zusammenführen: **Transformieren → Spalten zusammenführen**. + +### 2.8 Berechnete Spalte hinzufügen +1. Schritt: **Spalte hinzufügen → Benutzerdefinierte Spalte**. +2. Schritt: Formel eingeben (z. B. `Beschäftigungsgrad/100`). + +### 2.9 Schliessen und Laden +1. Schritt: **Start → Schliessen & laden**. +2. Schritt: Unterschied: **Laden** speichert in Modell, **Laden in** erlaubt gezielte Ziele (z. B. nur Verbindung). + +--- + +## 3. MODUL 3: DATENMODELL + +### 3.1 Zur Modellansicht wechseln +1. Schritt: Links auf die Modellansicht (Beziehungs-Icon) klicken. + +### 3.2 Beziehungen verstehen +1. Schritt: **1:n** = Eine Zeile in Tabelle A passt zu vielen Zeilen in Tabelle B. +2. Schritt: **1:1** = Jede Zeile passt genau zu einer anderen Zeile. + +**Warum wichtig:** Beziehungen steuern, wie Filter zwischen Tabellen fliessen. + +### 3.3 Beziehung erstellen +1. Schritt: Spalte in Tabelle A auf passende Spalte in Tabelle B ziehen (Drag & Drop). +2. Schritt: Beziehung prüfen → Kardinalität und Kreuzfilterrichtung einstellen. +3. Schritt: Beziehungsnamen überprüfen und bei Bedarf bearbeiten. + +**Tipp:** Nutze meistens Einweg-Filterrichtung, um Mehrdeutigkeiten zu vermeiden. + +### 3.4 Datumstabelle erstellen +1. Schritt: **Modellierung → Neue Tabelle**. +2. Schritt: DAX-Formel einfügen: + +``` +Datum = ADDCOLUMNS( + CALENDAR(DATE(2020,1,1), TODAY()), + "Jahr", YEAR([Date]), + "Monat", MONTH([Date]), + "MonatName", FORMAT([Date],"MMMM"), + "Quartal", "Q" & QUARTER([Date]), + "KW", WEEKNUM([Date]) +) +``` + +3. Schritt: **Tabellen-Tools → Als Datumstabelle markieren → Datum[Date] auswählen**. + +### 3.5 PERNR als Schlüssel +1. Schritt: Verwende die **Personalnummer (PERNR)** als Schlüssel zwischen SAP-Tabellen (PA0001, PA0002, PA0008, PA2001). +2. Schritt: In Rexx/Excel dieselbe Schlüsselspalte sicherstellen. + +--- + +## 4. MODUL 4: DAX MEASURES + +### 4.1 Measure vs. berechnete Spalte +1. Schritt: **Measure** berechnet sich dynamisch im Berichtskontext. +2. Schritt: **Berechnete Spalte** wird pro Zeile gespeichert und vergrössert das Modell. + +### 4.2 Neues Measure erstellen +1. Schritt: **Modellierung → Neues Measure**. +2. Schritt: Formel eingeben und mit Enter bestätigen. +3. Schritt: Measure klar benennen (z. B. `Headcount`, `Fluktuation`). + +### 4.3 Basis-Measures für HR +``` +Headcount = COUNTROWS(Mitarbeiter) +FTE = SUMX(Mitarbeiter, Mitarbeiter[Beschäftigungsgrad]/100) +Krankheitstage = SUM(Abwesenheiten[Kalendertage]) +Sollarbeitstage = [Headcount] * 21 +Krankenquote = DIVIDE([Krankheitstage], [Sollarbeitstage], 0) +Krankenquote_ohne_LZ = +VAR KrankheitstageKurz = CALCULATE([Krankheitstage], FILTER(Abwesenheiten, Abwesenheiten[Kalendertage] <= 30)) +RETURN DIVIDE(KrankheitstageKurz, [Sollarbeitstage], 0) +Austritte = CALCULATE(COUNTROWS(Mitarbeiter), Mitarbeiter[Austritt] <> BLANK()) +Avg_Headcount = AVERAGEX(VALUES(Datum[Monat]), [Headcount]) +Fluktuation = DIVIDE([Austritte], [Avg_Headcount], 0) * 100 +``` + +### 4.4 Zeitintelligenz-Measures +``` +Headcount_VJ = CALCULATE([Headcount], SAMEPERIODLASTYEAR(Datum[Date])) +Headcount_VM = CALCULATE([Headcount], PREVIOUSMONTH(Datum[Date])) +Headcount_YTD = TOTALYTD([Headcount], Datum[Date]) +Delta_VJ = [Headcount] - [Headcount_VJ] +Delta_VJ_Proz = DIVIDE([Delta_VJ], [Headcount_VJ], 0) +``` + +### 4.5 Measures formatieren +1. Schritt: Measure auswählen. +2. Schritt: **Measure-Tools → Format** → Prozent, Dezimalstellen, Währung einstellen. + +--- + +## 5. MODUL 5: VISUALISIERUNGEN + +### 5.1 Visualisierungstypen und wann verwenden +1. **Karte/Card:** Einzelne KPI-Zahl (Headcount, Krankenquote). +2. **Balkendiagramm:** Vergleiche (Abteilungen, Monate). +3. **Liniendiagramm:** Zeitverläufe (Headcount über 12 Monate). +4. **Ringdiagramm:** Anteile (Absenzen nach Typ). +5. **Tachometer:** Ziel vs Ist (Stellenplan-Erfüllung). +6. **Tabelle/Matrix:** Details mit Drill-down. + +### 5.2 Erste Visualisierung erstellen +1. Schritt: Visualisierung im Bereich **Visualisierungen** auswählen. +2. Schritt: Felder per Drag & Drop in Achse/Werte ziehen. +3. Schritt: Visualisierung auf der Seite positionieren und Grösse anpassen. + +### 5.3 Visualisierung formatieren +1. Schritt: Visual auswählen → **Format** (Pinsel). +2. Schritt: Titel, Farben, Schriftgrössen anpassen. +3. Schritt: Einheit und Anzeigeform festlegen (z. B. Tausender, Dezimalstellen). + +### 5.4 Filter hinzufügen +1. Schritt: Filterbereich öffnen. +2. Schritt: Felder in **Visualfilter**, **Seitenfilter** oder **Berichtsfilter** ziehen. + +### 5.5 Slicer erstellen +1. Schritt: Visualisierung → **Datenschnitt (Slicer)** wählen. +2. Schritt: Feld (z. B. Zeitraum, Abteilung) hinzufügen. + +### 5.6 Bedingte Formatierung +1. Schritt: In Tabelle/Matrix auf Wertefeld klicken → **Bedingte Formatierung**. +2. Schritt: Regeln definieren (z. B. Rot/Grün je nach Wert). + +--- + +## 6. MODUL 6: DASHBOARD BAUEN + +### 6.1 Dashboard-Layout planen +1. Schritt: **F-Muster** beachten – Wichtigstes oben links. +2. Schritt: Maximal **6–8 Visualisierungen** pro Seite. +3. Schritt: KPI-Karten immer in gleicher Reihenfolge anordnen. + +### 6.2 Seite 1: Management-Übersicht +1. Schritt: KPI-Karten oben: Headcount, Krankenquote, Fluktuation, Stellenplan. +2. Schritt: Trendlinie Headcount über 12 Monate. +3. Schritt: Absenzquote nach Typ als Ringdiagramm. + +### 6.3 Seite 2: Detailanalyse +1. Schritt: Matrix mit Drill-down nach Abteilung. +2. Schritt: Filter für Zeitraum und Kostenstelle (Slicer). + +### 6.4 Interaktionen +1. Schritt: **Format → Interaktionen bearbeiten**. +2. Schritt: Prüfen, ob Klick auf Balken andere Visuals filtert oder hervorhebt. + +### 6.5 Design-Tipps +1. Schritt: Konsistente Farben (Firmen-CI). +2. Schritt: Genügend Weissraum. +3. Schritt: Beschriftungen gut lesbar. + +--- + +## 7. MODUL 7: VERÖFFENTLICHEN & TEILEN + +### 7.1 Power BI Service (app.powerbi.com) +1. Schritt: Konto erstellen/anmelden. +2. Schritt: Unterschied Desktop vs Service: Desktop = Modell/Bericht, Service = Teilen/Dashboard. + +### 7.2 Bericht veröffentlichen +1. Schritt: **Datei → Veröffentlichen → Arbeitsbereich wählen**. + +### 7.3 Arbeitsbereich einrichten +1. Schritt: Im Service → Arbeitsbereich erstellen. +2. Schritt: Zugriffsrechte für Geschäftsleitung/Finanzbuchhaltung setzen. + +### 7.4 Dashboard erstellen (aus Bericht) +1. Schritt: Im Service Visualisierung auswählen → **Anheften**. +2. Schritt: Neues Dashboard erstellen oder bestehendes wählen. + +### 7.5 Bericht teilen +1. Schritt: **Teilen → Link generieren**. +2. Schritt: Zugriff verwalten (Rollen/Personen). + +### 7.6 Automatische Aktualisierung +1. Schritt: Datensatz → **Geplante Aktualisierung** (täglich/wöchentlich). +2. Schritt: Für lokale Daten **Gateway** einrichten (IT einbeziehen). + +### 7.7 Row-Level Security (RLS) +1. Schritt: **Modellierung → Rollen verwalten**. +2. Schritt: Rolle erstellen, Filter setzen: `[Abteilung] = USERPRINCIPALNAME()`. + +--- + +## 8. TROUBLESHOOTING + +### 8.1 Häufige Fehler beim Import +1. Encoding-Probleme (UTF-8) → Dateiursprung im Import anpassen. +2. Dezimaltrennzeichen (Punkt vs Komma) → Datentyp mit Gebietsschema Schweiz. +3. Datum als Text → Datentyp Datum und richtiges Gebietsschema. + +### 8.2 Häufige DAX-Fehler +1. Zirkelbezug → Berechnete Spalten vermeiden, Measures nutzen. +2. Division durch Null → `DIVIDE()` verwenden. +3. Falscher Filterkontext → Filter mit `CALCULATE()` prüfen. + +### 8.3 Beziehungsprobleme +1. Mehrdeutige Beziehungen → Eine Beziehung aktiv, andere inaktiv setzen. +2. Fehlende Beziehung → Schlüsselspalten prüfen (PERNR, Datum). + +### 8.4 Performance-Probleme +1. Zu viele Spalten importiert → Spalten reduzieren. +2. Zu viele berechnete Spalten → Measures bevorzugen. + +--- + +## 9. ANHANG + +### 9.1 DAX Cheat Sheet (alle HR-Formeln) +``` +Headcount = COUNTROWS(Mitarbeiter) +FTE = SUMX(Mitarbeiter, Mitarbeiter[Beschäftigungsgrad]/100) +Krankheitstage = SUM(Abwesenheiten[Kalendertage]) +Sollarbeitstage = [Headcount] * 21 +Krankenquote = DIVIDE([Krankheitstage], [Sollarbeitstage], 0) +Krankenquote_ohne_LZ = VAR KrankheitstageKurz = CALCULATE([Krankheitstage], FILTER(Abwesenheiten, Abwesenheiten[Kalendertage] <= 30)) +RETURN DIVIDE(KrankheitstageKurz, [Sollarbeitstage], 0) +Austritte = CALCULATE(COUNTROWS(Mitarbeiter), Mitarbeiter[Austritt] <> BLANK()) +Avg_Headcount = AVERAGEX(VALUES(Datum[Monat]), [Headcount]) +Fluktuation = DIVIDE([Austritte], [Avg_Headcount], 0) * 100 +Headcount_VJ = CALCULATE([Headcount], SAMEPERIODLASTYEAR(Datum[Date])) +Headcount_VM = CALCULATE([Headcount], PREVIOUSMONTH(Datum[Date])) +Headcount_YTD = TOTALYTD([Headcount], Datum[Date]) +Delta_VJ = [Headcount] - [Headcount_VJ] +Delta_VJ_Proz = DIVIDE([Delta_VJ], [Headcount_VJ], 0) +``` + +### 9.2 Checkliste: Neuen Report erstellen +1. Datenquellen klären (SAP, Rexx, Excel/CSV). +2. Daten importieren (Modul 1). +3. Daten bereinigen in Power Query (Modul 2). +4. Beziehungen und Datumstabelle erstellen (Modul 3). +5. Measures erstellen (Modul 4). +6. Visuals bauen und formatieren (Modul 5). +7. Dashboard layouten (Modul 6). +8. Veröffentlichen und teilen (Modul 7). + +### 9.3 Glossar +- **Power Query:** Datenaufbereitungstool in Power BI. +- **DAX:** Formelsprache für Berechnungen in Power BI. +- **Measure:** Dynamische Kennzahl, abhängig vom Filterkontext. +- **Berechnete Spalte:** Feste Berechnung pro Zeile. +- **RLS:** Row-Level Security für zeilenbasierte Zugriffssteuerung. From 12d64bf0092aed0edba2dd65693d5806db94487d Mon Sep 17 00:00:00 2001 From: Metacube Date: Tue, 20 Jan 2026 09:02:03 +0100 Subject: [PATCH 2/2] Expand HTML Power BI HR manual --- .../Power BI Schulungshandbuch fuer HR.html | 419 ++++++++++++++---- .../Power BI Schulungshandbuch fuer HR.md | 359 --------------- 2 files changed, 322 insertions(+), 456 deletions(-) delete mode 100644 training/Power BI Schulungshandbuch fuer HR.md diff --git a/training/Power BI Schulungshandbuch fuer HR.html b/training/Power BI Schulungshandbuch fuer HR.html index 8b686c2..8e588ce 100644 --- a/training/Power BI Schulungshandbuch fuer HR.html +++ b/training/Power BI Schulungshandbuch fuer HR.html @@ -8,11 +8,14 @@ :root { color-scheme: light; --accent: #1f6feb; + --accent-soft: #e0f2fe; --text: #0f172a; --muted: #475569; --bg: #f8fafc; --card: #ffffff; --border: #e2e8f0; + --warning: #f97316; + --success: #16a34a; --code: #0b1020; } body { @@ -20,7 +23,7 @@ font-family: "Segoe UI", system-ui, -apple-system, sans-serif; color: var(--text); background: var(--bg); - line-height: 1.6; + line-height: 1.7; } header { background: linear-gradient(120deg, #e0f2fe 0%, #eef2ff 100%); @@ -32,21 +35,21 @@ font-size: 2.2rem; } header p { - margin: 4px 0; + margin: 6px 0; color: var(--muted); } main { - max-width: 980px; + max-width: 1050px; margin: 0 auto; padding: 24px; } section { background: var(--card); border: 1px solid var(--border); - border-radius: 12px; - padding: 24px; - margin-bottom: 20px; - box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04); + border-radius: 14px; + padding: 26px; + margin-bottom: 22px; + box-shadow: 0 4px 18px rgba(15, 23, 42, 0.05); } h2 { margin-top: 0; @@ -58,12 +61,16 @@ margin-bottom: 6px; color: #1e293b; } + h4 { + margin: 14px 0 6px; + color: #1f2937; + } .badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 0.85rem; - background: #e0f2fe; + background: var(--accent-soft); color: #0369a1; margin-left: 8px; } @@ -79,11 +86,15 @@ color: #1e293b; } .warning { - border-left-color: #f97316; + border-left-color: var(--warning); background: #fff7ed; } + .success { + border-left-color: var(--success); + background: #ecfdf3; + } pre { - background: #0b1020; + background: var(--code); color: #e2e8f0; padding: 16px; border-radius: 10px; @@ -106,16 +117,34 @@ grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; } + .grid-three { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); + gap: 16px; + } .kpi-list li { margin-bottom: 4px; } + .checklist li { + margin-bottom: 6px; + } + .small { + font-size: 0.92rem; + color: var(--muted); + } + .flow-box { + border: 1px solid var(--border); + border-radius: 10px; + padding: 12px; + background: #f1f5f9; + }

Power BI Schulungshandbuch für HR

-

Word-Version: Nicht im Repo enthalten (Binary-Dateien werden beim PR-Erstellen nicht unterstützt).

-

Version: HTML-Ausgabe mit erweiterten Erklärungen, Checklisten und Beispielen.

+

Für 3–4 HR-Mitarbeiterinnen (Schweiz) mit wenig IT-Kenntnissen und Excel-Basis.

+

Hinweis: Eine Word-Version ist nicht im Repo enthalten (Binary-Dateien werden beim PR-Erstellen nicht unterstützt).

@@ -126,8 +155,8 @@

Zielgruppe

  • 3–4 HR-Mitarbeiterinnen (Schweiz)
  • -
  • Excel-Basis + SVERWEIS
  • -
  • Technikaffinität 5–6/10
  • +
  • Excel: Basis + SVERWEIS
  • +
  • Technikaffinität: 5–6/10
  • Keine Power BI Vorkenntnisse
@@ -149,7 +178,7 @@
  • Excel/CSV (Kununu-Score, Refline/Time-to-hire)
  • -

    KPIs

    +

    KPIs (mit Periodizität)

    • Headcount/FTE (monatlich)
    • Fluktuation (monatlich)
    • @@ -166,98 +195,189 @@
    - + - - - SAP HCM/HRM - - - Rexx HR-System - - - Excel/CSV - - - Power BI Desktop - - - Berichte & Dashboards - GL · VR · Finanzen · Abteilungen - - - - - - - + + SAP HCM/HRM + + + Rexx HR-System + + + Excel/CSV + + + Power BI Desktop + + + Berichte & Dashboards + GL · VR · Finanzen · Abteilungen + + + + +
    Grafik: Datenfluss von HR-Quellen in Power BI bis zu den Zielgruppen-Reports.
    +
    +

    Vorbereitung: Arbeitsordner & Dateien Start

    +
      +
    1. Lege einen Ordner HR-Power-BI an.
    2. +
    3. Erstelle Unterordner: 01_Rohdaten, 02_Transformiert, 03_Berichte.
    4. +
    5. Speichere Exporte aus SAP/Rexx/Excel immer in 01_Rohdaten.
    6. +
    7. Benutze klare Dateinamen mit Datum, z. B. SAP_PA0001_2025-01.csv.
    8. +
    +
    Ziel: Alle Teammitglieder finden Dateien sofort wieder und arbeiten mit den gleichen Daten.
    +
    +

    1. Grundlagen & Datenimport Modul 1

    1.1 Installation & erster Start

      -
    1. Gehe auf https://powerbi.microsoft.com/de-de/desktop/ und lade Power BI Desktop herunter.
    2. -
    3. Installiere die Anwendung mit den Standardoptionen (Weiter → Installieren → Fertigstellen).
    4. -
    5. Starte Power BI Desktop und wähle „Leerer Bericht“.
    6. -
    7. Speichere die Datei als HR-Reporting.pbix in einem Projektordner.
    8. +
    9. Gehe auf https://powerbi.microsoft.com/de-de/desktop/ und lade Power BI Desktop herunter.
    10. +
    11. Installiere mit Standardoptionen (Weiter → Installieren → Fertigstellen).
    12. +
    13. Starte Power BI Desktop und wähle Leerer Bericht.
    14. +
    15. Speichere die Datei als HR-Reporting.pbix in 03_Berichte.
    -
    Tipp: Lege eine Ordnerstruktur an: 01_Rohdaten, 02_Modelle, 03_Exporte.
    +
    Tipp: Speichere früh und oft – Power BI Desktop hat keine Auto-Speicherung.

    1.2 Oberfläche kennenlernen

      -
    1. Wechsle links zwischen Berichts-, Daten- und Modellansicht.
    2. -
    3. Suche das Menüband (oben), Visualisierungen (rechts) und den Felderbereich (rechts).
    4. -
    5. Öffne den Filterbereich, um Filter auf Visual-, Seiten- und Berichtsebene zu sehen.
    6. +
    7. Links: Berichtsansicht (Diagramme), Datenansicht (Tabellen), Modellansicht (Beziehungen).
    8. +
    9. Rechts: Visualisierungen (Diagramm-Typ), Felder (Spalten), Filter.
    10. +
    11. Oben: Menüband mit allen Funktionen.
    +
    Merksatz: Felder sind die Daten, Visualisierungen sind die Diagramme.
    -

    1.3 Excel & CSV importieren

    +

    1.3 Excel importieren (Kununu, Refline)

      -
    1. Start → Daten abrufen → Excel/CSV.
    2. -
    3. Im Navigator nur relevante Tabellen auswählen.
    4. -
    5. Encoding auf UTF-8 setzen, wenn Umlaute falsch angezeigt werden.
    6. +
    7. Start → Daten abrufen → Excel.
    8. +
    9. Datei auswählen → Öffnen.
    10. +
    11. Im Navigator das richtige Blatt wählen (z. B. Kununu_Score).
    12. +
    13. Klicke Laden.
    -
    Warnung: Achte auf das Dezimaltrennzeichen (Punkt/Komma). Setze ggf. das Gebietsschema auf Schweiz.
    +
    Warnung: Excel-Tabellen ohne Überschrift führen zu „Spalte1/Spalte2“. Nutze in Power Query „Erste Zeile als Überschrift“.
    + +

    1.4 CSV importieren (Time-to-hire)

    +
      +
    1. Start → Daten abrufen → Text/CSV.
    2. +
    3. Datei auswählen → Öffnen.
    4. +
    5. Prüfe Trennzeichen (meist Semikolon).
    6. +
    7. Setze Dateiursprung auf UTF-8.
    8. +
    +
    Tipp: Umlaute (ä, ö, ü) sind das beste Zeichen, ob die Kodierung stimmt.
    + +

    1.5 SAP-Exporte importieren

    +
      +
    1. SAP-Export lokal speichern (z. B. PA0001, PA0002, PA0008, PA2001).
    2. +
    3. Jeden Infotyp als eigene Tabelle laden.
    4. +
    5. Tabellen sofort umbenennen: Mitarbeiter_Org, Mitarbeiter_Personal, Mitarbeiter_Lohn, Absenzen.
    6. +
    +
    Warnung: SAP-Daten enthalten oft führende Nullen bei Personalnummern (PERNR). Nicht löschen!

    2. Power Query Editor Modul 2

    -

    2.1 Datentypen & Struktur

    +

    2.1 Power Query öffnen

      -
    1. Transformieren → Erste Zeile als Überschriften.
    2. -
    3. Datentypen auf Datum, Text oder Zahl setzen.
    4. -
    5. Überflüssige Spalten entfernen, relevante Spalten behalten.
    6. +
    7. Start → Daten transformieren.
    8. +
    9. Du siehst eine Vorschau-Tabelle pro Datenquelle.
    -

    2.2 Filter & Bereinigung

    +

    2.2 Erste Zeile als Überschrift

      -
    1. Filter für aktive Mitarbeitende setzen.
    2. -
    3. Nullwerte ersetzen (z. B. 0 für fehlende Überstunden).
    4. -
    5. Codes in Klartext umwandeln (z. B. A → Aktiv).
    6. +
    7. Transformieren → Erste Zeile als Überschriften.
    8. +
    9. Kontrolliere, ob Spaltennamen sinnvoll sind.
    10. +
    + +

    2.3 Datentypen richtig setzen

    +
      +
    1. Datumsspalten: Datum auswählen.
    2. +
    3. Zahlen: Ganze Zahl oder Dezimalzahl.
    4. +
    5. Text: Text.
    6. +
    +
    Warnung: Schweizer Datumsformat (TT.MM.JJJJ) braucht oft „Datentyp mit Gebietsschema (Deutsch – Schweiz)“.
    + +

    2.4 Spalten entfernen / behalten

    +
      +
    1. Unnötige Spalten markieren → Spalten entfernen.
    2. +
    3. Wenn nur 6–8 Spalten relevant sind: Andere Spalten entfernen.
    4. +
    + +

    2.5 Zeilen filtern

    +
      +
    1. Filterpfeil in der Spalte Status.
    2. +
    3. Nur aktive Mitarbeitende wählen.
    4. +
    5. Zeitraum (z. B. letztes Jahr) filtern.
    6. +
    + +

    2.6 Werte ersetzen

    +
      +
    1. Transformieren → Werte ersetzen.
    2. +
    3. null durch 0 ersetzen.
    4. +
    5. Codes wie A in Klartext (Aktiv) umwandeln.
    6. +
    + +

    2.7 Spalten teilen / zusammenführen

    +
      +
    1. Spalte auswählen → Spalte teilen (z. B. Vorname/Nachname).
    2. +
    3. Mehrere Spalten zusammenführen (z. B. Vorname + Nachname).
    4. +
    + +

    2.8 Berechnete Spalte

    +
      +
    1. Spalte hinzufügen → Benutzerdefinierte Spalte.
    2. +
    3. Beispiel: FTE = Beschäftigungsgrad / 100.
    4. +
    + +

    2.9 Schliessen & Laden

    +
      +
    1. Start → Schliessen & Laden.
    2. +
    3. „Laden in“ nutzen, wenn du nur eine Verbindung brauchst.

    3. Datenmodell Modul 3

    -

    3.1 Beziehungen erstellen

    +

    3.1 Beziehungen verstehen

    +
    +
    + 1:n Beziehung +

    Eine Personalnummer in der Mitarbeitertabelle kann viele Abwesenheitszeilen haben.

    +
    +
    + 1:1 Beziehung +

    Eine Personalnummer hat genau eine Detailzeile (z. B. Stammdaten).

    +
    +
    + Filterfluss +

    Filter sollen meistens nur in eine Richtung laufen (Einweg).

    +
    +
    + +

    3.2 Beziehung erstellen

      -
    1. PERNR als Schlüssel zwischen SAP-Tabellen nutzen.
    2. -
    3. Datumsbeziehungen über eine zentrale Datumstabelle herstellen.
    4. -
    5. Kreuzfilterrichtung auf „Einweg“ setzen.
    6. +
    7. Modellansicht öffnen (Beziehungs-Icon links).
    8. +
    9. Spalte PERNR von Tabelle A auf Tabelle B ziehen.
    10. +
    11. Kardinalität prüfen (1:n) und Kreuzfilterrichtung auf Einweg setzen.
    -

    3.2 Datumstabelle (DAX)

    +

    3.3 Datumstabelle erstellen

    +
      +
    1. Modellierung → Neue Tabelle.
    2. +
    3. DAX-Formel eingeben:
    4. +
    Datum = ADDCOLUMNS(
         CALENDAR(DATE(2020,1,1), TODAY()),
         "Jahr", YEAR([Date]),
    @@ -266,65 +386,170 @@
         "Quartal", "Q" & QUARTER([Date]),
         "KW", WEEKNUM([Date])
     )
    +
      +
    1. Tabellen-Tools → Als Datumstabelle markieren → Datum[Date].
    2. +
    + +

    3.4 PERNR als Schlüssel

    +
      +
    1. PERNR in allen SAP-Tabellen verwenden.
    2. +
    3. In Rexx/Excel dieselbe Spalte sicherstellen.
    4. +
    5. Bei führenden Nullen: Datentyp Text setzen (nicht Zahl).
    6. +

    4. DAX Measures Modul 4

    -

    4.1 Basis-Measures

    +

    4.1 Measure vs. berechnete Spalte

    +
      +
    • Measure: wird im Bericht berechnet, schneller und flexibler.
    • +
    • Berechnete Spalte: wird in jeder Zeile gespeichert (macht Modell grösser).
    • +
    + +

    4.2 Neues Measure erstellen

    +
      +
    1. Modellierung → Neues Measure.
    2. +
    3. Formel eingeben und Enter drücken.
    4. +
    5. Measure klar benennen (z. B. Headcount, Fluktuation).
    6. +
    + +

    4.3 Basis-Measures für HR

    Headcount = COUNTROWS(Mitarbeiter)
     FTE = SUMX(Mitarbeiter, Mitarbeiter[Beschäftigungsgrad]/100)
    -Krankenquote = DIVIDE([Krankheitstage], [Sollarbeitstage], 0)
    +Krankheitstage = SUM(Abwesenheiten[Kalendertage]) +Sollarbeitstage = [Headcount] * 21 +Krankenquote = DIVIDE([Krankheitstage], [Sollarbeitstage], 0) +Krankenquote_ohne_LZ = +VAR KrankheitstageKurz = CALCULATE([Krankheitstage], FILTER(Abwesenheiten, Abwesenheiten[Kalendertage] <= 30)) +RETURN DIVIDE(KrankheitstageKurz, [Sollarbeitstage], 0) +Austritte = CALCULATE(COUNTROWS(Mitarbeiter), Mitarbeiter[Austritt] <> BLANK()) +Avg_Headcount = AVERAGEX(VALUES(Datum[Monat]), [Headcount]) +Fluktuation = DIVIDE([Austritte], [Avg_Headcount], 0) * 100 -

    4.2 Zeitintelligenz

    +

    4.4 Zeitintelligenz

    Headcount_VJ = CALCULATE([Headcount], SAMEPERIODLASTYEAR(Datum[Date]))
    -Headcount_YTD = TOTALYTD([Headcount], Datum[Date])
    +Headcount_VM = CALCULATE([Headcount], PREVIOUSMONTH(Datum[Date])) +Headcount_YTD = TOTALYTD([Headcount], Datum[Date]) +Delta_VJ = [Headcount] - [Headcount_VJ] +Delta_VJ_Proz = DIVIDE([Delta_VJ], [Headcount_VJ], 0) + +

    4.5 Measures formatieren

    +
      +
    1. Measure auswählen.
    2. +
    3. Measure-Tools → Format (Prozent, Währung, Dezimalstellen).
    4. +
    +
    Tipp: Für Krankenquote Prozentformat mit 1 Dezimalstelle verwenden.
    -

    5. Visualisierung & Dashboard Module 5–6

    -

    5.1 Visuals gezielt einsetzen

    +

    5. Visualisierungen Modul 5

    +

    5.1 Welche Visualisierung wofür?

      -
    • Karten für KPI-Summen (Headcount, Fluktuation)
    • -
    • Liniendiagramm für Trendverläufe
    • -
    • Matrix für Detailansichten mit Drill-down
    • +
    • Karte/Card: Einzelne KPI-Zahl (Headcount, Fluktuation).
    • +
    • Balken: Vergleich von Abteilungen/Monaten.
    • +
    • Linie: Trendverlauf (Headcount über 12 Monate).
    • +
    • Ring: Anteil Absenzen nach Typ.
    • +
    • Tachometer: Ziel vs Ist (Stellenplan).
    • +
    • Matrix: Detailansicht mit Drill-down.
    -

    5.2 Dashboard-Layout

    +

    5.2 Erste Visualisierung erstellen

    +
      +
    1. Visualisierung auswählen (z. B. Karte).
    2. +
    3. Feld Headcount in Werte ziehen.
    4. +
    5. Visual rechts auf der Seite platzieren.
    6. +
    + +

    5.3 Visualisierung formatieren

    +
      +
    1. Visual auswählen → Format (Pinsel).
    2. +
    3. Titel hinzufügen: „Headcount aktuell“.
    4. +
    5. Farben gemäss Firmen-CI setzen.
    6. +
    + +

    5.4 Filter & Slicer

    +
      +
    1. Filterbereich öffnen.
    2. +
    3. Feld Abteilung als Seitenfilter setzen.
    4. +
    5. Slicer für Zeitraum hinzufügen.
    6. +
    + +
    Warnung: Zu viele Filter verwirren. Maximal 2–3 Slicer pro Seite.
    +
    + +
    +

    6. Dashboard bauen Modul 6

    +

    6.1 Layout planen

    1. Wichtigste KPIs oben links platzieren (F-Muster).
    2. Maximal 6–8 Visuals pro Seite.
    3. -
    4. Farben konsistent mit der Firmen-CI.
    5. +
    6. Genug Weissraum für bessere Lesbarkeit.
    -
    -
    -

    6. Veröffentlichen & Teilen Modul 7

    +

    6.2 Management-Übersicht (Seite 1)

      -
    1. Datei → Veröffentlichen → Arbeitsbereich wählen.
    2. -
    3. Dashboard-Visuals anheften.
    4. -
    5. Geplante Aktualisierung einrichten (mit Gateway für lokale Daten).
    6. -
    7. Row-Level Security für Abteilungsleiter einrichten.
    8. +
    9. KPI-Karten: Headcount, Krankenquote, Fluktuation, Stellenplan.
    10. +
    11. Trendlinie Headcount (12 Monate).
    12. +
    13. Absenzquote nach Typ als Ringdiagramm.
    14. +
    + +

    6.3 Detailanalyse (Seite 2)

    +
      +
    1. Matrix mit Drill-down nach Abteilung.
    2. +
    3. Slicer: Zeitraum und Kostenstelle.
    4. +
    + +

    6.4 Interaktionen

    +
      +
    1. Format → Interaktionen bearbeiten.
    2. +
    3. Prüfen, ob Klick auf Balken andere Visuals filtert.
    -
    Tipp: Teste RLS immer im Service über „Als Rolle anzeigen“.
    -

    7. Troubleshooting & Checklisten Modul 8–9

    -

    7.1 Häufige Fehler

    +

    7. Veröffentlichen & Teilen Modul 7

    +
      +
    1. Datei → Veröffentlichen → Arbeitsbereich wählen.
    2. +
    3. Im Service Visuals anheften → Dashboard erstellen.
    4. +
    5. Teilen-Link an Geschäftsleitung/Finanzen senden.
    6. +
    7. Geplante Aktualisierung einrichten (Gateway für lokale Daten).
    8. +
    +
    Tipp: Teste RLS im Service immer mit „Als Rolle anzeigen“.
    +
    + +
    +

    8. Troubleshooting Modul 8

    +

    8.1 Häufige Import-Fehler

      -
    • Encoding-Probleme → UTF-8 auswählen
    • -
    • Datum als Text → Datentyp mit Gebietsschema Schweiz
    • -
    • Division durch Null → DIVIDE() verwenden
    • +
    • Umlaute falsch → Encoding auf UTF-8 stellen.
    • +
    • Datum als Text → Datentyp mit Gebietsschema Schweiz.
    • +
    • Dezimaltrennzeichen falsch → Gebietsschema prüfen.
    -

    7.2 Checkliste neuer Report

    -
      -
    1. Datenquellen klären und Exporte konsolidieren.
    2. -
    3. Power Query Bereinigung durchführen.
    4. -
    5. Datenmodell und Datumstabelle sauber anlegen.
    6. -
    7. Measures erstellen und formatieren.
    8. -
    9. Dashboard bauen, testen, veröffentlichen.
    10. -
    +

    8.2 DAX-Fehler

    +
      +
    • Zirkelbezug → berechnete Spalten vermeiden.
    • +
    • Division durch Null → DIVIDE() verwenden.
    • +
    • Filterkontext falsch → CALCULATE() prüfen.
    • +
    +
    + +
    +

    9. Anhang: Cheat Sheet & Checkliste Modul 9

    +

    9.1 DAX Cheat Sheet

    +
    Headcount = COUNTROWS(Mitarbeiter)
    +FTE = SUMX(Mitarbeiter, Mitarbeiter[Beschäftigungsgrad]/100)
    +Krankenquote = DIVIDE([Krankheitstage], [Sollarbeitstage], 0)
    +Fluktuation = DIVIDE([Austritte], [Avg_Headcount], 0) * 100
    + +

    9.2 Checkliste: Neuer Report

    +
      +
    • Datenquellen klären (SAP, Rexx, Excel/CSV).
    • +
    • Daten importieren und bereinigen (Power Query).
    • +
    • Beziehungen und Datumstabelle erstellen.
    • +
    • Measures bauen und formatieren.
    • +
    • Dashboard layouten, testen, veröffentlichen.
    • +
    diff --git a/training/Power BI Schulungshandbuch fuer HR.md b/training/Power BI Schulungshandbuch fuer HR.md deleted file mode 100644 index 997b169..0000000 --- a/training/Power BI Schulungshandbuch fuer HR.md +++ /dev/null @@ -1,359 +0,0 @@ -# Power BI Schulungshandbuch für HR -Word-Version: Nicht im Repo enthalten (Binary-Dateien werden beim PR-Erstellen nicht unterstützt). - -## Überblick -**Zielgruppe:** 3–4 HR-Mitarbeiterinnen (Schweiz), Excel-Basis + SVERWEIS, Technikaffinität 5–6/10, keine Power BI Vorkenntnisse. - -**Datenquellen:** -- SAP HCM/HRM (alle Infotypen, besonders PA0001, PA0002, PA0008, PA2001) -- Rexx HR-System (Stellenplan, Pulsumfrage, MA-Zufriedenheit) -- Excel/CSV (Kununu-Score, Refline/Time-to-hire) - -**KPIs (mit Periodizität):** -- Headcount/FTE (monatlich) -- Fluktuation (monatlich) -- Krankenquote gesamt + ohne Langzeitkrankheiten >30 Tage (Quartal) -- Überstunden (Quartal) -- Produktivstunden (wöchentlich) -- Ferientage/GLZ-Saldi (jährlich) -- Stellenplan Soll vs Ist (monatlich, aus Rexx) -- Lohnkosten (monatlich) -- Time to hire (Quartal) -- Kununu Score (monatlich) -- Pulsumfrage (Quartal, aus Rexx) -- MA-Zufriedenheitsumfrage (jährlich, aus Rexx) - -**Zielgruppen der Reports:** Geschäftsleitung, Verwaltungsrat, Finanzbuchhaltung, Abteilungsleiter. - ---- - -## 1. MODUL 1: GRUNDLAGEN & DATENIMPORT - -### 1.1 Power BI Desktop installieren und starten -1. Schritt: Gehe auf https://powerbi.microsoft.com/de-de/desktop/ und lade Power BI Desktop herunter. -2. Schritt: Installiere die Anwendung mit den Standardoptionen (Weiter → Installieren → Fertigstellen). -3. Schritt: Starte Power BI Desktop über das Startmenü. -4. Schritt: Wähle "Leerer Bericht" und speichere die Datei als `HR-Reporting.pbix`. - -[Screenshot: Startfenster von Power BI Desktop mit leeren Berichtsvorlagen]. - -**Tipp:** Wenn der Download blockiert ist, wende Dich an die IT (Admin-Rechte erforderlich). - -### 1.2 Oberfläche kennenlernen -1. Schritt: Wechsle links zwischen **Berichtsansicht**, **Datenansicht** und **Modellansicht**. -2. Schritt: Erkenne die Bereiche: **Menüband**, **Visualisierungen**, **Felder**, **Seiten-Navigation**. -3. Schritt: Öffne rechts den Bereich **Filter**, um Visual-, Seiten- und Berichtsebene zu sehen. - -[Screenshot: Power BI Desktop mit markierter Berichtsansicht, Visualisierungen und Felder-Bereich]. - -### 1.3 Excel-Datei importieren -1. Schritt: **Start → Daten abrufen → Excel**. -2. Schritt: Datei auswählen → **Öffnen**. -3. Schritt: Im **Navigator** Tabelle oder Blatt auswählen → **Laden**. -4. Schritt: Prüfe in der Datenansicht, ob die Spalten korrekt geladen wurden. - -**Häufige Probleme und Lösungen:** -1. Problem: Falsche Spaltennamen → Lösung: Erste Zeile als Header setzen (Modul 2). -2. Problem: Zahlen als Text → Lösung: Datentyp korrigieren (Modul 2). -3. Problem: Leere Zeilen → Lösung: Leere Zeilen entfernen (Modul 2). - -### 1.4 CSV importieren -1. Schritt: **Start → Daten abrufen → Text/CSV**. -2. Schritt: Datei auswählen → **Öffnen**. -3. Schritt: Im Vorschaufenster **Trennzeichen** (z. B. Semikolon) prüfen. -4. Schritt: **Dateiursprung** (Encoding) auf **UTF-8** stellen, wenn Umlaute falsch dargestellt werden. - -**Warnung:** In der Schweiz sind Umlaute oft nur mit UTF-8 korrekt. - -### 1.5 SAP-Export importieren -1. Schritt: SAP-Export (z. B. TXT/CSV/XLSX) in einen lokalen Ordner speichern. -2. Schritt: **Start → Daten abrufen → Text/CSV** oder **Excel** wählen. -3. Schritt: Prüfe, ob die erste Zeile die Spaltenüberschriften enthält. -4. Schritt: Importiere pro Infotyp getrennte Tabellen (PA0001, PA0002, PA0008, PA2001). - -**Tipp:** Benenne Tabellen sofort verständlich um (z. B. `Mitarbeiter_Grunddaten`, `Mitarbeiter_Lohn`). - ---- - -## 2. MODUL 2: POWER QUERY EDITOR - -### 2.1 Power Query öffnen -1. Schritt: **Start → Daten transformieren**. - -[Screenshot: Button 'Daten transformieren' im Menüband]. - -### 2.2 Erste Zeile als Header verwenden -1. Schritt: **Transformieren → Erste Zeile als Überschriften**. -2. Schritt: Prüfe, ob die Spaltennamen korrekt sind. - -### 2.3 Datentypen ändern -1. Schritt: Spalte auswählen (z. B. Eintrittsdatum). -2. Schritt: **Transformieren → Datentyp → Datum**. -3. Schritt: Bei Zahlen **Dezimalzahl** oder **Ganze Zahl** wählen. -4. Schritt: Bei Schweizer Datumsformat **mit Gebietsschema (Deutsch – Schweiz)** konvertieren. - -**Warnung:** Datumsfelder werden oft als Text erkannt. - -### 2.4 Spalten entfernen/behalten -1. Schritt: Unnötige Spalten markieren. -2. Schritt: **Start → Spalten entfernen**. -3. Schritt: Für schlanke Tabellen: **Andere Spalten entfernen**. - -### 2.5 Zeilen filtern -1. Schritt: Filterpfeil in der Spalte **Status**. -2. Schritt: Nur aktive Mitarbeitende auswählen. -3. Schritt: Zeitraumfilter setzen (z. B. letztes Jahr). - -### 2.6 Werte ersetzen -1. Schritt: **Transformieren → Werte ersetzen**. -2. Schritt: `null` durch `0` ersetzen. -3. Schritt: Codes (z. B. `A`) durch Klartext (z. B. `Aktiv`) ersetzen. - -### 2.7 Spalten teilen/zusammenführen -1. Schritt: Spalte auswählen. -2. Schritt: **Transformieren → Spalte teilen** (nach Trennzeichen). -3. Schritt: Für Zusammenführen: **Transformieren → Spalten zusammenführen**. - -### 2.8 Berechnete Spalte hinzufügen -1. Schritt: **Spalte hinzufügen → Benutzerdefinierte Spalte**. -2. Schritt: Formel eingeben (z. B. `Beschäftigungsgrad/100`). - -### 2.9 Schliessen und Laden -1. Schritt: **Start → Schliessen & laden**. -2. Schritt: Unterschied: **Laden** speichert in Modell, **Laden in** erlaubt gezielte Ziele (z. B. nur Verbindung). - ---- - -## 3. MODUL 3: DATENMODELL - -### 3.1 Zur Modellansicht wechseln -1. Schritt: Links auf die Modellansicht (Beziehungs-Icon) klicken. - -### 3.2 Beziehungen verstehen -1. Schritt: **1:n** = Eine Zeile in Tabelle A passt zu vielen Zeilen in Tabelle B. -2. Schritt: **1:1** = Jede Zeile passt genau zu einer anderen Zeile. - -**Warum wichtig:** Beziehungen steuern, wie Filter zwischen Tabellen fliessen. - -### 3.3 Beziehung erstellen -1. Schritt: Spalte in Tabelle A auf passende Spalte in Tabelle B ziehen (Drag & Drop). -2. Schritt: Beziehung prüfen → Kardinalität und Kreuzfilterrichtung einstellen. -3. Schritt: Beziehungsnamen überprüfen und bei Bedarf bearbeiten. - -**Tipp:** Nutze meistens Einweg-Filterrichtung, um Mehrdeutigkeiten zu vermeiden. - -### 3.4 Datumstabelle erstellen -1. Schritt: **Modellierung → Neue Tabelle**. -2. Schritt: DAX-Formel einfügen: - -``` -Datum = ADDCOLUMNS( - CALENDAR(DATE(2020,1,1), TODAY()), - "Jahr", YEAR([Date]), - "Monat", MONTH([Date]), - "MonatName", FORMAT([Date],"MMMM"), - "Quartal", "Q" & QUARTER([Date]), - "KW", WEEKNUM([Date]) -) -``` - -3. Schritt: **Tabellen-Tools → Als Datumstabelle markieren → Datum[Date] auswählen**. - -### 3.5 PERNR als Schlüssel -1. Schritt: Verwende die **Personalnummer (PERNR)** als Schlüssel zwischen SAP-Tabellen (PA0001, PA0002, PA0008, PA2001). -2. Schritt: In Rexx/Excel dieselbe Schlüsselspalte sicherstellen. - ---- - -## 4. MODUL 4: DAX MEASURES - -### 4.1 Measure vs. berechnete Spalte -1. Schritt: **Measure** berechnet sich dynamisch im Berichtskontext. -2. Schritt: **Berechnete Spalte** wird pro Zeile gespeichert und vergrössert das Modell. - -### 4.2 Neues Measure erstellen -1. Schritt: **Modellierung → Neues Measure**. -2. Schritt: Formel eingeben und mit Enter bestätigen. -3. Schritt: Measure klar benennen (z. B. `Headcount`, `Fluktuation`). - -### 4.3 Basis-Measures für HR -``` -Headcount = COUNTROWS(Mitarbeiter) -FTE = SUMX(Mitarbeiter, Mitarbeiter[Beschäftigungsgrad]/100) -Krankheitstage = SUM(Abwesenheiten[Kalendertage]) -Sollarbeitstage = [Headcount] * 21 -Krankenquote = DIVIDE([Krankheitstage], [Sollarbeitstage], 0) -Krankenquote_ohne_LZ = -VAR KrankheitstageKurz = CALCULATE([Krankheitstage], FILTER(Abwesenheiten, Abwesenheiten[Kalendertage] <= 30)) -RETURN DIVIDE(KrankheitstageKurz, [Sollarbeitstage], 0) -Austritte = CALCULATE(COUNTROWS(Mitarbeiter), Mitarbeiter[Austritt] <> BLANK()) -Avg_Headcount = AVERAGEX(VALUES(Datum[Monat]), [Headcount]) -Fluktuation = DIVIDE([Austritte], [Avg_Headcount], 0) * 100 -``` - -### 4.4 Zeitintelligenz-Measures -``` -Headcount_VJ = CALCULATE([Headcount], SAMEPERIODLASTYEAR(Datum[Date])) -Headcount_VM = CALCULATE([Headcount], PREVIOUSMONTH(Datum[Date])) -Headcount_YTD = TOTALYTD([Headcount], Datum[Date]) -Delta_VJ = [Headcount] - [Headcount_VJ] -Delta_VJ_Proz = DIVIDE([Delta_VJ], [Headcount_VJ], 0) -``` - -### 4.5 Measures formatieren -1. Schritt: Measure auswählen. -2. Schritt: **Measure-Tools → Format** → Prozent, Dezimalstellen, Währung einstellen. - ---- - -## 5. MODUL 5: VISUALISIERUNGEN - -### 5.1 Visualisierungstypen und wann verwenden -1. **Karte/Card:** Einzelne KPI-Zahl (Headcount, Krankenquote). -2. **Balkendiagramm:** Vergleiche (Abteilungen, Monate). -3. **Liniendiagramm:** Zeitverläufe (Headcount über 12 Monate). -4. **Ringdiagramm:** Anteile (Absenzen nach Typ). -5. **Tachometer:** Ziel vs Ist (Stellenplan-Erfüllung). -6. **Tabelle/Matrix:** Details mit Drill-down. - -### 5.2 Erste Visualisierung erstellen -1. Schritt: Visualisierung im Bereich **Visualisierungen** auswählen. -2. Schritt: Felder per Drag & Drop in Achse/Werte ziehen. -3. Schritt: Visualisierung auf der Seite positionieren und Grösse anpassen. - -### 5.3 Visualisierung formatieren -1. Schritt: Visual auswählen → **Format** (Pinsel). -2. Schritt: Titel, Farben, Schriftgrössen anpassen. -3. Schritt: Einheit und Anzeigeform festlegen (z. B. Tausender, Dezimalstellen). - -### 5.4 Filter hinzufügen -1. Schritt: Filterbereich öffnen. -2. Schritt: Felder in **Visualfilter**, **Seitenfilter** oder **Berichtsfilter** ziehen. - -### 5.5 Slicer erstellen -1. Schritt: Visualisierung → **Datenschnitt (Slicer)** wählen. -2. Schritt: Feld (z. B. Zeitraum, Abteilung) hinzufügen. - -### 5.6 Bedingte Formatierung -1. Schritt: In Tabelle/Matrix auf Wertefeld klicken → **Bedingte Formatierung**. -2. Schritt: Regeln definieren (z. B. Rot/Grün je nach Wert). - ---- - -## 6. MODUL 6: DASHBOARD BAUEN - -### 6.1 Dashboard-Layout planen -1. Schritt: **F-Muster** beachten – Wichtigstes oben links. -2. Schritt: Maximal **6–8 Visualisierungen** pro Seite. -3. Schritt: KPI-Karten immer in gleicher Reihenfolge anordnen. - -### 6.2 Seite 1: Management-Übersicht -1. Schritt: KPI-Karten oben: Headcount, Krankenquote, Fluktuation, Stellenplan. -2. Schritt: Trendlinie Headcount über 12 Monate. -3. Schritt: Absenzquote nach Typ als Ringdiagramm. - -### 6.3 Seite 2: Detailanalyse -1. Schritt: Matrix mit Drill-down nach Abteilung. -2. Schritt: Filter für Zeitraum und Kostenstelle (Slicer). - -### 6.4 Interaktionen -1. Schritt: **Format → Interaktionen bearbeiten**. -2. Schritt: Prüfen, ob Klick auf Balken andere Visuals filtert oder hervorhebt. - -### 6.5 Design-Tipps -1. Schritt: Konsistente Farben (Firmen-CI). -2. Schritt: Genügend Weissraum. -3. Schritt: Beschriftungen gut lesbar. - ---- - -## 7. MODUL 7: VERÖFFENTLICHEN & TEILEN - -### 7.1 Power BI Service (app.powerbi.com) -1. Schritt: Konto erstellen/anmelden. -2. Schritt: Unterschied Desktop vs Service: Desktop = Modell/Bericht, Service = Teilen/Dashboard. - -### 7.2 Bericht veröffentlichen -1. Schritt: **Datei → Veröffentlichen → Arbeitsbereich wählen**. - -### 7.3 Arbeitsbereich einrichten -1. Schritt: Im Service → Arbeitsbereich erstellen. -2. Schritt: Zugriffsrechte für Geschäftsleitung/Finanzbuchhaltung setzen. - -### 7.4 Dashboard erstellen (aus Bericht) -1. Schritt: Im Service Visualisierung auswählen → **Anheften**. -2. Schritt: Neues Dashboard erstellen oder bestehendes wählen. - -### 7.5 Bericht teilen -1. Schritt: **Teilen → Link generieren**. -2. Schritt: Zugriff verwalten (Rollen/Personen). - -### 7.6 Automatische Aktualisierung -1. Schritt: Datensatz → **Geplante Aktualisierung** (täglich/wöchentlich). -2. Schritt: Für lokale Daten **Gateway** einrichten (IT einbeziehen). - -### 7.7 Row-Level Security (RLS) -1. Schritt: **Modellierung → Rollen verwalten**. -2. Schritt: Rolle erstellen, Filter setzen: `[Abteilung] = USERPRINCIPALNAME()`. - ---- - -## 8. TROUBLESHOOTING - -### 8.1 Häufige Fehler beim Import -1. Encoding-Probleme (UTF-8) → Dateiursprung im Import anpassen. -2. Dezimaltrennzeichen (Punkt vs Komma) → Datentyp mit Gebietsschema Schweiz. -3. Datum als Text → Datentyp Datum und richtiges Gebietsschema. - -### 8.2 Häufige DAX-Fehler -1. Zirkelbezug → Berechnete Spalten vermeiden, Measures nutzen. -2. Division durch Null → `DIVIDE()` verwenden. -3. Falscher Filterkontext → Filter mit `CALCULATE()` prüfen. - -### 8.3 Beziehungsprobleme -1. Mehrdeutige Beziehungen → Eine Beziehung aktiv, andere inaktiv setzen. -2. Fehlende Beziehung → Schlüsselspalten prüfen (PERNR, Datum). - -### 8.4 Performance-Probleme -1. Zu viele Spalten importiert → Spalten reduzieren. -2. Zu viele berechnete Spalten → Measures bevorzugen. - ---- - -## 9. ANHANG - -### 9.1 DAX Cheat Sheet (alle HR-Formeln) -``` -Headcount = COUNTROWS(Mitarbeiter) -FTE = SUMX(Mitarbeiter, Mitarbeiter[Beschäftigungsgrad]/100) -Krankheitstage = SUM(Abwesenheiten[Kalendertage]) -Sollarbeitstage = [Headcount] * 21 -Krankenquote = DIVIDE([Krankheitstage], [Sollarbeitstage], 0) -Krankenquote_ohne_LZ = VAR KrankheitstageKurz = CALCULATE([Krankheitstage], FILTER(Abwesenheiten, Abwesenheiten[Kalendertage] <= 30)) -RETURN DIVIDE(KrankheitstageKurz, [Sollarbeitstage], 0) -Austritte = CALCULATE(COUNTROWS(Mitarbeiter), Mitarbeiter[Austritt] <> BLANK()) -Avg_Headcount = AVERAGEX(VALUES(Datum[Monat]), [Headcount]) -Fluktuation = DIVIDE([Austritte], [Avg_Headcount], 0) * 100 -Headcount_VJ = CALCULATE([Headcount], SAMEPERIODLASTYEAR(Datum[Date])) -Headcount_VM = CALCULATE([Headcount], PREVIOUSMONTH(Datum[Date])) -Headcount_YTD = TOTALYTD([Headcount], Datum[Date]) -Delta_VJ = [Headcount] - [Headcount_VJ] -Delta_VJ_Proz = DIVIDE([Delta_VJ], [Headcount_VJ], 0) -``` - -### 9.2 Checkliste: Neuen Report erstellen -1. Datenquellen klären (SAP, Rexx, Excel/CSV). -2. Daten importieren (Modul 1). -3. Daten bereinigen in Power Query (Modul 2). -4. Beziehungen und Datumstabelle erstellen (Modul 3). -5. Measures erstellen (Modul 4). -6. Visuals bauen und formatieren (Modul 5). -7. Dashboard layouten (Modul 6). -8. Veröffentlichen und teilen (Modul 7). - -### 9.3 Glossar -- **Power Query:** Datenaufbereitungstool in Power BI. -- **DAX:** Formelsprache für Berechnungen in Power BI. -- **Measure:** Dynamische Kennzahl, abhängig vom Filterkontext. -- **Berechnete Spalte:** Feste Berechnung pro Zeile. -- **RLS:** Row-Level Security für zeilenbasierte Zugriffssteuerung.