Zum Hauptinhalt springen
Power BI

Power BI-Kalendertabellen

Level: Anfänger

Erstveröffentlichung Mai 2015, Aktualisierung Februar 2021. Viele Aspekte dieses Artikels gelten auch für Power Pivot für Excel.

Technisch gesehen benötigen Sie keine Kalendertabelle, um Power BI zu verwenden. Power BI verfügt über eine integrierte Datumsfunktion namens "Automatic Time Intelligence". Die eingebaute Kapazität ist jedoch sehr einfach und hat einige negative Nebenwirkungen. In diesem Artikel beschreibe ich, was sofort einsatzbereit ist und wie Sie Ihre eigene Kalendertabelle bevorzugen.

Automatische Zeitintelligenz

Automatische Zeitintelligenz ist die Methode von Microsoft, mit der Daten auf einfache Weise in die Konzepte von Monaten, Quartalen und Jahren "aufgerollt" werden können. Diese Funktion ist standardmäßig aktiviert. Sie können die Einstellungen finden (und ändern), indem Sie Power BI Desktop öffnen und wie unten gezeigt zu Dateioptionen und Einstellungsoptionen navigieren. Im Abschnitt Globales Laden von Daten (siehe unten) können Sie diese Funktion dauerhaft aktivieren oder deaktivieren.

auto-ti-8320435

Sie können auch zum Laden der aktuellen Dateidaten navigieren und diese nur für die aktive Arbeitsmappe aktivieren / deaktivieren (siehe Abbildung unten).

auto-ti-for-file-9434340

Automatische Zeitintelligenz ist in ihren Fähigkeiten sehr grundlegend und weist eine Reihe von Problemen auf.

  • Es funktioniert nur in Kalenderjahren (nicht in Geschäftsjahren, es sei denn, Sie haben das Glück, dass Ihr Geschäftsjahr das Kalenderjahr ist).
  • Es ist immer auf der Ebene der Granularität des Tages.
  • Es sammelt sich nur von Tagen bis Monaten, Quartalen und Jahren. Es werden keine Wochen, Quartale, ISO (445) -Kalender oder andere unternehmensspezifische Zeiträume behandelt, die möglicherweise erforderlich sind.
  • Erstellen Sie 1 versteckte Kalendertabelle für jede Datumsspalte in Ihrem Bericht. Diese Tatsache kann dazu führen, dass die Größe Ihres Buches viel größer wird als sonst.
  • Jede Kalendertabelle ist unabhängig. Es gibt keinen Weg dazu Modell- Ein einzelner Slicer zum Filtern mehrerer Datumsspalten (obwohl dies in der Benutzeroberfläche durch Gruppieren von Slicern erfolgen kann).

Diese automatische Zeitintelligenz richtet sich wirklich an absolute Anfänger, die nicht lernen möchten, wie sie ihre eigenen Daten modellieren. Meiner Meinung nach sollten Sie diese Funktion deaktivieren und stattdessen Ihre eigene Kalendertabelle erstellen.

Gründe für die Verwendung einer Power BI-Kalendertabelle

Es gibt viele gute Gründe, eine eigene Kalendertabelle zu erstellen. Wenn Sie eine eigene Kalendertabelle erstellen, können Sie:

  • Verwenden Sie die Filterleistung von Power BI, um Ihre Berichte schnell und agil zu gestalten, indem Sie auf die relevanten Datenspalten zugreifen, die Teil der Kalendertabelle sind.
  • Filtern Sie Ihre Berichte nach Attributen wie Jahr, Monat, Quartal in beliebig vielen Datentabellen (z. B. Ist-Umsatz, Budgetierter Umsatz, Verfügbarer Bestand) sowie nach jeder anderen Zeitaggregation, die Sie für Ihr Unternehmen benötigen.
  • Erstellen Sie eine eigene benutzerdefinierte Zeitansicht, die sich möglicherweise von einem Standardkalender (z. B. einem 4/4/5-Kalender) unterscheidet, und / oder erstellen Sie eine eigene Definition eines Geschäftsjahres.
  • Erstellen Sie Kalendertabellen für Zeiträume, die nicht auf der Ebene "Tag" liegen, z. B. Monat, Jahr, Minute usw.
  • Erstellen Sie Konzepte wie eine Time Intelligence-Kalendertabelle. Sie können verwendet werden, um es einem Benutzer zu ermöglichen, einen Zeithorizont eines Segments auszuwählen (z. B. Heute, Gestern, Diese Woche, Letztes Jahr) und den Bericht automatisch zu aktualisieren, um diesen Zeitraum widerzuspiegeln.

In einigen Situationen müssen Sie lediglich eine Kalendertabelle haben:

  • Wenn Sie einige der erweiterten integrierten Zeitintelligenzfunktionen in DAX verwenden möchten (z. B. rollierende 13-Wochen-Verkäufe).
  • Hochladen und Berichten von Daten, die nicht der Granularität des Tages entsprechen.

Wenn Sie eine "Standard" -Kalendertabelle laden (Regeln unten), können Sie die integrierten Time Intelligence-Funktionen verwenden. Zusätzlich zu den integrierten Funktionen gibt es andere Möglichkeiten, Zeitintelligenzformeln zu erstellen. Im Allgemeinen ist der DAX jedoch etwas komplexer. Dazu später mehr.

Super-Charge-Power-Bi-Ad_2-1024x128-2704066

Regeln für eine Standardkalendertabelle

Hier sind die Regeln zum Erstellen einer konformen Standardkalendertabelle. Sie müssen diese Regeln befolgen wenn Sie Zeitintelligenzfunktionen verwenden möchten. Sie müssen diese Regeln nicht befolgen Wenn Sie die integrierten Funktionen für Zeitintelligenz nicht benötigen / verwenden möchten (aber immer noch eine gute Vorgehensweise, insbesondere wenn Ihre Daten eine Granularität auf Tagesniveau aufweisen).

  • Sie müssen eine Datumsspalte in Ihrer Kalendertabelle haben
  • Die Daten in dieser Spalte müssen in einem zusammenhängenden Bereich liegen, der den gesamten Zeitraum Ihrer Daten vom ersten Tag des ersten Jahres Ihrer Daten bis zum letzten Tag des letzten Jahres Ihrer Daten abdeckt:
    • Keine fehlenden Daten. Es spielt keine Rolle, ob Sie an Wochenenden nicht arbeiten, Sie MÜSSEN ALLE Daten in die Kalendertabelle aufnehmen, einschließlich Wochenenden.
    • Keine doppelten Daten
  • Die Kalendertabelle kann sein markiert als "Datumstabelle" (Angabe der Datumsspalte, wenn Sie dazu aufgefordert werden).
    Mark-as-Date-Tabelle-3796289
    • Sie sollten diesen Schritt verwenden, wenn die Kalendertabelle mit einem Ersatzschlüssel mit einer Datentabelle verknüpft wird (z. B. wenn sich Ihre Verknüpfung in einer Textspalte wie TTMMJJJJ befindet, bei der es sich technisch gesehen um Text und nicht um ein Datum handelt).
    • Sie sollten diesen Schritt verwenden, wenn Sie schnelle Maßnahmen verwenden möchten, um Zeitintelligenzfunktionen mithilfe Ihrer eigenen Kalendertabelle zu schreiben.
    • Abgesehen von den beiden oben genannten Szenarien ist dieser Schritt es ist nicht obligatorisch damit die Kalendertabelle funktioniert.

Zusätzliche Merkmale einer guten Kalendertabelle

Zusätzlich zu den oben genannten obligatorischen Funktionen (damit die integrierte Zeitintelligenz funktioniert) müssen Sie einige Dinge tun, um die von Ihnen erstellte Kalendertabelle optimal zu nutzen.

  • Fügen Sie Spalten für jedes Zeitattribut ein, das Sie in Ihren Berichten verwenden möchten. Zum Beispiel Jahr, Monat, Woche, Tag, Wochenname usw.
  • Fügen Sie eine Ganzzahl-ID-Spalte ein, die bei 1 beginnt und für jede relevante Spalte im Kalender um 1 erhöht wird. Erstellen Sie beispielsweise eine MonthID-Spalte, die bei 1 beginnt und sich für jeden Monat um 1 erhöht, ohne am Ende eines jeden Jahres neu zu starten (1,2,3,… 12,13,14 usw.). Dies ist sehr nützlich, um benutzerdefinierte DAX-Time-Intelligence-Formeln zu schreiben.
  • Fügen Sie für jede Alpha-Spalte, die in einer bestimmten Reihenfolge sortiert werden muss, eine numerische Spalte ein. Dies liegt daran, dass die Power BI-Spalten immer in alphanumerischer Reihenfolge sortiert sind. Daher wird die Spalte für den Monat nach April, August, Dezember, Februar anstatt nach Januar, Februar, März und April sortiert. Sie müssen eine numerische Monatsspalte einfügen, bevor Sie Power BI anweisen können, die Alpha-Monatsspalte in einer anderen Reihenfolge zu sortieren. Verwenden Sie die Schaltfläche "Nach Spalte sortieren" in Power BI, um die Standardsortierreihenfolge der Alpha-Spalte zu ändern. Beachten Sie auch, dass die numerische Rangspalte eine 1: 1-Beziehung zur Alpha-Spalte haben muss. Das heißt, es muss 1 und nur 1 Wert in der numerischen Spalte für jeden Wert in der Alpha-Spalte vorhanden sein. (Beachten Sie, dass dies der einfachste Weg zur Implementierung ist. Beachten Sie jedoch, dass es technisch gesehen nicht 1 zu 1 sein muss. Lesen Sie darüber in Daniils Blog Hier )
Vielleicht interessieren Sie sich >>>  So geben Sie Daten in Power BI ein

sort-by-column-2021933

Super-Charge-Power-Bi-Ad_1-1024x128-7785178

So verbinden Sie Datentabellen mit einer Kalendertabelle

Laden Sie Ihre Kalendertabelle in das Power BI-Datenmodell. Dann müssen Sie Ihre Datentabellen mit der Kalendertabelle verbinden Verwenden der Datumsspalte aus beiden Tabellen. Es ist auch möglich, Ihre Datentabelle mit der Kalendertabelle zu verbinden, indem Sie eine Datumsschlüsselspalte (Ersatzschlüssel) anstelle einer Datumsspalte verwenden. Dies ist häufiger der Fall, wenn Ihre Kalendertabelle eine andere Granularität als "Tag" aufweist, z. B. Woche, Monat usw.

Unten habe ich eine Datentabelle mit der Datumstabelle in beiden mit der Kalendertabelle verbunden.

Datum-Tabelle-Beziehung-5217979

So erstellen Sie eine Kalendertabelle

Es gibt verschiedene Möglichkeiten, eine Kalendertabelle für Power BI zu erstellen.

  • Laden Sie es aus einem Datenspeicher (falls vorhanden)
  • Erstellen Sie eine in Excel
  • Erstellen Sie eine in Power Query
  • Verwenden Sie DAX-Tabellenfunktionen

Excel-Kalendertabellen

Ich denke, Excel ist am flexibelsten, da Sie jeden Wert, den Sie benötigen, fest codieren können. Dies kann hilfreich sein, wenn Sie variable Geschäftsregeln für den Beginn Ihres Jahres haben (z. B. für 445 Kalender). Erstellen Sie einfach ein leeres Arbeitsblatt und fügen Sie die gewünschten Spalten hinzu. Sie können Formeln in Ihren Spalten verwenden, um die Werte für Jahr, Monat usw. zu berechnen. Beispielsweise können Sie mit = YEAR ([Date]) eine Jahresspalte aus Ihrer Datumsspalte erstellen, obwohl dies im Allgemeinen nur für reguläre Kalender funktioniert (nicht für 4/4/5-Kalender usw.). Codieren Sie einfach die Werte, die keiner Formellogik folgen.

image_thumb3-6677933

Importieren Sie Ihre Excel-Arbeitsmappendaten in jede Power BI-Arbeitsmappe, in der Sie eine Kalendertabelle benötigen.

Power Query-Kalendertabellen

Mein bevorzugter Ansatz zum Erstellen einer Kalendertabelle ist die Verwendung von Power Query. Sobald Sie die Abfrage eingegeben haben, wird sie "gesetzt und vergessen". Die Tabelle wächst mit der Zeit automatisch (was bei Excel nicht der Fall ist). Ich habe einen separaten Blog-Beitrag dazu in Power Query.

https://exceleratorbi.com.au/build-reusable-calendar-table-power-query/

Um eine vollständige Lektion zur Verwendung von Power Query zu erhalten, lesen Sie die Details zum Schulungskurs, indem Sie auf das Bild unten klicken.

pq-data-trasfomration_banner-300x41-1460549

DAX-Tabellenfunktionen

Obwohl es möglich ist, eine Kalendertabelle mit DAX-Funktionen zu erstellen, empfehle ich diesen Ansatz nicht. Ich glaube daran, Power Query zu verwenden, um Daten vorzubereiten, wann immer dies möglich ist. Dies ist meine Empfehlung für die meisten Anwendungsfälle. Du kannst den ... benutzen SQLBI-Kalendertabellenvorlage Wenn Sie DAX verwenden möchten. Aber seien Sie vorsichtig, der DAX verfügt über 1.500 Codezeilen.

So verwenden Sie einen Wochen- oder Monatskalender

Bisher habe ich nur über Tageskalender gesprochen. Wenn Sie die integrierten Time Intelligence-Funktionen verwenden möchten, müssen Sie einen Tageskalender wie oben beschrieben verwenden. Wenn Ihre Daten jedoch eine wöchentliche oder monatliche Granularität aufweisen und Sie die integrierten Time Intelligence-Funktionen nicht verwenden möchten / müssen, können Sie einen wöchentlichen oder monatlichen Kalender verwenden. Der Unterschied besteht darin, dass die integrierten Zeitintelligenzfunktionen nicht funktionieren. Beachten Sie, dass Sie weiterhin Ihre eigenen benutzerdefinierten Zeitintelligenzformeln erstellen können, der DAX jedoch im Allgemeinen schwieriger zu schreiben ist (DAX der mittleren Ebene).

Zum Beispiel stattdessen

Gesamtumsatz FYTD = TOTALYTD ([Gesamtumsatz], 'Kalender' [Datum], "30/6")

Sie müssten so etwas schreiben

Gesamtumsatz FYTD = BERECHNEN ([Gesamtumsatz], FILTER (ALL ('Kalender'), 'Kalender' [FinYear] = MAX ('Kalender' [FinYear]) && 'Kalender' [FinWeek] <= MAX ('Kalender') [FinWeek])))

Ich habe einen vollständigen Blog-Beitrag über Wetterinformationen hier https://exceleratorbi.com.au/dax-time-intelligence-beginners/

Außerdem verwenden Sie in einem Wochen- oder Monatskalender im Allgemeinen keine Datumsspalte, sondern erstellen stattdessen eine andere eindeutige Zeitstempel-ID, um die Tabellen zu verbinden. Sie können beispielsweise eine Spalte wie JJJJWW als Schlüssel erstellen (2101 für Woche 1 von 2021, 2102 für Woche 2 von 2021 usw.). Stellen Sie einfach sicher, dass dieselbe Logik in Ihrer Kalendertabelle und auch in Ihren Datentabellen verwendet wird. Gleiches gilt, wenn Sie Monate als Granularität Ihrer Daten verwenden möchten. Dies ist ein Ausschnitt aus einem typischen Wochenkalender, bei dem die Spalte FinYearWeek als Schlüssel zum Beitritt zur Verkaufstabelle verwendet wird.

Wochenkalender-Tabelle-8496017

Beachten Sie, dass es wichtig ist, für eine Schlüsselspalte JJJJMM und nicht MMJJJJ zu verwenden. JJJJMM wird natürlich in chronologischer Reihenfolge sortiert, MMJJJJ nicht.

Error: Beachtung: Geschützter Inhalt.