Reporting automatisieren: Anleitung für Power BI, Power Automate und Skript – vom Excel-Bericht zum automatisierten Reporting
Von Beata Gurshal, Softwareentwicklerin
Montagmorgen, kurz nach acht. Jemand öffnet das ERP, zieht den Umsatzexport, kopiert ihn in die Vorlage vom letzten Mal, repariert den SVERWEIS, aktualisiert die Pivot-Tabelle, druckt ein PDF und verschickt es an die Geschäftsführung. Nächste Woche wieder. Dieser Ablauf ist in den meisten Unternehmen kein Versehen, sondern gewachsene Praxis, und er kostet nicht nur Zeit: Er hängt an einer Person, er ist fehleranfällig, und niemand merkt, wenn eine Zeile fehlt.
Automatisiertes Reporting heißt, dass alle fünf Schritte ohne Hand laufen: Daten holen, verdichten, darstellen, verteilen und überwachen. Dieser Leitfaden zeigt auf dem Stand von September 2026 drei Wege dorthin, mit Anleitung und Code: Power BI, einen Power-Automate-Flow, der ohne Premium-Lizenz auskommt, und ein Skript mit Zeitplan. Er ist die technische Ergänzung zu unserem Anwendungsfall Reporting automatisieren, der den Ablauf aus Sicht des Unternehmens beschreibt.
Was automatisiertes Reporting bedeutet — und was nicht
Eine schnellere Excel-Vorlage ist keine Automatisierung. Solange ein Mensch den Export zieht und auf „Senden” klickt, bleibt der Bericht Handarbeit mit besserem Werkzeug. Automatisiert ist ein Bericht erst, wenn drei Stufen ohne Eingriff laufen: der Datenabruf aus der Quelle, die Aufbereitung nach festen Regeln und die Verteilung an feste Empfänger. Dazu kommt eine vierte, die fast immer vergessen wird: die Überwachung. Ein Bericht, der still ausfällt, ist schlechter als einer, der gar nicht automatisiert wurde.
Geeignet sind Berichte, die wiederkehren, nach festen Regeln entstehen, deren Quelle per Datei, Datenbank oder Schnittstelle erreichbar ist und deren Empfängerkreis feststeht. Welche Abläufe sich darüber hinaus lohnen, haben wir in Welche Prozesse sich automatisieren lassen beschrieben.
Drei Wege im Vergleich: Power BI, Power Automate, Skript
| Power BI | Power Automate mit Excel | Skript (Python oder PowerShell) | |
|---|---|---|---|
| Ergebnis | interaktiver Bericht im Browser, Abo per E-Mail | Tabelle oder Datei per E-Mail | Excel- oder CSV-Datei per E-Mail |
| Lizenz | Pro oder Premium per User für Ersteller und Empfänger, alternativ eine Fabric-Kapazität | in Microsoft 365 enthalten, solange nur Standard-Connectoren genutzt werden | keine, aber Betrieb im eigenen Netz |
| Datenquellen | Datenbanken, Dateien, Online-Dienste; lokale Quellen über ein Gateway | Excel in OneDrive oder SharePoint; SQL Server ist ein Premium-Connector | alles, was das Skript erreicht: SQL, CSV, ODBC, APIs |
| Stärke | Filtern, Drill-down, Zeilenebenensicherheit, viele Empfänger | bestehende Excel-Vorlage bleibt, schnell eingerichtet | volle Kontrolle, Daten verlassen das Haus nicht |
| Grenze | PDF-Anhang braucht Premium per User oder eine Kapazität, externe Empfänger nur eine bezahlte Kapazität | 256 Zeilen ohne Paginierung, Datei bis 25 MB, Tageslimit an Aktionen | Zeitplan, Zugangsdaten, Fehlermeldung und Versionierung bauen Sie selbst |
| Typischer Fall | Vertriebs- und Finanzkennzahlen für Führungskräfte | wöchentliche Liste offener Posten an die Buchhaltung | Monatsbericht aus dem ERP auf dem eigenen Server |
Die Wege schließen sich nicht aus. Eine bewährte Kombination: Ein Skript oder eine Datenbanksicht liefert saubere Daten, Power BI stellt sie dar, Power Automate meldet Ausfälle. Die Plattformfrage jenseits von Microsoft haben wir im Vergleich von n8n, Make und Power Automate behandelt.
Der Stand 2026: Was sich bei Microsoft geändert hat
Wer ältere Anleitungen liest, stolpert über Begriffe, die es so nicht mehr gibt. Drei Dinge sind 2026 wichtig. Erstens zieht Microsoft die kapazitätsbasierten Premium-Pakete (P-SKUs) zurück; sie enden mit der jeweiligen Vertragslaufzeit, Ersatz sind Fabric-Kapazitäten (F-SKUs). Power BI Pro und Premium per User bleiben, die verbreitete Aussage „Pro läuft aus” ist falsch. Zweitens heißt das frühere „Dataset” jetzt „semantisches Modell”. Drittens hat Microsoft die Anmeldung am Daten-Gateway umgestellt: Gateways vor dem Mai-2026-Release, oder ohne den Patch für die Builds Januar bis April 2026, können sich beim Einrichten, Wiederherstellen und Verwalten nicht mehr anmelden. Der laufende Betrieb kann weitergehen, aber spätestens bei der nächsten Wartung steht man vor verschlossener Tür. Dazu ein Detail für Terminalserver: Power BI Desktop verlangt seit März 2025 einen Prozessor mit AVX-Befehlssatz, auch in virtuellen Maschinen.
Weg 1: Power BI — vom Desktop zum geplanten Bericht
Lizenzen: was womit geht
Mit der kostenlosen Lizenz arbeiten Sie nur für sich selbst, teilen ist nicht möglich. Wer Berichte veröffentlicht, teilt oder abonniert, braucht Pro oder Premium per User, und die Empfänger ebenfalls — außer der Arbeitsbereich liegt auf einer Fabric-Kapazität ab F64, dann genügt den Betrachtern die kostenlose Lizenz. Die Unterschiede, die im Alltag zählen:
| Pro | Premium per User | Fabric-Kapazität | |
|---|---|---|---|
| Modellgröße | 1 GB | 100 GB | je nach Größe |
| Geplante Aktualisierungen je Tag | 8 | 48 | 48 |
| Zeitlimit je Aktualisierung | 2 Stunden | 5 Stunden | 5 Stunden |
| Vollständiger Bericht als PDF im Abo | nein | ja | ja |
| Abo an externe Empfänger | nein | nein | ja |
Wie Power BI zu Ihrem Microsoft-365-Plan passt, ordnet der Microsoft-365-Lizenzvergleich ein.
Daten anbinden mit Power Query
Power BI Desktop wird monatlich aktualisiert, nur die jeweils neueste Version wird unterstützt; die Variante aus dem Microsoft Store aktualisiert sich selbst. Die Datenanbindung läuft über Power Query, dessen Schritte als Code in der Sprache M sichtbar sind. Eine SQL-Tabelle mit Zeitlimit und Datumsfilter:
let
Source = Sql.Database("myserver.database.windows.net", "AdventureWorks", [CommandTimeout=#duration(0, 2, 0, 0)]),
dbo_Fact = Source{[Schema="dbo",Item="FactInternetSales"]}[Data],
#"Filtered Rows" = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart and [OrderDate] < RangeEnd)
in
#"Filtered Rows"
RangeStart und RangeEnd sind die beiden Parameter der inkrementellen Aktualisierung, die auch mit Pro funktioniert: Power BI lädt dann nur den jüngsten Zeitraum neu. Zwei Regeln dazu: Die Namen sind fest und unterscheiden Groß- und Kleinschreibung, und nur eine der beiden Grenzen darf ein Gleichheitszeichen tragen, sonst entstehen Duplikate. Nach der ersten Veröffentlichung lässt sich ein solches Modell nicht mehr aus Desktop überschreiben, ohne die geladenen Daten zu verlieren.
Der häufigste Fall im Mittelstand ist aber keine Datenbank, sondern ein Ordner voller Exporte. Alle Excel-Dateien einer SharePoint-Bibliothek listet diese Abfrage:
let
Source = SharePoint.Files(
"https://contoso.sharepoint.com/sites/Contoso",
[ApiVersion = 15]
),
ExcelWorkbooks = Table.SelectRows(
Source,
each Comparer.OrdinalIgnoreCase([Extension], ".xlsx") = 0
)
in
ExcelWorkbooks
Danach genügt in der Oberfläche ein Klick auf „Dateien kombinieren”: Power Query erzeugt eine Beispielabfrage und wendet sie auf jede Datei an. Voraussetzung ist, dass alle Dateien dasselbe Schema haben; Dateinamen mit Raute, Prozent- oder Dollarzeichen führen zu Anmeldefehlern. Für deutsche CSV-Exporte mit Semikolon:
let
Source = Csv.Document(File.Contents("C:\Export\umsatz.csv"), [Delimiter = ";", Encoding = 65001]),
Promoted = Table.PromoteHeaders(Source, [PromoteAllScalars = true])
in
Promoted
Table.PromoteHeaders ist hier kein Zufall: Microsoft empfiehlt es ausdrücklich statt der Kopfzeilenoption beim Laden, weil jene Zahlen und Datumswerte abhängig von der Spracheinstellung in Text umwandelt — auf deutschen Systemen eine zuverlässige Fehlerquelle.
Kennzahlen mit DAX
Eine Basiskennzahl und vier Ableitungen decken den größten Teil jedes Managementberichts ab: aufgelaufener Jahreswert, Vorjahreswert, Veränderung und Marge. Jede Formel legen Sie als eigenes Measure an (Modellierung → Neues Measure); sie stehen hier nur der Übersicht halber untereinander. [Deckungsbeitrag] ist ein Measure aus Ihrem eigenen Modell, etwa Umsatz minus Wareneinsatz.
Umsatz =
SUM ( Sales[Sales Amount] )
Umsatz YTD =
CALCULATE ( [Umsatz], DATESYTD ( 'Date'[Date] ) )
Umsatz Vorjahr =
CALCULATE ( [Umsatz], SAMEPERIODLASTYEAR ( 'Date'[Date] ) )
Veränderung zum Vorjahr =
VAR Aktuell = [Umsatz]
VAR Vorjahr = [Umsatz Vorjahr]
RETURN
IF ( Aktuell && Vorjahr, DIVIDE ( Aktuell - Vorjahr, Vorjahr ) )
Marge =
DIVIDE ( [Deckungsbeitrag], [Umsatz] )
DIVIDE statt Schrägstrich ist Absicht: Die Funktion liefert bei einem leeren oder nullwertigen Nenner ein leeres Ergebnis statt eines Fehlers. Für ein abweichendes Wirtschaftsjahr nimmt DATESYTD das Jahresende als zweites Argument. Microsofts Beispiel lautet "6-30" für ein US-Gebietsschema; die Schreibweise richtet sich nach dem Gebietsschema, mit dem das Modell erstellt wurde, auf deutschen Systemen also Tag vor Monat. Prüfen Sie das Ergebnis an einem Datum kurz nach dem Stichtag. In Power BI Desktop mit deutscher Spracheinstellung trennen Sie Argumente je nach Einstellung mit Semikolon.
Veröffentlichen, aktualisieren, verteilen
Über Start → Veröffentlichen landet der Bericht im gewählten Arbeitsbereich. Den Zeitplan setzen Sie am semantischen Modell unter Aktualisieren → Aktualisierung planen, inklusive Zeitzone. Microsoft startet den Lauf innerhalb von etwa 15 Minuten um die gewählte Zeit, in Spitzen bis zu einer Stunde später. Zwei Automatismen sollte man kennen: Nach vier Fehlschlägen in Folge schaltet Power BI den Zeitplan ab, und nach zwei Monaten ohne einen einzigen Aufruf des Berichts pausiert er — ein E-Mail-Abonnement verhindert das.
Liegt die Quelle im eigenen Netz, braucht es das On-premises Data Gateway im Standardmodus. Microsoft empfiehlt acht Kerne, 8 GB Arbeitsspeicher und eine SSD auf einem dauerhaft laufenden Windows-Server; ausgeschlossen sind Domänencontroller und Server Core, abgeraten wird von Laptops. Server- und Datenbankname der Gateway-Datenquelle müssen exakt so geschrieben sein wie in Desktop, sonst bietet der Dienst das Gateway gar nicht erst an.
Verteilt wird über Abonnements: bis zu 24 je Bericht, stündlich bis monatlich, auch „am letzten Tag des Monats” oder einmal täglich nach der ersten Datenaktualisierung. Der vollständige Bericht als PDF ist auf 20 Seiten und unter 25 MB begrenzt. Liegt der Arbeitsbereich auf einer Kapazität, funktionieren auch Verteilergruppen und E-Mail-aktivierte Sicherheitsgruppen als Empfänger, Microsoft-365-Gruppen nicht; mit Premium per User sind Gruppenadressen nicht möglich. Und eine Kuriosität aus der Dokumentation: Am Tag nach der Zeitumstellung kommen Abo-Mails doppelt.
Wenn jeder Empfänger nur seine Zeilen sehen soll, etwa jeder Vertriebsleiter seine Region, übernimmt das die Zeilenebenensicherheit mit einer Regel wie dieser:
[UserEmail] = USERPRINCIPALNAME()
Sie wirkt nur für Nutzer mit der Arbeitsbereichsrolle „Viewer”; Mitwirkende, Mitglieder und Administratoren sehen alles. Wichtig für Personaldaten: Wer Zugriff auf einen Bericht hat, hat ohne solche Regeln Zugriff auf das gesamte zugrunde liegende Modell.
Weg 2: Power Automate — der geplante Flow ohne Premium-Lizenz
Microsoft-365-Lizenzen enthalten Power Automate mit geplanten Flows und Standard-Connectoren. Excel Online (Business), OneDrive, SharePoint, Office 365 Outlook und der Power-BI-Connector sind Standard; der SQL-Server-Connector und die HTTP-Aktion sind Premium. Daraus ergibt sich der Flow, den keine Zusatzlizenz braucht:
- Geplanten Cloud-Flow anlegen: Meine Flows → Neuer Flow → Geplanter Cloud-Flow. Im Trigger die Wiederholung wählen, die Zeitzone setzen und unter „Zu diesen Stunden” die Uhrzeit festlegen.
- Excel Online (Business) → In Tabelle vorhandene Zeilen auflisten: Die Aktion heißt im Englischen „List rows present in a table”. Speicherort, Bibliothek, Datei und Tabelle wählen. Die Daten müssen als Excel-Tabelle formatiert sein (Strg+T), sonst erscheint keine Tabelle in der Auswahl. In den Einstellungen der Aktion die Paginierung einschalten, denn ohne sie liefert der Connector nur 256 Zeilen.
- Datenvorgang → Auswählen, um Spalten zu bestimmen, danach HTML-Tabelle erstellen oder CSV-Tabelle erstellen.
- Office 365 Outlook → E-Mail senden (V2): Im Englischen „Send an email (V2)”. Die HTML-Tabelle in den Textkörper und die Option „IsHtml” aktivieren, je nach Oberfläche „Ist HTML”; alternativ die CSV als Anhang mit Dateiname samt Endung.
- Fehlerpfad: eine parallele Verzweigung hinter Schritt 2 mit der Einstellung „Ausführen nach” und der Option für den Fehlerfall (englisch: Configure run after → has failed) und einer Nachricht an ein Teampostfach oder einen Teams-Kanal. Ohne diesen Zweig fällt ein Ausfall erst auf, wenn jemand den Bericht vermisst.
Soll eine PDF-Datei entstehen, hilft OneDrive: „Datei erstellen”, dann eine kurze Verzögerung, dann „Datei konvertieren” mit dem Zieltyp PDF. Die Verzögerung steht in der Dokumentation, ohne sie antwortet die Konvertierung gern mit „Bad gateway”.
Die Grenzen dieses Wegs sind klar dokumentiert: Die Excel-Datei darf höchstens 25 MB groß sein und bleibt bis zu sechs Minuten nach dem letzten Zugriff gesperrt; Pivot-Tabellen liest der Connector nicht. Mit einer Microsoft-365-Lizenz stehen 6.000 Aktionen pro Tag zur Verfügung, jede Schleifenrunde zählt mit. Und Flows arbeiten mit „mindestens einmal”-Semantik: Eine Aktion kann in seltenen Fällen doppelt laufen, ein Berichtsflow sollte deshalb nichts tun, was beim zweiten Mal schadet.
Der Power-BI-Export per Flow und die Kapazitätsfalle
Die Aktion „Export To File for Power BI Reports” verschickt einen Power-BI-Bericht als PDF, PowerPoint oder Bild. Sie ist selbst ein Standard-Connector, setzt aber voraus, dass der Arbeitsbereich auf einer reservierten Kapazität liegt. Mit Pro allein funktioniert sie nicht, mit Premium per User nur für paginierte Berichte und höchstens einen Export alle fünf Minuten. Wer keine Kapazität hat, nimmt das Abonnement aus Weg 1 oder den Excel-Flow oben.
Weg 3: Skript — Python oder PowerShell mit Zeitplan
Ein Skript ist die richtige Wahl, wenn die Daten das Haus nicht verlassen sollen, wenn die Quelle nur im eigenen Netz erreichbar ist oder wenn der Bericht exakt so aussehen muss wie bisher. Wächst das Skript über einen Bericht hinaus, etwa zu einem kleinen Portal mit Anmeldung, wird daraus individuelle Software. Das folgende Python-Beispiel liest per Windows-Anmeldung aus einem SQL Server, verdichtet nach Kunde, schreibt eine Arbeitsmappe mit zwei Blättern und verschickt sie:
import os
import smtplib
from email.message import EmailMessage
import pandas as pd
from pathlib import Path
from sqlalchemy import create_engine, text
from sqlalchemy.engine import URL
# Verbindung über einen System-DSN: ohne Benutzer und Passwort ergänzt SQLAlchemy die Windows-Anmeldung
engine = create_engine(URL.create("mssql+pyodbc", host="erp_dsn"))
# Absoluter Pfad neben dem Skript: geplante Aufgaben starten in einem anderen Arbeitsverzeichnis
datei = Path(__file__).with_name("wochenbericht.xlsx")
sql = text("SELECT Datum, Kunde, Betrag FROM dbo.Umsatz WHERE Datum >= :von")
df = pd.read_sql(sql, engine, params={"von": "2026-09-01"})
bericht = df.groupby("Kunde").agg(
umsatz=pd.NamedAgg(column="Betrag", aggfunc="sum"),
belege=pd.NamedAgg(column="Betrag", aggfunc="count"),
)
with pd.ExcelWriter(datei) as writer:
bericht.to_excel(writer, sheet_name="Umsatz")
df.to_excel(writer, sheet_name="Rohdaten", index=False)
msg = EmailMessage()
msg["Subject"] = "Wochenbericht Umsatz"
msg["From"] = os.environ["REPORT_FROM"]
msg["To"] = os.environ["REPORT_TO"]
msg.set_content("Anbei der automatisch erzeugte Wochenbericht.")
with open(datei, "rb") as fp:
msg.add_attachment(fp.read(), maintype="application", subtype="octet-stream",
filename="wochenbericht.xlsx")
# Host, Port und Verschlüsselung richten sich nach Ihrem Mailserver
with smtplib.SMTP(os.environ["SMTP_HOST"], int(os.environ["SMTP_PORT"])) as smtp:
smtp.starttls()
smtp.login(os.environ["SMTP_USER"], os.environ["SMTP_PASSWORD"])
smtp.send_message(msg)
Zwei Dinge sind daran wichtiger als die Auswertung selbst. Die Abfrage ist parametrisiert, der Wert wird nicht in den SQL-Text geklebt. Und Zugangsdaten stehen in Umgebungsvariablen, nicht im Code. Kommt die Quelle als deutscher CSV-Export, ersetzt eine Zeile die Datenbank:
df = pd.read_csv("export.csv", sep=";", decimal=",", encoding="utf-8")
Dasselbe in PowerShell, mit Versand über Microsoft Graph — Send-MailMessage gilt bei Microsoft als veraltet, weil es keine sichere Verbindung garantiert:
# Abfrage mit Windows-Anmeldung, nur lesend
$rows = Invoke-Sqlcmd -Query "SELECT Kunde, SUM(Betrag) AS Umsatz FROM dbo.Umsatz GROUP BY Kunde" `
-ConnectionString "Data Source=MYSERVER;Initial Catalog=ERP;Integrated Security=True;ApplicationIntent=ReadOnly"
# CSV mit Semikolon, damit deutsches Excel die Spalten erkennt
$datei = Join-Path $PSScriptRoot 'wochenbericht.csv' # absoluter Pfad, die Aufgabe startet woanders
$rows | Export-Csv -Path $datei -Delimiter ';' -NoTypeInformation
# Versand über Microsoft Graph (Berechtigung Mail.Send)
# Anmeldung ohne Benutzer: App-Registrierung mit Anwendungsberechtigung Mail.Send und Zertifikat
Import-Module Microsoft.Graph.Users.Actions
Connect-MgGraph -TenantId $tenantId -ClientId $clientId -CertificateThumbprint $thumbprint
$userId = "reporting@example.com" # Absenderpostfach
$bytes = [Convert]::ToBase64String([IO.File]::ReadAllBytes($datei))
$params = @{
message = @{
subject = "Wochenbericht Umsatz"
body = @{ contentType = "Text"; content = "Anbei der Wochenbericht." }
toRecipients = @( @{ emailAddress = @{ address = "gf@example.com" } } )
attachments = @( @{
"@odata.type" = "#microsoft.graph.fileAttachment"
name = "wochenbericht.csv"
contentType = "text/csv"
contentBytes = $bytes
} )
}
}
Send-MgUserMail -UserId $userId -BodyParameter $params
Den Zeitplan einrichten
Unter Windows registriert PowerShell die Aufgabe, montags um sechs Uhr unter einem Dienstkonto:
$actions = New-ScheduledTaskAction -Execute 'pwsh.exe' -Argument '-File C:\Reports\wochenbericht.ps1'
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 6am
$settings = New-ScheduledTaskSettingsSet -RunOnlyIfNetworkAvailable
$cred = Get-Credential 'DOMAIN\svc-report' # Kennwort wird in der Aufgabe gespeichert
Register-ScheduledTask -TaskName 'Wochenbericht' -Action $actions -Trigger $trigger -Settings $settings `
-User $cred.UserName -Password $cred.GetNetworkCredential().Password
Mit -User und -Password speichert Windows das Kennwort, die Aufgabe läuft auch ohne angemeldeten Benutzer und mit Netzwerkzugriff. Für den Monatsbericht am Monatsletzten kennt schtasks einen eigenen Schalter, auf einem Linux-Server übernimmt cron:
schtasks /create /tn "Monatsbericht" /tr "C:\Reports\monatsbericht.cmd" /sc monthly /mo LASTDAY /st 06:00 /ru DOMAIN\svc-report /rp *
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
Der Klassiker unter den Fehlern: Das Skript läuft von Hand, aber nicht als geplante Aufgabe. Ursache ist fast immer die Option „Kennwort nicht speichern” — die Aufgabe bekommt dann keinen Netzwerkzugriff und erreicht weder Datenbank noch Freigabe. Geplante Berichte brauchen ein Dienstkonto mit gespeichertem Kennwort und UNC-Pfade statt Laufwerksbuchstaben.
Datenqualität und Betrieb: damit der Bericht am Montag stimmt
Ein automatischer Bericht verdient Vertrauen nur, wenn sein Ausfall auffällt und seine Zahlen prüfbar sind. Vier Bausteine gehören in jede Umsetzung:
- Benachrichtigung bei Fehlschlag. Power BI informiert standardmäßig nur den Besitzer; weitere Empfänger tragen Sie in den Aktualisierungseinstellungen ein. Im Flow übernimmt das der Fehlerpfad, im Skript ein
try-Block, der eine eigene Mail verschickt. Achtung: Eine per API oder Power Automate gestartete Aktualisierung löst keine Fehlermail aus. - Plausibilitätsprüfung vor dem Versand. Eine Zeilenzahl von null, ein Umsatz von null oder ein Datum von letzter Woche sind keine Berichte, sondern Störungen. Der Bericht sollte in diesem Fall nicht rausgehen, sondern die Störung.
- Versionierung. Power BI speichert Projekte im PBIP-Format als Textdateien, die sich in Git verwalten lassen; Flows gehören in Lösungen, Skripte ins Repository. Der Bericht „von Kollege Müllers Laptop” ist kein Betriebskonzept.
- Datenschutz. Berichte mit Personenbezug brauchen Zeilenebenensicherheit oder Aggregation. Vertraulichkeitsbezeichnungen wandern beim Export in Excel, PowerPoint und PDF mit, gelten aber nicht für die Vorschau in der Abo-Mail — bei sensiblen Zahlen die Vorschau abschalten. Wo die Daten liegen, zeigt Power BI unter Hilfe → Info als Heimatregion des Mandanten.
Wer den Betrieb nicht selbst stemmen will, bekommt ihn bei uns als Managed Automation: Überwachung, Anpassung bei Schemaänderungen und ein fester Ansprechpartner, wenn am Montag etwas fehlt.
Wenn es klemmt: die häufigsten Fehler
| Symptom | Ursache und Lösung |
|---|---|
| Aktualisierungsplan steht auf „Deaktiviert” | Vier Fehlschläge in Folge oder abgelaufene Anmeldedaten. Ursache beheben, Anmeldedaten der Datenquelle neu eingeben, Plan wieder einschalten. |
| „Das Gateway ist offline oder nicht erreichbar” | Firewall oder Proxy prüfen, Gateway aktualisieren (die geänderte Anmeldung verlangt den Stand ab Mai 2026), Dienst neu starten. |
| Gateway erscheint nicht in den Einstellungen des Modells | Nicht jede Quelle des Modells ist im Gateway angelegt, oder Server- und Datenbankname weichen von Desktop ab. |
Expression.Error: The column 'X' of the table wasn't found | Eine Spalte wurde in der Quelle umbenannt oder entfernt. Den betroffenen Schritt anpassen und neu veröffentlichen; die geplante Aktualisierung gleicht das Schema nicht selbst ab. Seit August 2026 lässt sich das Modellschema im Dienst im Bearbeitungsmodus über Aktualisieren → „Sync schema only” nachziehen. |
DataSource.NotFound | Pfad oder Laufwerk existiert für das ausführende Konto nicht. Vollständigen UNC-Pfad mit Domänennamen verwenden. |
Formula.Firewall beim Kombinieren zweier Quellen | Datenschutzebenen der Quellen passen nicht zusammen; im Gateway erneut setzen, die Werte aus Desktop gelten dort nicht. |
| Anmeldefehler bei SharePoint nach etwa einer Stunde Laden | Das Anmeldetoken läuft nach rund einer Stunde ab. Datenmenge reduzieren oder inkrementell aktualisieren. |
| Zeitwerte im Dienst um eine Stunde verschoben | DateTime.LocalNow liefert im Dienst UTC. UTC-Funktionen nutzen, Zeitzone in den Aktualisierungseinstellungen und im Flow-Trigger setzen. |
| Abo-Mail kommt nicht mehr | Lizenz abgelaufen, Konto gelöscht oder Anmeldung nach Passwortwechsel ungültig; das Abo wird dann still deaktiviert. Absender no-reply-powerbi@microsoft.com freigeben. |
| „Vollständigen Bericht anfügen” ist ausgegraut | Arbeitsbereich ohne Premium per User oder Kapazität, Bericht mit mehr als 20 Seiten (ausgeblendete zählen mit) oder Anhang ab 25 MB. |
| Flow liefert nur 256 Zeilen | Paginierung in der Excel-Aktion einschalten. |
| Excel-Connector meldet 403, 502 oder 429 | 403: kein Schreibzugriff. 502: Datei schreibgeschützt. 429: Drosselung, Verzögerungen einbauen. |
| Geplanter Flow läuft nicht oder zu früh | Startzeit und Zeitzone setzen; Flows ohne Auslösung seit 90 Tagen werden abgeschaltet. |
| Inkrementelles Modell nach erneutem Veröffentlichen leer | Überschreiben aus Desktop löscht die geladenen Partitionen. Änderungen am Modell nur über die XMLA-Schnittstelle einspielen. |
| Skript läuft von Hand, aber nicht geplant | Aufgabe ohne gespeichertes Kennwort hat keinen Netzwerkzugriff. Dienstkonto mit Kennwort und UNC-Pfade verwenden. |
| Power BI Desktop startet auf dem Terminalserver nicht | Prozessor ohne AVX-Befehlssatz oder AVX in der VM nicht durchgereicht. |
Was kostet automatisiertes Reporting?
Die Lizenzseite ist überschaubar: Weg 2 und Weg 3 kommen ohne Zusatzlizenz aus, Weg 1 braucht Pro oder Premium per User für alle Beteiligten; nur auf einer Fabric-Kapazität ab F64 genügt den Betrachtern die kostenlose Lizenz, Ersteller brauchen weiterhin Pro. Die aktuellen Listenpreise stehen bei Microsoft; wir nennen sie hier nicht, weil sie sich regelmäßig ändern. Den größeren Posten bildet der einmalige Aufwand, und der hängt weniger vom Werkzeug ab als von den Daten: Wie sauber ist die Quelle, wie viele Sonderregeln stecken in der alten Excel-Vorlage, wer entscheidet, welche Zahl „der Umsatz” ist? Die Rechnung für den Nutzen ist einfach und gehört vor jedes Projekt: Stunden je Bericht mal Berichte je Jahr mal Stundensatz, plus die Fehler, die heute niemand zählt. Wie wir solche Vorhaben kalkulieren, steht in Was kostet Prozessautomatisierung.
Fazit
Reporting automatisieren ist selten eine Werkzeugfrage. Für die interaktive Auswertung mit vielen Empfängern ist Power BI der richtige Weg, für die wöchentliche Liste aus einer Excel-Tabelle reicht ein Flow ohne Zusatzlizenz, und wenn die Daten im Haus bleiben sollen, erledigt ein Skript mit Zeitplan die Arbeit in fünfzig Zeilen. Den Unterschied zwischen einem Bericht, der läuft, und einem, dem man vertraut, machen in allen drei Fällen dieselben Dinge: eine saubere Quelle, ein Fehlerpfad, der Alarm schlägt, und jemand, der zuständig ist.
Lota Engineering setzt solche Berichte für Unternehmen aus Düsseldorf und dem Rheinland um, von der Anbindung von ERP und Buchhaltung über den fertigen Bericht bis zum Betrieb. Wenn Sie wissen möchten, welcher Weg zu Ihren Daten passt, beginnen Sie mit dem Automatisierungs-Check oder sprechen Sie uns an.
Häufige Fragen.
Brauchen wir für automatisiertes Reporting ein BI-Tool wie Power BI?
Nein. Microsoft-365-Lizenzen enthalten Power Automate mit den Standard-Connectoren für Excel Online, SharePoint, OneDrive und Outlook. Damit lässt sich eine Excel-Tabelle nach Zeitplan auslesen und als HTML-Tabelle oder CSV-Anhang verschicken. Power BI lohnt sich, sobald Empfänger interaktiv filtern sollen, viele Personen dieselben Daten aus unterschiedlicher Sicht brauchen oder jeder nur seine eigenen Zeilen sehen darf.
Kann Power BI einen Bericht automatisch per E-Mail verschicken, auch ohne Premium-Kapazität?
Ja, über E-Mail-Abonnements: Mit einer Pro- oder PPU-Lizenz abonnieren Sie sich selbst; um Kollegen zu abonnieren, brauchen Sie zusätzlich mindestens die Rolle Mitwirkender im Arbeitsbereich, und die Kollegen brauchen zum Öffnen des Berichts ebenfalls Pro oder PPU. Verschickt wird eine Vorschau mit Link, stündlich, täglich, wöchentlich, monatlich oder einmal täglich nach der ersten Datenaktualisierung. Der vollständige Bericht als PDF-Anhang setzt Premium per User oder eine Kapazität voraus, externe Empfänger nur eine bezahlte Kapazität. Die Power-Automate-Aktion „Export To File for Power BI Reports" verlangt eine Kapazität; Premium per User genügt dort nicht.
Können wir unsere bestehenden Excel-Vorlagen weiterverwenden?
Ja, das ist sogar der schnellste Einstieg. Voraussetzung für Power Automate ist, dass die Daten als Excel-Tabelle formatiert sind und die Datei in OneDrive oder SharePoint liegt. Für den Skript-Weg schreibt pandas die Ergebnisse in eine Arbeitsmappe mit mehreren Blättern; eine gestaltete Vorlage lässt sich mit openpyxl öffnen und befüllen.
Unsere Daten liegen auf einem SQL Server im Haus. Wie kommt die Cloud daran?
Über das On-premises Data Gateway im Standardmodus auf einem dauerhaft laufenden Windows-Server, nicht auf einem Laptop und nicht auf einem Domänencontroller. Der persönliche Modus ist nur für einzelne Autoren gedacht und lässt sich nicht teilen. In Power Automate ist der SQL-Server-Connector zusätzlich ein Premium-Connector. Wer beides vermeiden will, lässt ein Skript im eigenen Netz laufen.
Wie oft kann Power BI die Daten aktualisieren?
Mit Pro bis zu achtmal am Tag, mit Premium per User oder einer Fabric-Kapazität bis zu 48-mal. Eine Aktualisierung muss in der geteilten Kapazität innerhalb von zwei Stunden fertig sein, in Premium innerhalb von fünf. Schlägt sie viermal hintereinander fehl, schaltet Power BI den Zeitplan ab und informiert den Besitzer.
Warum kommt mein Bericht seit der Zeitumstellung eine Stunde zu früh?
Weil der Power-BI-Dienst und Power Automate intern in UTC rechnen. In Power Query liefert DateTime.LocalNow im Dienst die UTC-Zeit, und ein Zeitplan ohne ausdrücklich gesetzte Zeitzone verschiebt sich mit der Sommerzeit. Setzen Sie die Zeitzone im Trigger und in den Aktualisierungseinstellungen und rechnen Sie in Abfragen konsequent mit UTC-Funktionen.
Passende Leistungen.
Ratgeber zum Thema.
Cloud oder eigener Server? Die ehrliche Entscheidung
Skalierung und Wartungsfreiheit gegen Latenz, Datenhoheit und laufende Kosten: Wann sich die Cloud lohnt, wann der eigen…
Lesen CloudMicrosoft-365-Lizenzen vergleichen: welcher Plan passt?
Business Basic, Standard, Premium oder doch Enterprise? Welche Funktionen die Pläne wirklich unterscheiden, welche Fehlk…
Lesen IT-PraxisReporting automatisieren: Power BI, Power Automate, Skript
Montagmorgen, Export ziehen, SVERWEIS, Pivot, PDF, Mail: So ersetzen Sie den Handbetrieb durch automatisiertes Reporting…
Lesen