Merge branch 'main' into codex/create-power-bi-training-manual-for-hr

This commit is contained in:
2026-01-20 13:11:10 +01:00
committed by GitHub
3 changed files with 870 additions and 172 deletions
+225
View File
@@ -0,0 +1,225 @@
Erstelle ein Word-Dokument: "Power BI Schulungshandbuch für HR" mit Schritt-für-Schritt-Anleitungen.
ZIELGRUPPE:
- 3-4 HR-Mitarbeiterinnen, Schweiz
- Excel-Kenntnisse: Basis + SVERWEIS
- Technikaffinität: 5-6/10
- Keine Power BI Vorkenntnisse
DATENQUELLEN DER TEILNEHMER:
- 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 DIE ABGEBILDET WERDEN SOLLEN:
- 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
STRUKTUR DES DOKUMENTS:
1. MODUL 1: GRUNDLAGEN & DATENIMPORT
1.1 Power BI Desktop installieren und starten
- Wo herunterladen, Installation, erster Start
1.2 Oberfläche kennenlernen
- Berichtsansicht, Datenansicht, Modellansicht erklären
- Wo findet man was (Menüband, Felder-Bereich, Visualisierungen)
1.3 Excel-Datei importieren
- Schritt-für-Schritt: Daten abrufen → Excel → Datei wählen → Navigator → Laden
- Häufige Probleme und Lösungen
1.4 CSV importieren
- Unterschiede zu Excel, Encoding-Probleme Schweiz (Umlaute)
1.5 SAP-Export importieren
- Typische SAP-Exportformate verarbeiten
- Spaltenüberschriften aus erster Zeile
2. MODUL 2: POWER QUERY EDITOR
2.1 Power Query öffnen
- Daten transformieren → Button finden
2.2 Erste Zeile als Header verwenden
- Schritt-für-Schritt mit Menüpfad
2.3 Datentypen ändern
- Datum, Zahl, Text erkennen und korrigieren
- Schweizer Datumsformat beachten
2.4 Spalten entfernen/behalten
- Nur relevante Spalten behalten
2.5 Zeilen filtern
- Beispiel: Nur aktive Mitarbeiter, nur bestimmter Zeitraum
2.6 Werte ersetzen
- null durch 0 ersetzen, Codes durch Klartext
2.7 Spalten teilen/zusammenführen
2.8 Berechnete Spalte hinzufügen
2.9 Schliessen und Laden
- Unterschied: Laden vs. Laden in
3. MODUL 3: DATENMODELL
3.1 Zur Modellansicht wechseln
3.2 Beziehungen verstehen
- 1:n, 1:1 erklären
- Warum Beziehungen wichtig sind
3.3 Beziehung erstellen
- Drag & Drop zwischen Tabellen
- Beziehung bearbeiten (Kardinalität, Kreuzfilterrichtung)
3.4 Datumstabelle erstellen
- Warum eigene Datumstabelle nötig
- DAX-Formel zum Erstellen:
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]))
- Als Datumstabelle markieren (Menüpfad)
3.5 PERNR als Schlüssel
- Personalnummer verbindet alle SAP-Tabellen
4. MODUL 4: DAX MEASURES
4.1 Was ist ein Measure vs. berechnete Spalte
4.2 Neues Measure erstellen
- Menüpfad: Modellierung → Neues Measure
4.3 Basis-Measures für HR:
Headcount:
Headcount = COUNTROWS(Mitarbeiter)
FTE:
FTE = SUMX(Mitarbeiter, Mitarbeiter[Beschäftigungsgrad]/100)
Krankheitstage:
Krankheitstage = SUM(Abwesenheiten[Kalendertage])
Sollarbeitstage:
Sollarbeitstage = [Headcount] * 21
Krankenquote:
Krankenquote = DIVIDE([Krankheitstage], [Sollarbeitstage], 0)
Krankenquote ohne Langzeit (>30 Tage):
Krankenquote_ohne_LZ =
VAR KrankheitstageKurz = CALCULATE([Krankheitstage], FILTER(Abwesenheiten, Abwesenheiten[Kalendertage] <= 30))
RETURN DIVIDE(KrankheitstageKurz, [Sollarbeitstage], 0)
Austritte:
Austritte = CALCULATE(COUNTROWS(Mitarbeiter), Mitarbeiter[Austritt] <> BLANK())
Durchschnittlicher Headcount:
Avg_Headcount = AVERAGEX(VALUES(Datum[Monat]), [Headcount])
Fluktuation:
Fluktuation = DIVIDE([Austritte], [Avg_Headcount], 0) * 100
4.4 Zeitintelligenz-Measures:
Vorjahreswert:
Headcount_VJ = CALCULATE([Headcount], SAMEPERIODLASTYEAR(Datum[Date]))
Vormonat:
Headcount_VM = CALCULATE([Headcount], PREVIOUSMONTH(Datum[Date]))
Year-to-Date:
Headcount_YTD = TOTALYTD([Headcount], Datum[Date])
Delta zum Vorjahr:
Delta_VJ = [Headcount] - [Headcount_VJ]
Delta Prozent:
Delta_VJ_Proz = DIVIDE([Delta_VJ], [Headcount_VJ], 0)
4.5 Measures formatieren
- Prozent, Dezimalstellen, Währung einstellen
5. MODUL 5: VISUALISIERUNGEN
5.1 Visualisierungstypen und wann verwenden:
- Karte/Card: Einzelne KPI-Zahl (Headcount, Krankenquote)
- Balkendiagramm: Vergleiche (Abteilungen, Monate)
- Liniendiagramm: Zeitverläufe (Headcount über 12 Monate)
- Ringdiagramm: Anteile (Absenzen nach Typ)
- Tachometer: Ziel vs Ist (Stellenplan-Erfüllung)
- Tabelle/Matrix: Details mit Drill-down
5.2 Erste Visualisierung erstellen
- Schritt-für-Schritt: Visualisierung wählen → Felder reinziehen
5.3 Visualisierung formatieren
- Titel, Farben, Schriftgrössen
5.4 Filter hinzufügen
- Visualfilter, Seitenfilter, Berichtsfilter
5.5 Slicer erstellen
- Zeitraum-Auswahl, Abteilungs-Auswahl
5.6 Bedingte Formatierung
- Rot/Grün je nach Wert (Ampel-Logik)
6. MODUL 6: DASHBOARD BAUEN
6.1 Dashboard-Layout planen
- F-Muster: Wichtigstes oben links
- Max 6-8 Visualisierungen pro Seite
6.2 Seite 1: Management-Übersicht erstellen
- KPI-Karten oben: Headcount, Krankenquote, Fluktuation, Stellenplan
- Trendlinie Headcount
- Absenzquote nach Typ
6.3 Seite 2: Detailanalyse erstellen
- Matrix mit Drill-down nach Abteilung
- Filter für Zeitraum und Kostenstelle
6.4 Interaktionen zwischen Visualisierungen
- Klick auf Balken filtert andere Visuals
- Interaktionen bearbeiten (Menüpfad)
6.5 Design-Tipps
- Konsistente Farben (Firmen-CI)
- Genügend Weissraum
- Beschriftungen lesbar
7. MODUL 7: VERÖFFENTLICHEN & TEILEN
7.1 Power BI Service (app.powerbi.com)
- Konto erstellen/anmelden
- Unterschied Desktop vs Service
7.2 Bericht veröffentlichen
- Menüpfad: Datei → Veröffentlichen → Arbeitsbereich wählen
7.3 Arbeitsbereich einrichten
7.4 Dashboard erstellen (aus Bericht)
- Visualisierung anheften
7.5 Bericht teilen
- Link teilen, Zugriff verwalten
7.6 Automatische Aktualisierung einrichten
- Geplante Aktualisierung (täglich, wöchentlich)
- Gateway für lokale Daten (IT einbeziehen)
7.7 Row-Level Security (RLS)
- Abteilungsleiter sehen nur eigene Daten
- Rolle erstellen, DAX-Filter: [Abteilung] = USERPRINCIPALNAME()
8. TROUBLESHOOTING
8.1 Häufige Fehler beim Import
- Encoding-Probleme (UTF-8)
- Falsches Dezimaltrennzeichen (Punkt vs Komma)
- Datum wird als Text erkannt
8.2 Häufige DAX-Fehler
- Zirkelbezug
- Division durch Null (DIVIDE verwenden)
- Falscher Filterkontext
8.3 Beziehungsprobleme
- Mehrdeutige Beziehungen
- Fehlende Beziehung
8.4 Performance-Probleme
- Zu viele Spalten importiert
- Berechnete Spalten vs Measures
9. ANHANG
9.1 DAX Cheat Sheet (alle HR-Formeln auf einer Seite)
9.2 Checkliste: Neuen Report erstellen
9.3 Glossar (Power Query, DAX, Measure, etc.)
FORMAT-ANWEISUNGEN:
- Jeder Schritt nummeriert
- Menüpfade in Format: Reiter → Gruppe → Button
- DAX-Formeln in Codeblock/Monospace
- Tipps und Warnungen hervorheben
- Screenshots beschreiben wo sinnvoll: [Screenshot: Beschreibung was zu sehen sein sollte]
- Sprache: Deutsch (Schweiz), Du-Form
+325 -172
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Power BI Konsumenten-Schulung für HR</title>
<title>Power BI Schulungshandbuch für HR</title>
<style>
:root {
color-scheme: light;
@@ -93,6 +93,16 @@
border-left-color: var(--success);
background: #ecfdf3;
}
pre {
background: var(--code);
color: #e2e8f0;
padding: 16px;
border-radius: 10px;
overflow-x: auto;
}
code {
font-family: "Consolas", "Courier New", monospace;
}
figure {
margin: 0;
padding: 0;
@@ -107,6 +117,11 @@
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;
}
@@ -117,32 +132,18 @@
font-size: 0.92rem;
color: var(--muted);
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 12px;
}
th, td {
.flow-box {
border: 1px solid var(--border);
padding: 10px 12px;
text-align: left;
}
th {
background: #f1f5f9;
font-weight: 600;
}
.option-box {
border: 1px dashed var(--border);
border-radius: 10px;
padding: 12px;
background: #f8fafc;
background: #f1f5f9;
}
</style>
</head>
<body>
<header>
<h1>Power BI Konsumenten-Schulung für HR</h1>
<p>Für HR-Mitarbeiterinnen mit wenig IT-Kenntnissen: Fokus auf <strong>Konsumieren</strong>, nicht auf Erstellen.</p>
<h1>Power BI Schulungshandbuch für HR</h1>
<p>Für 34 HR-Mitarbeiterinnen (Schweiz) mit wenig IT-Kenntnissen und Excel-Basis.</p>
<p class="small">Hinweis: Eine Word-Version ist nicht im Repo enthalten (Binary-Dateien werden beim PR-Erstellen nicht unterstützt).</p>
</header>
@@ -170,7 +171,14 @@
</div>
</div>
<h3>KPIs, die ihr im Dashboard seht</h3>
<h3>Datenquellen</h3>
<ul>
<li>SAP HCM/HRM (Infotypen PA0001, PA0002, PA0008, PA2001)</li>
<li>Rexx HR-System (Stellenplan, Pulsumfrage, MA-Zufriedenheit)</li>
<li>Excel/CSV (Kununu-Score, Refline/Time-to-hire)</li>
</ul>
<h3>KPIs (mit Periodizität)</h3>
<ul class="kpi-list">
<li>Headcount/FTE (monatlich)</li>
<li>Fluktuation (monatlich)</li>
@@ -207,195 +215,340 @@
<text x="140" y="245" text-anchor="middle" font-size="14" fill="#0f172a">Excel/CSV</text>
<rect x="350" y="100" width="260" height="80" rx="14" fill="#1f6feb" opacity="0.12" stroke="#1f6feb" />
<text x="480" y="145" text-anchor="middle" font-size="16" fill="#1f6feb">Power BI Desktop (IT/BI)</text>
<text x="480" y="145" text-anchor="middle" font-size="16" fill="#1f6feb">Power BI Desktop</text>
<rect x="700" y="70" width="260" height="120" rx="14" fill="#ecfeff" stroke="#0ea5e9" />
<text x="830" y="120" text-anchor="middle" font-size="14" fill="#0f172a">Power BI Service</text>
<text x="830" y="145" text-anchor="middle" font-size="12" fill="#475569">HR konsumiert &amp; filtert</text>
<text x="830" y="120" text-anchor="middle" font-size="14" fill="#0f172a">Berichte &amp; Dashboards</text>
<text x="830" y="145" text-anchor="middle" font-size="12" fill="#475569">GL · VR · Finanzen · Abteilungen</text>
<line x1="260" y1="60" x2="350" y2="120" stroke="#64748b" stroke-width="2" marker-end="url(#arrow)" />
<line x1="260" y1="150" x2="350" y2="140" stroke="#64748b" stroke-width="2" />
<line x1="260" y1="240" x2="350" y2="160" stroke="#64748b" stroke-width="2" />
<line x1="610" y1="140" x2="700" y2="130" stroke="#64748b" stroke-width="2" marker-end="url(#arrow)" />
</svg>
<figcaption>Grafik: IT/BI erstellt die Dashboards, HR nutzt sie im Power BI Service.</figcaption>
<figcaption>Grafik: Datenfluss von HR-Quellen in Power BI bis zu den Zielgruppen-Reports.</figcaption>
</figure>
</section>
<section>
<h2>Best Practice: Wer macht was?</h2>
<table>
<thead>
<tr>
<th>Aufgabe</th>
<th>HR</th>
<th>IT/BI-Team</th>
</tr>
</thead>
<tbody>
<tr>
<td>KPIs definieren</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Daten interpretieren</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Reports anfordern</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Dashboards bauen</td>
<td></td>
<td></td>
</tr>
<tr>
<td>DAX/Measures schreiben</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Datenmodell pflegen</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Fertige Dashboards nutzen</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Filter setzen, Drill-down</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h2>Vorbereitung: Arbeitsordner &amp; Dateien <span class="badge">Start</span></h2>
<ol>
<li>Lege einen Ordner <strong>HR-Power-BI</strong> an.</li>
<li>Erstelle Unterordner: <code>01_Rohdaten</code>, <code>02_Transformiert</code>, <code>03_Berichte</code>.</li>
<li>Speichere Exporte aus SAP/Rexx/Excel immer in <code>01_Rohdaten</code>.</li>
<li>Benutze klare Dateinamen mit Datum, z. B. <code>SAP_PA0001_2025-01.csv</code>.</li>
</ol>
<div class="callout success">Ziel: Alle Teammitglieder finden Dateien sofort wieder und arbeiten mit den gleichen Daten.</div>
</section>
<section>
<h2>Optionen für euch (entschieden)</h2>
<div class="grid-two">
<div class="option-box">
<h3>Option A</h3>
<p>Du baust das Dashboard einmalig → HR nutzt es nur noch (Filter, Export).</p>
<h2>1. Grundlagen &amp; Datenimport <span class="badge">Modul 1</span></h2>
<h3>1.1 Installation &amp; erster Start</h3>
<ol>
<li>Gehe auf <strong>https://powerbi.microsoft.com/de-de/desktop/</strong> und lade Power BI Desktop herunter.</li>
<li>Installiere mit Standardoptionen (Weiter → Installieren → Fertigstellen).</li>
<li>Starte Power BI Desktop und wähle <strong>Leerer Bericht</strong>.</li>
<li>Speichere die Datei als <code>HR-Reporting.pbix</code> in <code>03_Berichte</code>.</li>
</ol>
<div class="callout">Tipp: Speichere früh und oft Power BI Desktop hat keine Auto-Speicherung.</div>
<h3>1.2 Oberfläche kennenlernen</h3>
<ol>
<li>Links: Berichtsansicht (Diagramme), Datenansicht (Tabellen), Modellansicht (Beziehungen).</li>
<li>Rechts: Visualisierungen (Diagramm-Typ), Felder (Spalten), Filter.</li>
<li>Oben: Menüband mit allen Funktionen.</li>
</ol>
<div class="callout">Merksatz: <strong>Felder</strong> sind die Daten, <strong>Visualisierungen</strong> sind die Diagramme.</div>
<h3>1.3 Excel importieren (Kununu, Refline)</h3>
<ol>
<li><strong>Start → Daten abrufen → Excel</strong>.</li>
<li>Datei auswählen → <strong>Öffnen</strong>.</li>
<li>Im Navigator das richtige Blatt wählen (z. B. <code>Kununu_Score</code>).</li>
<li>Klicke <strong>Laden</strong>.</li>
</ol>
<div class="callout warning">Warnung: Excel-Tabellen ohne Überschrift führen zu „Spalte1/Spalte2“. Nutze in Power Query „Erste Zeile als Überschrift“.</div>
<h3>1.4 CSV importieren (Time-to-hire)</h3>
<ol>
<li><strong>Start → Daten abrufen → Text/CSV</strong>.</li>
<li>Datei auswählen → <strong>Öffnen</strong>.</li>
<li>Prüfe <strong>Trennzeichen</strong> (meist Semikolon).</li>
<li>Setze <strong>Dateiursprung</strong> auf UTF-8.</li>
</ol>
<div class="callout">Tipp: Umlaute (ä, ö, ü) sind das beste Zeichen, ob die Kodierung stimmt.</div>
<h3>1.5 SAP-Exporte importieren</h3>
<ol>
<li>SAP-Export lokal speichern (z. B. PA0001, PA0002, PA0008, PA2001).</li>
<li>Jeden Infotyp als eigene Tabelle laden.</li>
<li>Tabellen sofort umbenennen: <code>Mitarbeiter_Org</code>, <code>Mitarbeiter_Personal</code>, <code>Mitarbeiter_Lohn</code>, <code>Absenzen</code>.</li>
</ol>
<div class="callout warning">Warnung: SAP-Daten enthalten oft führende Nullen bei Personalnummern (PERNR). Nicht löschen!</div>
</section>
<section>
<h2>2. Power Query Editor <span class="badge">Modul 2</span></h2>
<h3>2.1 Power Query öffnen</h3>
<ol>
<li><strong>Start → Daten transformieren</strong>.</li>
<li>Du siehst eine Vorschau-Tabelle pro Datenquelle.</li>
</ol>
<h3>2.2 Erste Zeile als Überschrift</h3>
<ol>
<li><strong>Transformieren → Erste Zeile als Überschriften</strong>.</li>
<li>Kontrolliere, ob Spaltennamen sinnvoll sind.</li>
</ol>
<h3>2.3 Datentypen richtig setzen</h3>
<ol>
<li>Datumsspalten: <strong>Datum</strong> auswählen.</li>
<li>Zahlen: <strong>Ganze Zahl</strong> oder <strong>Dezimalzahl</strong>.</li>
<li>Text: <strong>Text</strong>.</li>
</ol>
<div class="callout warning">Warnung: Schweizer Datumsformat (TT.MM.JJJJ) braucht oft „Datentyp mit Gebietsschema (Deutsch Schweiz)“.</div>
<h3>2.4 Spalten entfernen / behalten</h3>
<ol>
<li>Unnötige Spalten markieren → <strong>Spalten entfernen</strong>.</li>
<li>Wenn nur 68 Spalten relevant sind: <strong>Andere Spalten entfernen</strong>.</li>
</ol>
<h3>2.5 Zeilen filtern</h3>
<ol>
<li>Filterpfeil in der Spalte <strong>Status</strong>.</li>
<li>Nur aktive Mitarbeitende wählen.</li>
<li>Zeitraum (z. B. letztes Jahr) filtern.</li>
</ol>
<h3>2.6 Werte ersetzen</h3>
<ol>
<li><strong>Transformieren → Werte ersetzen</strong>.</li>
<li><code>null</code> durch <code>0</code> ersetzen.</li>
<li>Codes wie <code>A</code> in Klartext (<code>Aktiv</code>) umwandeln.</li>
</ol>
<h3>2.7 Spalten teilen / zusammenführen</h3>
<ol>
<li>Spalte auswählen → <strong>Spalte teilen</strong> (z. B. Vorname/Nachname).</li>
<li>Mehrere Spalten zusammenführen (z. B. Vorname + Nachname).</li>
</ol>
<h3>2.8 Berechnete Spalte</h3>
<ol>
<li><strong>Spalte hinzufügen → Benutzerdefinierte Spalte</strong>.</li>
<li>Beispiel: FTE = Beschäftigungsgrad / 100.</li>
</ol>
<h3>2.9 Schliessen &amp; Laden</h3>
<ol>
<li><strong>Start → Schliessen &amp; Laden</strong>.</li>
<li>„Laden in“ nutzen, wenn du nur eine Verbindung brauchst.</li>
</ol>
</section>
<section>
<h2>3. Datenmodell <span class="badge">Modul 3</span></h2>
<h3>3.1 Beziehungen verstehen</h3>
<div class="grid-three">
<div class="flow-box">
<strong>1:n Beziehung</strong>
<p class="small">Eine Personalnummer in der Mitarbeitertabelle kann viele Abwesenheitszeilen haben.</p>
</div>
<div class="option-box">
<h3>Option B</h3>
<p>HR lernt nur Power BI Service → Fertige Reports anschauen, filtern, teilen.</p>
<div class="flow-box">
<strong>1:1 Beziehung</strong>
<p class="small">Eine Personalnummer hat genau eine Detailzeile (z. B. Stammdaten).</p>
</div>
<div class="option-box">
<h3>Option C</h3>
<p>HR bleibt bei Excel → Du lieferst bessere SAP-Exporte/Views.</p>
<div class="flow-box">
<strong>Filterfluss</strong>
<p class="small">Filter sollen meistens nur in eine Richtung laufen (Einweg).</p>
</div>
</div>
<div class="callout success">Entscheid: <strong>HR konsumiert nur</strong>. Fokus dieser Schulung: Power BI Service bedienen.</div>
</section>
<section>
<h2>Modul 1: Power BI Service öffnen &amp; zurechtfinden</h2>
<h3>1.1 Anmeldung</h3>
<h3>3.2 Beziehung erstellen</h3>
<ol>
<li>Öffne <strong>https://app.powerbi.com</strong>.</li>
<li>Melde dich mit deinem Firmenkonto an.</li>
<li>Wähle links den richtigen <strong>Arbeitsbereich</strong> (z. B. „HR-Reporting“).</li>
<li>Modellansicht öffnen (Beziehungs-Icon links).</li>
<li>Spalte <strong>PERNR</strong> von Tabelle A auf Tabelle B ziehen.</li>
<li>Kardinalität prüfen (1:n) und Kreuzfilterrichtung auf Einweg setzen.</li>
</ol>
<h3>1.2 Navigation im Service</h3>
<h3>3.3 Datumstabelle erstellen</h3>
<ol>
<li>Links: Navigationsleiste (Start, Arbeitsbereiche, Berichte).</li>
<li>In der Mitte: Berichtseite mit mehreren Visualisierungen.</li>
<li>Oben rechts: Teilen, Exportieren, Abonnieren.</li>
<li><strong>Modellierung → Neue Tabelle</strong>.</li>
<li>DAX-Formel eingeben:</li>
</ol>
<pre><code>Datum = ADDCOLUMNS(
CALENDAR(DATE(2020,1,1), TODAY()),
"Jahr", YEAR([Date]),
"Monat", MONTH([Date]),
"MonatName", FORMAT([Date],"MMMM"),
"Quartal", "Q" &amp; QUARTER([Date]),
"KW", WEEKNUM([Date])
)</code></pre>
<ol start="3">
<li><strong>Tabellen-Tools → Als Datumstabelle markieren → Datum[Date]</strong>.</li>
</ol>
<div class="callout">Merksatz: <strong>Bericht</strong> = mehrere Seiten, <strong>Dashboard</strong> = eine Seite mit Kacheln.</div>
</section>
<section>
<h2>Modul 2: Filtern &amp; Slicer benutzen</h2>
<h3>2.1 Slicer (Zeit, Abteilung, Standort)</h3>
<h3>3.4 PERNR als Schlüssel</h3>
<ol>
<li>Klicke auf den Slicer (z. B. „Jahr“).</li>
<li>Wähle einen Wert aus (z. B. 2025).</li>
<li>Mehrfachauswahl: <strong>Strg</strong> gedrückt halten.</li>
</ol>
<div class="callout warning">Warnung: Wenn Zahlen „verschwinden“, liegt meist ein Filter aktiv. Filter über den Radiergummi zurücksetzen.</div>
<h3>2.2 Filterbereich rechts</h3>
<ol>
<li>Öffne den Filterbereich.</li>
<li>Prüfe Visual-, Seiten- und Berichtsebene.</li>
<li>Setze Filter zurück (Radiergummi-Symbol).</li>
<li>PERNR in allen SAP-Tabellen verwenden.</li>
<li>In Rexx/Excel dieselbe Spalte sicherstellen.</li>
<li>Bei führenden Nullen: Datentyp Text setzen (nicht Zahl).</li>
</ol>
</section>
<section>
<h2>Modul 3: Drill-down &amp; Drill-up</h2>
<ol>
<li>Klicke auf ein Diagramm (z. B. Abteilung).</li>
<li>Nutze die Drill-Buttons oben links im Visual.</li>
<li>Mit „Drill-up“ kommst du eine Ebene zurück.</li>
</ol>
<div class="callout">Beispiel: Gesamtes Unternehmen → Abteilung → Team.</div>
</section>
<section>
<h2>Modul 4: Exportieren (Excel &amp; PDF)</h2>
<h3>4.1 Daten nach Excel exportieren</h3>
<ol>
<li>Im Visual auf die drei Punkte <strong></strong> klicken.</li>
<li><strong>Daten exportieren</strong> wählen.</li>
<li>Format wählen: Zusammengefasst oder Detailliert.</li>
</ol>
<h3>4.2 Bericht als PDF speichern</h3>
<ol>
<li>Oben rechts: <strong>Datei → Exportieren → PDF</strong>.</li>
<li>PDF lokal speichern und an Empfänger senden.</li>
</ol>
</section>
<section>
<h2>Modul 5: Teilen &amp; Abonnements</h2>
<h3>5.1 Bericht teilen</h3>
<ol>
<li>Klicke auf <strong>Teilen</strong>.</li>
<li>Empfänger auswählen (E-Mail-Adresse).</li>
<li>Kurze Nachricht hinzufügen und senden.</li>
</ol>
<h3>5.2 Abonnement einrichten</h3>
<ol>
<li>Klicke oben auf <strong>Abonnieren</strong>.</li>
<li>Wähle: täglich, wöchentlich oder monatlich.</li>
<li>Empfänger prüfen und speichern.</li>
</ol>
<div class="callout success">Tipp: Für Geschäftsleitung wöchentliches PDF per E-Mail einstellen.</div>
</section>
<section>
<h2>Modul 6: Häufige Stolpersteine &amp; Hilfe</h2>
<h2>4. DAX Measures <span class="badge">Modul 4</span></h2>
<h3>4.1 Measure vs. berechnete Spalte</h3>
<ul>
<li>„Ich sehe keine Daten“ → Filter prüfen, Zeitraum anpassen.</li>
<li>„Zahlen stimmen nicht“ → Filter/Slicer zurücksetzen.</li>
<li>„Export klappt nicht“ → IT/BI-Team kontaktieren.</li>
<li><strong>Measure:</strong> wird im Bericht berechnet, schneller und flexibler.</li>
<li><strong>Berechnete Spalte:</strong> wird in jeder Zeile gespeichert (macht Modell grösser).</li>
</ul>
<div class="callout">Merke: HR nutzt die Dashboards, IT/BI pflegt Daten &amp; Logik.</div>
<h3>4.2 Neues Measure erstellen</h3>
<ol>
<li><strong>Modellierung → Neues Measure</strong>.</li>
<li>Formel eingeben und Enter drücken.</li>
<li>Measure klar benennen (z. B. <code>Headcount</code>, <code>Fluktuation</code>).</li>
</ol>
<h3>4.3 Basis-Measures für HR</h3>
<pre><code>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</code></pre>
<h3>4.4 Zeitintelligenz</h3>
<pre><code>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)</code></pre>
<h3>4.5 Measures formatieren</h3>
<ol>
<li>Measure auswählen.</li>
<li><strong>Measure-Tools → Format</strong> (Prozent, Währung, Dezimalstellen).</li>
</ol>
<div class="callout">Tipp: Für Krankenquote Prozentformat mit 1 Dezimalstelle verwenden.</div>
</section>
<section>
<h2>Checkliste: HR als Konsumentin</h2>
<h2>5. Visualisierungen <span class="badge">Modul 5</span></h2>
<h3>5.1 Welche Visualisierung wofür?</h3>
<ul>
<li><strong>Karte/Card:</strong> Einzelne KPI-Zahl (Headcount, Fluktuation).</li>
<li><strong>Balken:</strong> Vergleich von Abteilungen/Monaten.</li>
<li><strong>Linie:</strong> Trendverlauf (Headcount über 12 Monate).</li>
<li><strong>Ring:</strong> Anteil Absenzen nach Typ.</li>
<li><strong>Tachometer:</strong> Ziel vs Ist (Stellenplan).</li>
<li><strong>Matrix:</strong> Detailansicht mit Drill-down.</li>
</ul>
<h3>5.2 Erste Visualisierung erstellen</h3>
<ol>
<li>Visualisierung auswählen (z. B. Karte).</li>
<li>Feld <code>Headcount</code> in Werte ziehen.</li>
<li>Visual rechts auf der Seite platzieren.</li>
</ol>
<h3>5.3 Visualisierung formatieren</h3>
<ol>
<li>Visual auswählen → <strong>Format</strong> (Pinsel).</li>
<li>Titel hinzufügen: „Headcount aktuell“.</li>
<li>Farben gemäss Firmen-CI setzen.</li>
</ol>
<h3>5.4 Filter &amp; Slicer</h3>
<ol>
<li>Filterbereich öffnen.</li>
<li>Feld <code>Abteilung</code> als Seitenfilter setzen.</li>
<li>Slicer für Zeitraum hinzufügen.</li>
</ol>
<div class="callout warning">Warnung: Zu viele Filter verwirren. Maximal 23 Slicer pro Seite.</div>
</section>
<section>
<h2>6. Dashboard bauen <span class="badge">Modul 6</span></h2>
<h3>6.1 Layout planen</h3>
<ol>
<li>Wichtigste KPIs oben links platzieren (F-Muster).</li>
<li>Maximal 68 Visuals pro Seite.</li>
<li>Genug Weissraum für bessere Lesbarkeit.</li>
</ol>
<h3>6.2 Management-Übersicht (Seite 1)</h3>
<ol>
<li>KPI-Karten: Headcount, Krankenquote, Fluktuation, Stellenplan.</li>
<li>Trendlinie Headcount (12 Monate).</li>
<li>Absenzquote nach Typ als Ringdiagramm.</li>
</ol>
<h3>6.3 Detailanalyse (Seite 2)</h3>
<ol>
<li>Matrix mit Drill-down nach Abteilung.</li>
<li>Slicer: Zeitraum und Kostenstelle.</li>
</ol>
<h3>6.4 Interaktionen</h3>
<ol>
<li><strong>Format → Interaktionen bearbeiten</strong>.</li>
<li>Prüfen, ob Klick auf Balken andere Visuals filtert.</li>
</ol>
</section>
<section>
<h2>7. Veröffentlichen &amp; Teilen <span class="badge">Modul 7</span></h2>
<ol>
<li><strong>Datei → Veröffentlichen → Arbeitsbereich wählen</strong>.</li>
<li>Im Service Visuals anheften → Dashboard erstellen.</li>
<li>Teilen-Link an Geschäftsleitung/Finanzen senden.</li>
<li>Geplante Aktualisierung einrichten (Gateway für lokale Daten).</li>
</ol>
<div class="callout">Tipp: Teste RLS im Service immer mit „Als Rolle anzeigen“.</div>
</section>
<section>
<h2>8. Troubleshooting <span class="badge">Modul 8</span></h2>
<h3>8.1 Häufige Import-Fehler</h3>
<ul>
<li>Umlaute falsch → Encoding auf UTF-8 stellen.</li>
<li>Datum als Text → Datentyp mit Gebietsschema Schweiz.</li>
<li>Dezimaltrennzeichen falsch → Gebietsschema prüfen.</li>
</ul>
<h3>8.2 DAX-Fehler</h3>
<ul>
<li>Zirkelbezug → berechnete Spalten vermeiden.</li>
<li>Division durch Null → <code>DIVIDE()</code> verwenden.</li>
<li>Filterkontext falsch → <code>CALCULATE()</code> prüfen.</li>
</ul>
</section>
<section>
<h2>9. Anhang: Cheat Sheet &amp; Checkliste <span class="badge">Modul 9</span></h2>
<h3>9.1 DAX Cheat Sheet</h3>
<pre><code>Headcount = COUNTROWS(Mitarbeiter)
FTE = SUMX(Mitarbeiter, Mitarbeiter[Beschäftigungsgrad]/100)
Krankenquote = DIVIDE([Krankheitstage], [Sollarbeitstage], 0)
Fluktuation = DIVIDE([Austritte], [Avg_Headcount], 0) * 100</code></pre>
<h3>9.2 Checkliste: Neuer Report</h3>
<ul class="checklist">
<li>Ich kann Power BI Service öffnen und den Bericht finden.</li>
<li>Ich kann Zeitraum/Abteilung filtern.</li>
<li>Ich kann Drill-down und Drill-up nutzen.</li>
<li>Ich kann Daten nach Excel exportieren.</li>
<li>Ich kann einen Bericht als PDF speichern.</li>
<li>Ich kann ein Abonnement einrichten.</li>
<li>Datenquellen klären (SAP, Rexx, Excel/CSV).</li>
<li>Daten importieren und bereinigen (Power Query).</li>
<li>Beziehungen und Datumstabelle erstellen.</li>
<li>Measures bauen und formatieren.</li>
<li>Dashboard layouten, testen, veröffentlichen.</li>
</ul>
</section>
</main>
@@ -0,0 +1,320 @@
# Power BI Schulungshandbuch für HR
Word-Version: Nicht im Repo enthalten (Binary-Dateien werden beim PR-Erstellen nicht unterstützt).
Zielgruppe: 34 HR-Mitarbeiterinnen (Schweiz), Excel-Basis + SVERWEIS, Technikaffinität 56/10, keine Power BI Vorkenntnisse.
Datenquellen: SAP HCM/HRM (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 Langzeit >30 Tage (Quartal), Überstunden (Quartal), Produktivstunden (wöchentlich), Ferientage/GLZ-Saldi (jährlich), Stellenplan Soll vs Ist (monatlich), Lohnkosten (monatlich), Time to hire (Quartal), Kununu Score (monatlich), Pulsumfrage (Quartal), MA-Zufriedenheitsumfrage (jährlich).
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ü.
[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 oben, Visualisierungen rechts, Felder-Bereich rechts, Seiten-Navigation links.
3. Schritt: Klicke auf eine leere Seite, damit Visualisierungen verfügbar werden.
[Screenshot: Power BI Desktop mit markierter Berichtsansicht, Visualisierungen und Felder-Bereich].
### 1.3 Excel-Datei importieren
1. Schritt: Reiter → Start → Daten abrufen → Excel.
2. Schritt: Datei auswählen → Öffnen.
3. Schritt: Im Navigator Tabelle oder Blatt auswählen → Laden.
Warnung: Wenn Du im Navigator mehrere Tabellen auswählst, kann die Ladezeit steigen.
Häufige Probleme und Lösungen:
1. Problem: Falsche Spaltennamen → Lösung: Erste Zeile als Header setzen (siehe Modul 2).
2. Problem: Zahlen als Text → Lösung: Datentyp korrigieren (siehe Modul 2).
### 1.4 CSV importieren
1. Schritt: Reiter → Start → Daten abrufen → Text/CSV.
2. Schritt: Datei auswählen → Öffnen.
3. Schritt: Im Vorschaufenster Trennzeichen und Kodierung prüfen.
Warnung: In der Schweiz sind Umlaute oft nur mit UTF-8 korrekt. Stelle Kodierung auf UTF-8, falls nötig.
Hinweis: CSV hat keine Formeln oder Formatierungen nur Rohdaten.
### 1.5 SAP-Export importieren
1. Schritt: SAP-Export (z. B. TXT/CSV/XLSX) in einen lokalen Ordner speichern.
2. Schritt: Reiter → Start → Daten abrufen → Text/CSV oder Excel wählen.
3. Schritt: Im Navigator prüfen, ob die erste Zeile die Spaltenüberschriften enthält.
Tipp: Wenn die Überschriften fehlen, nutze Power Query → Erste Zeile als Überschriften.
## 2. MODUL 2: POWER QUERY EDITOR
### 2.1 Power Query öffnen
1. Schritt: Reiter → Start → Daten transformieren.
[Screenshot: Button 'Daten transformieren' im Menüband].
### 2.2 Erste Zeile als Header verwenden
1. Schritt: Reiter → 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: Reiter → Transformieren → Datentyp → Datum.
3. Schritt: Bei Zahlen Datentyp → Dezimalzahl oder Ganze Zahl.
Warnung: Schweizer Datumsformat (TT.MM.JJJJ) wird manchmal als Text erkannt. In diesem Fall zuerst Datentyp Text, dann Datum mit Gebietsschema Schweiz (Deutsch).
### 2.4 Spalten entfernen/behalten
1. Schritt: Unnötige Spalten markieren.
2. Schritt: Reiter → Start → Spalten entfernen.
Tipp: Nutze "Andere Spalten entfernen", um nur relevante Spalten zu behalten.
### 2.5 Zeilen filtern
1. Schritt: Filterpfeil in der Spalte Status.
2. Schritt: Nur aktive Mitarbeitende auswählen.
3. Schritt: Zeitraumfilter z. B. letztes Jahr.
### 2.6 Werte ersetzen
1. Schritt: Reiter → 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: Reiter → Transformieren → Spalte teilen (nach Trennzeichen).
3. Schritt: Für Zusammenführen: Reiter → Transformieren → Spalten zusammenführen.
### 2.8 Berechnete Spalte hinzufügen
1. Schritt: Reiter → Spalte hinzufügen → Benutzerdefinierte Spalte.
2. Schritt: Formel eingeben (z. B. Beschäftigungsgrad/100).
### 2.9 Schliessen und Laden
1. Schritt: Reiter → 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.
Tipp: Nutze meistens Einweg-Filterrichtung, um Mehrdeutigkeiten zu vermeiden.
### 3.4 Datumstabelle erstellen
1. Schritt: Reiter → 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: Reiter → 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 allen SAP-Tabellen (PA0001, PA0002, PA0008, PA2001).
## 4. MODUL 4: DAX MEASURES
### 4.1 Was ist ein Measure vs. berechnete Spalte
1. Schritt: Measure berechnet sich dynamisch im Berichtskontext.
2. Schritt: Berechnete Spalte wird pro Zeile gespeichert und erhöht Modellgrösse.
### 4.2 Neues Measure erstellen
1. Schritt: Reiter → Modellierung → Neues Measure.
2. Schritt: Formel eingeben und mit Enter bestätigen.
### 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: Reiter → 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.
### 5.3 Visualisierung formatieren
1. Schritt: Visual auswählen → Reiter Visual → Format (Pinsel).
2. Schritt: Titel, Farben, Schriftgrössen anpassen.
### 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).
Tipp: Ampel-Logik funktioniert gut für Krankenquote und Fluktuation.
## 6. MODUL 6: DASHBOARD BAUEN
### 6.1 Dashboard-Layout planen
1. Schritt: F-Muster beachten Wichtigstes oben links.
2. Schritt: Maximal 68 Visualisierungen pro Seite.
### 6.2 Seite 1: Management-Übersicht erstellen
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 erstellen
1. Schritt: Matrix mit Drill-down nach Abteilung.
2. Schritt: Filter für Zeitraum und Kostenstelle (Slicer).
### 6.4 Interaktionen zwischen Visualisierungen
1. Schritt: Reiter → 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: Reiter → 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 einrichten
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: Reiter → Modellierung → Rollen verwalten.
2. Schritt: Rolle erstellen, Filter setzen: [Abteilung] = USERPRINCIPALNAME().
Warnung: RLS muss im Service getestet werden (Als Rolle anzeigen).
## 8. TROUBLESHOOTING
### 8.1 Häufige Fehler beim Import
1. Problem: Encoding-Probleme (UTF-8) → Lösung: Kodierung im CSV-Import anpassen.
2. Problem: Dezimaltrennzeichen (Punkt vs Komma) → Lösung: Datentyp mit Gebietsschema Schweiz setzen.
3. Problem: Datum als Text → Lösung: Datentyp Datum und richtiges Gebietsschema.
### 8.2 Häufige DAX-Fehler
1. Problem: Zirkelbezug → Lösung: Berechnete Spalten vermeiden, Measures nutzen.
2. Problem: Division durch Null → Lösung: DIVIDE() verwenden.
3. Problem: Falscher Filterkontext → Lösung: Filter mit CALCULATE prüfen.
### 8.3 Beziehungsprobleme
1. Problem: Mehrdeutige Beziehungen → Lösung: Eine Beziehung aktiv, andere inaktiv setzen.
2. Problem: Fehlende Beziehung → Lösung: Schlüsselspalten prüfen (PERNR, Datum).
### 8.4 Performance-Probleme
1. Problem: Zu viele Spalten importiert → Lösung: Spalten reduzieren.
2. Problem: Zu viele berechnete Spalten → Lösung: 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. Schritt: Datenquellen klären (SAP, Rexx, Excel/CSV).
2. Schritt: Daten importieren (Modul 1).
3. Schritt: Daten bereinigen in Power Query (Modul 2).
4. Schritt: Beziehungen und Datumstabelle erstellen (Modul 3).
5. Schritt: Measures erstellen (Modul 4).
6. Schritt: Visuals bauen und formatieren (Modul 5).
7. Schritt: Dashboard layouten (Modul 6).
8. Schritt: 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.