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 @@
-
+
+ Vorbereitung: Arbeitsordner & Dateien Start
+
+ - Lege einen Ordner HR-Power-BI an.
+ - Erstelle Unterordner:
01_Rohdaten, 02_Transformiert, 03_Berichte.
+ - Speichere Exporte aus SAP/Rexx/Excel immer in
01_Rohdaten.
+ - Benutze klare Dateinamen mit Datum, z. B.
SAP_PA0001_2025-01.csv.
+
+ Ziel: Alle Teammitglieder finden Dateien sofort wieder und arbeiten mit den gleichen Daten.
+
+
1. Grundlagen & Datenimport Modul 1
1.1 Installation & erster Start
- - Gehe auf https://powerbi.microsoft.com/de-de/desktop/ und lade Power BI Desktop herunter.
- - Installiere die Anwendung mit den Standardoptionen (Weiter → Installieren → Fertigstellen).
- - Starte Power BI Desktop und wähle „Leerer Bericht“.
- - Speichere die Datei als
HR-Reporting.pbix in einem Projektordner.
+ - Gehe auf https://powerbi.microsoft.com/de-de/desktop/ und lade Power BI Desktop herunter.
+ - Installiere mit Standardoptionen (Weiter → Installieren → Fertigstellen).
+ - Starte Power BI Desktop und wähle Leerer Bericht.
+ - 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
- - Wechsle links zwischen Berichts-, Daten- und Modellansicht.
- - Suche das Menüband (oben), Visualisierungen (rechts) und den Felderbereich (rechts).
- - Öffne den Filterbereich, um Filter auf Visual-, Seiten- und Berichtsebene zu sehen.
+ - Links: Berichtsansicht (Diagramme), Datenansicht (Tabellen), Modellansicht (Beziehungen).
+ - Rechts: Visualisierungen (Diagramm-Typ), Felder (Spalten), Filter.
+ - 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)
- - Start → Daten abrufen → Excel/CSV.
- - Im Navigator nur relevante Tabellen auswählen.
- - Encoding auf UTF-8 setzen, wenn Umlaute falsch angezeigt werden.
+ - Start → Daten abrufen → Excel.
+ - Datei auswählen → Öffnen.
+ - Im Navigator das richtige Blatt wählen (z. B.
Kununu_Score).
+ - 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)
+
+ - Start → Daten abrufen → Text/CSV.
+ - Datei auswählen → Öffnen.
+ - Prüfe Trennzeichen (meist Semikolon).
+ - Setze Dateiursprung auf UTF-8.
+
+ Tipp: Umlaute (ä, ö, ü) sind das beste Zeichen, ob die Kodierung stimmt.
+
+ 1.5 SAP-Exporte importieren
+
+ - SAP-Export lokal speichern (z. B. PA0001, PA0002, PA0008, PA2001).
+ - Jeden Infotyp als eigene Tabelle laden.
+ - Tabellen sofort umbenennen:
Mitarbeiter_Org, Mitarbeiter_Personal, Mitarbeiter_Lohn, Absenzen.
+
+ 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
- - Transformieren → Erste Zeile als Überschriften.
- - Datentypen auf Datum, Text oder Zahl setzen.
- - Überflüssige Spalten entfernen, relevante Spalten behalten.
+ - Start → Daten transformieren.
+ - Du siehst eine Vorschau-Tabelle pro Datenquelle.
- 2.2 Filter & Bereinigung
+ 2.2 Erste Zeile als Überschrift
- - Filter für aktive Mitarbeitende setzen.
- - Nullwerte ersetzen (z. B. 0 für fehlende Überstunden).
- - Codes in Klartext umwandeln (z. B. A → Aktiv).
+ - Transformieren → Erste Zeile als Überschriften.
+ - Kontrolliere, ob Spaltennamen sinnvoll sind.
+
+
+ 2.3 Datentypen richtig setzen
+
+ - Datumsspalten: Datum auswählen.
+ - Zahlen: Ganze Zahl oder Dezimalzahl.
+ - Text: Text.
+
+ Warnung: Schweizer Datumsformat (TT.MM.JJJJ) braucht oft „Datentyp mit Gebietsschema (Deutsch – Schweiz)“.
+
+ 2.4 Spalten entfernen / behalten
+
+ - Unnötige Spalten markieren → Spalten entfernen.
+ - Wenn nur 6–8 Spalten relevant sind: Andere Spalten entfernen.
+
+
+ 2.5 Zeilen filtern
+
+ - Filterpfeil in der Spalte Status.
+ - Nur aktive Mitarbeitende wählen.
+ - Zeitraum (z. B. letztes Jahr) filtern.
+
+
+ 2.6 Werte ersetzen
+
+ - Transformieren → Werte ersetzen.
+ null durch 0 ersetzen.
+ - Codes wie
A in Klartext (Aktiv) umwandeln.
+
+
+ 2.7 Spalten teilen / zusammenführen
+
+ - Spalte auswählen → Spalte teilen (z. B. Vorname/Nachname).
+ - Mehrere Spalten zusammenführen (z. B. Vorname + Nachname).
+
+
+ 2.8 Berechnete Spalte
+
+ - Spalte hinzufügen → Benutzerdefinierte Spalte.
+ - Beispiel: FTE = Beschäftigungsgrad / 100.
+
+
+ 2.9 Schliessen & Laden
+
+ - Start → Schliessen & Laden.
+ - „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
- - PERNR als Schlüssel zwischen SAP-Tabellen nutzen.
- - Datumsbeziehungen über eine zentrale Datumstabelle herstellen.
- - Kreuzfilterrichtung auf „Einweg“ setzen.
+ - Modellansicht öffnen (Beziehungs-Icon links).
+ - Spalte PERNR von Tabelle A auf Tabelle B ziehen.
+ - Kardinalität prüfen (1:n) und Kreuzfilterrichtung auf Einweg setzen.
- 3.2 Datumstabelle (DAX)
+ 3.3 Datumstabelle erstellen
+
+ - Modellierung → Neue Tabelle.
+ - DAX-Formel eingeben:
+
Datum = ADDCOLUMNS(
CALENDAR(DATE(2020,1,1), TODAY()),
"Jahr", YEAR([Date]),
@@ -266,65 +386,170 @@
"Quartal", "Q" & QUARTER([Date]),
"KW", WEEKNUM([Date])
)
+
+ - Tabellen-Tools → Als Datumstabelle markieren → Datum[Date].
+
+
+ 3.4 PERNR als Schlüssel
+
+ - PERNR in allen SAP-Tabellen verwenden.
+ - In Rexx/Excel dieselbe Spalte sicherstellen.
+ - Bei führenden Nullen: Datentyp Text setzen (nicht Zahl).
+
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
+
+ - Modellierung → Neues Measure.
+ - Formel eingeben und Enter drücken.
+ - Measure klar benennen (z. B.
Headcount, Fluktuation).
+
+
+ 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
+
+ - Measure auswählen.
+ - Measure-Tools → Format (Prozent, Währung, Dezimalstellen).
+
+ 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
+
+ - Visualisierung auswählen (z. B. Karte).
+ - Feld
Headcount in Werte ziehen.
+ - Visual rechts auf der Seite platzieren.
+
+
+ 5.3 Visualisierung formatieren
+
+ - Visual auswählen → Format (Pinsel).
+ - Titel hinzufügen: „Headcount aktuell“.
+ - Farben gemäss Firmen-CI setzen.
+
+
+ 5.4 Filter & Slicer
+
+ - Filterbereich öffnen.
+ - Feld
Abteilung als Seitenfilter setzen.
+ - Slicer für Zeitraum hinzufügen.
+
+
+ Warnung: Zu viele Filter verwirren. Maximal 2–3 Slicer pro Seite.
+
+
+
+ 6. Dashboard bauen Modul 6
+ 6.1 Layout planen
- Wichtigste KPIs oben links platzieren (F-Muster).
- Maximal 6–8 Visuals pro Seite.
- - Farben konsistent mit der Firmen-CI.
+ - Genug Weissraum für bessere Lesbarkeit.
-
-
- 6. Veröffentlichen & Teilen Modul 7
+ 6.2 Management-Übersicht (Seite 1)
- - Datei → Veröffentlichen → Arbeitsbereich wählen.
- - Dashboard-Visuals anheften.
- - Geplante Aktualisierung einrichten (mit Gateway für lokale Daten).
- - Row-Level Security für Abteilungsleiter einrichten.
+ - KPI-Karten: Headcount, Krankenquote, Fluktuation, Stellenplan.
+ - Trendlinie Headcount (12 Monate).
+ - Absenzquote nach Typ als Ringdiagramm.
+
+
+ 6.3 Detailanalyse (Seite 2)
+
+ - Matrix mit Drill-down nach Abteilung.
+ - Slicer: Zeitraum und Kostenstelle.
+
+
+ 6.4 Interaktionen
+
+ - Format → Interaktionen bearbeiten.
+ - 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
+
+ - Datei → Veröffentlichen → Arbeitsbereich wählen.
+ - Im Service Visuals anheften → Dashboard erstellen.
+ - Teilen-Link an Geschäftsleitung/Finanzen senden.
+ - Geplante Aktualisierung einrichten (Gateway für lokale Daten).
+
+ 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
-
- - Datenquellen klären und Exporte konsolidieren.
- - Power Query Bereinigung durchführen.
- - Datenmodell und Datumstabelle sauber anlegen.
- - Measures erstellen und formatieren.
- - Dashboard bauen, testen, veröffentlichen.
-
+ 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.