Datumstabellen in Power Pivot sind für das Durchsuchen und Berechnen von Daten im Zeitverlauf unerlässlich. Dieser Artikel enthält umfassende Kenntnisse zu Datumstabellen und deren Erstellung in Power Pivot. In diesem Artikel wird insbesondere Folgendes beschrieben:
-
Warum eine Datumstabelle wichtig ist, um Daten nach Datum und Uhrzeit zu durchsuchen und zu berechnen.
-
Verwenden von Power Pivot zum Hinzufügen einer Datumstabelle zum Datenmodell
-
Hier erfahren Sie, wie Sie neue Datumsspalten wie Jahr, Monat und Zeitraum in einer Datumstabelle erstellen.
-
Erstellen von Beziehungen zwischen Datumstabellen und Faktentabellen
-
So arbeiten Sie mit der Zeit.
Dieser Artikel richtet sich an Benutzer, die noch nicht mit Power Pivot in Verbindung stehen. Es ist jedoch wichtig, dass Sie bereits über ein gutes Verständnis für das Importieren von Daten, das Erstellen von Beziehungen und das Erstellen berechneter Spalten und Measures verfügen.
In diesem Artikel wird nicht beschrieben, wie DAX-Time-Intelligence-Funktionen in Measureformeln verwendet werden. Weitere Informationen zum Erstellen von Measures mit DAX-Zeitintelligenzfunktionen finden Sie unter Zeitintelligenz in Power Pivot in Excel.
Hinweis: In Power Pivot sind die Namen "Measure" und "berechnetes Feld" synonym. Wir verwenden das Namensmeasure in diesem Artikel. Weitere Informationen finden Sie unter Measures in Power Pivot.
Inhalt
Grundlegendes zu Datumstabellen
Fast alle Datenanalysen umfassen das Durchsuchen und Vergleichen von Daten über Datums- und Uhrzeitangaben. Beispielsweise können Sie Umsatzbeträge für das abgelaufene Geschäftsquartal summieren und diese Summen dann mit anderen Quartalen vergleichen, oder Sie möchten einen Monatsabschluss für ein Konto berechnen. In jedem dieser Fälle verwenden Sie Datumsangaben zum Gruppieren und Aggregieren von Verkaufstransaktionen oder Salden für einen bestimmten Zeitraum.
Power View-Bericht
Eine Datumstabelle kann viele verschiedene Darstellungen von Datums- und Uhrzeitangaben enthalten. Beispielsweise enthält eine Datumstabelle häufig Spalten wie Geschäftsjahr, Monat, Quartal oder Zeitraum, die Sie als Felder aus einer Feldliste auswählen können, wenn Sie Ihre Daten in PivotTables oder Power View-Berichten aufteilen und filtern.
Power View-Feldliste
Damit Datumsspalten wie Jahr, Monat und Quartal alle Datumsangaben in ihrem jeweiligen Bereich enthalten, muss die Datumstabelle mindestens eine Spalte mit einem zusammenhängenden Satz von Datumsangaben enthalten. Das heißt, diese Spalte muss eine Zeile für jeden Tag für jedes Jahr enthalten, das in der Datumstabelle enthalten ist.
Wenn die Daten, die Sie durchsuchen möchten, z. B. Datumsangaben vom 1. Februar 2010 bis zum 30. November 2012 aufweisen und Sie ein Kalenderjahr melden, benötigen Sie eine Datumstabelle mit mindestens einem Datumsbereich vom 1. Januar 2010 bis zum 31. Dezember 2012. Jedes Jahr in Ihrer Datumstabelle muss alle Tage für jedes Jahr enthalten. Wenn Sie Ihre Daten regelmäßig mit neueren Daten aktualisieren, sollten Sie das Enddatum um ein oder zwei Jahre hinaus ausführen, sodass Sie Ihre Datumstabelle im Lauf der Zeit nicht aktualisieren müssen.
Datumstabelle mit einem zusammenhängenden Satz von Datumsangaben
Wenn Sie einen Bericht über ein Geschäftsjahr erstellen, können Sie eine Datumstabelle mit einem zusammenhängenden Satz von Datumsangaben für jedes Geschäftsjahr erstellen. Wenn Ihr Geschäftsjahr beispielsweise am 1. März beginnt und Sie Daten für die Geschäftsjahre 2010 bis zum aktuellen Datum (z. B. im Geschäftsjahr 2013) haben, können Sie eine Datumstabelle erstellen, die am 01.03.2009 beginnt und mindestens jeden Tag in jedem Geschäftsjahr bis zum letzten Datum im Geschäftsjahr 2013 einschließt.
Wenn Sie sowohl zum Kalenderjahr als auch zum Geschäftsjahr berichten, müssen Sie keine separaten Datumstabellen erstellen. Eine einzelne Datumstabelle kann Spalten für ein Kalenderjahr, ein Geschäftsjahr und sogar einen dreizehn Kalender für einen Zeitraum von vier Wochen enthalten. Wichtig ist, dass Ihre Datumstabelle einen zusammenhängenden Satz von Datumsangaben für alle enthaltenen Jahre enthält.
Hinzufügen einer Datumstabelle zum Datenmodell
Es gibt mehrere Möglichkeiten, wie Sie dem Datenmodell eine Datumstabelle hinzufügen können:
-
Importieren aus einer relationalen Datenbank oder einer anderen Datenquelle.
-
Erstellen Sie eine Datumstabelle in Excel, und kopieren Sie dann eine neue Tabelle in Power Pivot, oder verknüpfen Sie sie mit dieser Tabelle.
-
Importieren sie aus Microsoft Azure Marketplace.
Sehen wir uns die einzelnen Elemente genauer an.
Importieren aus einer relationalen Datenbank
Wenn Sie einige oder alle Daten aus einem Data Warehouse oder einem anderen relationalen Datenbanktyp importieren, besteht die Wahrscheinlichkeit, dass bereits eine Datumstabelle und Beziehungen zwischen ihr und den restlichen Daten vorhanden sind, die Sie importieren. Die Datumsangaben und das Format stimmen wahrscheinlich mit den Datumsangaben in Ihren Faktendaten überein, und die Daten beginnen wahrscheinlich gut in der Vergangenheit und gehen weit in die Zukunft. Die Datumstabelle, die Sie importieren möchten, ist möglicherweise sehr groß und enthält einen Bereich von Datumsangaben, der über das hinausgeht, was Sie in Ihr Datenmodell aufnehmen müssen. Sie können die erweiterten Filterfunktionen des Tabellenimport-Assistenten von Power Pivot verwenden, um selektiv nur die Datumsangaben und die bestimmten Spalten auszuwählen, die Sie wirklich benötigen. Dies kann die Größe Ihrer Arbeitsmappe erheblich verringern und die Leistung verbessern.
Tabellenimport-Assistent
In den meisten Fällen müssen Sie keine zusätzlichen Spalten wie Geschäftsjahr, Woche, Monatsname usw. erstellen, da sie bereits in der importierten Tabelle vorhanden sind. In einigen Fällen müssen Sie jedoch, nachdem Sie die Datumstabelle in Ihr Datenmodell importiert haben, je nach einem bestimmten Berichtsbedarf zusätzliche Datumsspalten erstellen. Glücklicherweise ist dies mit DAX einfach zu tun. Weitere Informationen zum Erstellen von Datumstabellenfeldern finden Sie später. Jede Umgebung ist anders. Wenn Sie nicht sicher sind, ob Ihre Datenquellen über eine zugehörige Datums- oder Kalendertabelle verfügen, wenden Sie sich an ihren Datenbankadministrator.
Erstellen einer Datumstabelle in Excel
Sie können eine Datumstabelle in Excel erstellen und diese dann in eine neue Tabelle im Datenmodell kopieren. Dies ist wirklich ganz einfach und bietet Ihnen viel Flexibilität.
Wenn Sie eine Datumstabelle in Excel erstellen, beginnen Sie mit einer einzelnen Spalte mit einem zusammenhängenden Datumsbereich. Sie können dann zusätzliche Spalten wie Jahr, Quartal, Monat, Geschäftsjahr, Zeitraum usw. im Excel-Arbeitsblatt erstellen, indem Sie Excel-Formeln verwenden, oder sie können nach dem Kopieren der Tabelle in das Datenmodell als berechnete Spalten erstellt werden. Das Erstellen zusätzlicher Datumsspalten in Power Pivot wird weiter unten in diesem Artikel im Abschnitt Hinzufügen neuer Datumsspalten zur Datumstabelle beschrieben.
Vorgehensweise: Erstellen einer Datumstabelle in Excel und Kopieren in das Datenmodell
-
Geben Sie in Excel in einem leeren Arbeitsblatt in Zelle A1 einen Spaltenüberschriftennamen ein, um einen Datumsbereich zu identifizieren. In der Regel istdies etwas wie Date, DateTime oder DateKey.
-
Geben Sie in Zelle A2 ein Anfangsdatum ein. Beispiel: 1.01.2010.
-
Klicken Sie auf den Füllpunkt, und ziehen Sie ihn nach unten zu einer Zeilennummer, die ein Enddatum enthält. Beispiel: 31.12.2016.
-
Wählen Sie alle Zeilen in der Spalte Date (einschließlich des Headernamens in Zelle A1) aus.
-
Klicken Sie in der Gruppe Formatvorlagen auf Als Tabelle formatieren, und wählen Sie dann eine Formatvorlage aus.
-
Klicken Sie im Dialogfeld Als Tabelle formatieren auf OK.
-
Kopieren Sie alle Zeilen, einschließlich der Kopfzeile.
-
Klicken Sie in Power Pivot auf der Registerkarte Start auf Einfügen.
-
Geben Sie unter Vorschau einfügen > Tabellenname einen Namen ein, z. B. Datum oder Kalender. Lassen Sie erste Zeile als Spaltenüberschriftenverwenden aktiviert, und klicken Sie dann auf OK.
Die neue Datumstabelle (in diesem Beispiel mit dem Namen Calendar) in Power Pivot sieht wie folgt aus:
Hinweis: Sie können auch eine verknüpfte Tabelle erstellen, indem Sie zum Datenmodell hinzufügen verwenden. Dadurch wird die Arbeitsmappe jedoch unnötig groß, da die Arbeitsmappe zwei Versionen der Datumstabelle enthält. eine in Excel und eine in Power Pivot.
Hinweis: Das Namensdatum ist ein Schlüsselwort in Power Pivot. Wenn Sie die Tabelle benennen, die Sie in Power Pivot Date erstellen, müssen Sie den Tabellennamen in einfache Anführungszeichen in DAX-Formeln einschließen, die in einem Argument darauf verweisen. Alle Beispielbilder und Formeln in diesem Artikel beziehen sich auf eine datumstabelle, die in Power Pivot mit dem Namen Kalender erstellt wurde.
Sie verfügen nun über eine Datumstabelle in Ihrem Datenmodell. Sie können neue Datumsspalten wie Jahr, Monat usw. mithilfe von DAX hinzufügen.
Hinzufügen neuer Datumsspalten zur Datumstabelle
Eine Datumstabelle mit einer einzelnen Datumsspalte, die eine Zeile für jeden Tag für jedes Jahr enthält, ist wichtig, um alle Datumsangaben in einem Datumsbereich zu definieren. Es ist auch erforderlich, um eine Beziehung zwischen der Faktentabelle und der Datumstabelle zu erstellen. Diese einzelne Datumsspalte mit einer Zeile für jeden Tag ist jedoch bei der Analyse nach Datumsangaben in einem PivotTable- oder Power View-Bericht nicht hilfreich. Die Datumstabelle soll Spalten enthalten, mit denen Sie Ihre Daten für einen Bereich oder eine Gruppe von Datumsangaben aggregieren können. Sie können z. B. Umsatzbeträge nach Monat oder Quartal summieren oder ein Measure erstellen, das das Wachstum im Jahresverlauf berechnet. In jedem dieser Fälle benötigt Ihre Datumstabelle Jahres-, Monats- oder Quartalsspalten, mit denen Sie Ihre Daten für diesen Zeitraum aggregieren können.
Wenn Sie Ihre Datumstabelle aus einer relationalen Datenquelle importiert haben, enthält sie möglicherweise bereits die verschiedenen Typen von Datumsspalten, die Sie möchten. In einigen Fällen können Sie einige dieser Spalten ändern oder zusätzliche Datumsspalten erstellen. Dies gilt insbesondere, wenn Sie eine eigene Datumstabelle in Excel erstellen und in das Datenmodell kopieren. Glücklicherweise ist das Erstellen neuer Datumsspalten in Power Pivot mit Datums- und Uhrzeitfunktionen in DAX ganz einfach.
Tipp: Wenn Sie noch nicht mit DAX gearbeitet haben, ist der Schnellstart: Erlernen von DAX-Grundlagen in 30 Minuten auf Office.com ein guter Ausgangspunkt für das Lernen.
DAX-Datums- und Uhrzeitfunktionen
Wenn Sie schon einmal mit Datums- und Uhrzeitfunktionen in Excel-Formeln gearbeitet haben, sind Sie wahrscheinlich mit den Datums- und Uhrzeitfunktionen vertraut. Obwohl diese Funktionen ihren Entsprechungen in Excel ähneln, gibt es einige wichtige Unterschiede:
-
DAX-Funktionen für Datum und Uhrzeit verwenden einen datetime-Datentyp.
-
Sie können Werte aus einer Spalte als Argument verwenden.
-
Sie können verwendet werden, um Datumswerte zurückzugeben und/oder zu bearbeiten.
Diese Funktionen werden häufig beim Erstellen benutzerdefinierter Datumsspalten in einer Datumstabelle verwendet, daher sind sie wichtig zu verstehen. Wir verwenden eine Reihe dieser Funktionen, um Spalten für Year, Quarter, FiscalMonth usw. zu erstellen.
Hinweis: Datums- und Uhrzeitfunktionen in DAX sind nicht identisch mit Zeitintelligenzfunktionen. Erfahren Sie mehr über Zeitintelligenz in Power Pivot in Excel.
DAX umfasst die folgenden Datums- und Uhrzeitfunktionen:
Es gibt auch viele andere DAX-Funktionen, die Sie in Ihren Formeln verwenden können. Viele der hier beschriebenen Formeln verwenden beispielsweise mathematische und trigonometrische Funktionen wie MOD und TRUNC, logische Funktionen wie IF und Textfunktionen wie FORMAT Weitere Informationen zu anderen DAX-Funktionen finden Sie im Abschnitt Zusätzliche Ressourcen weiter unten in diesem Artikel.
Formelbeispiele für ein Kalenderjahr
In den folgenden Beispielen werden Formeln beschrieben, die zum Erstellen zusätzlicher Spalten in einer Datumstabelle namens Calendar verwendet werden. Eine Spalte mit dem Namen Date ist bereits vorhanden und enthält einen zusammenhängenden Datumsbereich vom 1.1.2010 bis zum 31.12.2016.
Jahr
=JAHR([Datum])
In dieser Formel gibt die FUNKTION YEAR das Jahr aus dem Wert in der Spalte Date zurück. Da der Wert in der Spalte Date den datetime-Datentyp aufweist, weiß die FUNKTION YEAR, wie das Jahr daraus zurückgegeben wird.
Monat
=MONTH([date])
In dieser Formel können wir ähnlich wie bei der YEAR-Funktion einfach die MONTH-Funktion verwenden, um einen Monatswert aus der Spalte Date zurückzugeben.
Quartal
=INT(([Monat]+2)/3)
In dieser Formel verwenden wir die FUNKTION INT , um einen Datumswert als ganze Zahl zurückzugeben. Das Argument, das wir für die INT-Funktion angeben, ist der Wert aus der Spalte Month, fügen Sie 2 hinzu, und dividieren Sie diese dann durch 3, um unser Quartal von 1 bis 4 zu erhalten.
Month Name
=FORMAT([Datum],"mmmm")
In dieser Formel verwenden wir zum Abrufen des Monatsnamens die FORMAT-Funktion , um einen numerischen Wert aus der Spalte Date in Text zu konvertieren. Wir geben die Spalte Date als erstes Argument und dann das Format an. wir möchten, dass der Monatsname alle Zeichen anzeigt, daher verwenden wir "mmmm". Unser Ergebnis sieht wie folgt aus:
Wenn wir den auf drei Buchstaben abgekürzten Monatsnamen zurückgeben möchten, verwenden wir "mmm" im Format-Argument.
Wochentag
=FORMAT([Datum],"ddd")
In dieser Formel verwenden wir die FORMAT-Funktion, um den Tagnamen abzurufen. Da wir nur einen abgekürzten Tagnamen benötigen, geben wir "ddd" im Format-Argument an.
Beispiel-PivotTable
Sobald Sie Felder für Datumsangaben wie Jahr, Quartal, Monat usw. haben, können Sie diese in einer PivotTable oder einem Bericht verwenden. Die folgende Abbildung zeigt z. B. das Feld SalesAmount aus der Faktentabelle Sales in VALUES und Year and Quarter aus der Dimensionstabelle Calendar in ROWS. SalesAmount wird für den Jahres- und Quartalskontext aggregiert.
Formelbeispiele für ein Geschäftsjahr
Fiscal Year
=WENN([Monat]<= 6;[Jahr],[Jahr]+1)
In diesem Beispiel beginnt das Geschäftsjahr am 1. Juli.
Es gibt keine Funktion, die ein Geschäftsjahr aus einem Datumswert extrahieren kann, da sich das Start- und Enddatum eines Geschäftsjahres häufig von denen eines Kalenderjahrs unterscheiden. Um das Geschäftsjahr abzurufen, verwenden wir zunächst eine WENN-Funktion , um zu testen, ob der Wert für Month kleiner oder gleich 6 ist. Wenn der Wert für Month im zweiten Argument kleiner oder gleich 6 ist, geben Sie den Wert aus der Spalte Year zurück. Wenn nicht, geben Sie den Wert von Year zurück, und fügen Sie 1 hinzu.
Eine weitere Möglichkeit zum Angeben eines Werts für den Monatsende des Geschäftsjahres besteht darin, ein Measure zu erstellen, das einfach den Monat angibt. Beispiel: FYE:=6. Sie können dann anstelle der Monatsnummer auf den Measurenamen verweisen. Beispiel: =WENN([Monat]<=[FYE],[Jahr],[Jahr]+1). Dies bietet mehr Flexibilität beim Verweisen auf den Endmonat des Geschäftsjahres in verschiedenen Formeln.
Geschäftsmonat
=WENN([Monat]<= 6, 6+[Monat], [Monat]- 6)
In dieser Formel geben wir an, wenn der Wert für [Monat] kleiner als oder gleich 6 ist. Nehmen Sie dann 6, und fügen Sie den Wert von Month hinzu, andernfalls subtrahieren Sie 6 vom Wert von [Monat].
Fiscal Quarter
=INT(([FiscalMonth]+2)/3)
Die Formel, die wir für FiscalQuarter verwenden, entspricht in etwa der Formel für Quartal in unserem Kalenderjahr. Der einzige Unterschied besteht darin, dass [FiscalMonth] anstelle von [Month] angegeben wird.
Feiertage oder besondere Termine
Möglicherweise möchten Sie eine Datumsspalte einschließen, die angibt, dass bestimmte Datumsangaben Feiertage oder ein anderes besonderes Datum sind. Sie können z. B. die Gesamtsummen der Umsätze für den Neujahrstag addieren, indem Sie einer PivotTable ein Feiertagsfeld als Slicer oder Filter hinzufügen. In anderen Fällen können Sie diese Datumsangaben aus anderen Datumsspalten oder in einem Measure ausschließen.
Feiertage oder besondere Tage sind ganz einfach. Sie können eine Tabelle in Excel erstellen, die die Datumsangaben enthält, die Sie einschließen möchten. Anschließend können Sie das Datenmodell kopieren oder verwenden, um es dem Datenmodell als verknüpfte Tabelle hinzuzufügen. In den meisten Fällen ist es nicht erforderlich, eine Beziehung zwischen der Tabelle und der Calendar-Tabelle zu erstellen. Alle Formeln, die darauf verweisen, können die LOOKUPVALUE-Funktion verwenden, um Werte zurückzugeben.
Im Folgenden finden Sie ein Beispiel für eine in Excel erstellte Tabelle, die Feiertage enthält, die der Datumstabelle hinzugefügt werden sollen:
Datum |
Ferientag |
---|---|
1/1/2010 |
Neue Jahre |
11/25/2010 |
Erntedankfest |
12/25/2010 |
Weihnachten |
01.01.2011 |
Neue Jahre |
11/24/2011 |
Erntedankfest |
12/25/2011 |
Weihnachten |
01.01.2012 |
Neue Jahre |
03.10.2012 |
Erntedankfest |
12/25/2012 |
Weihnachten |
1/1/2013 |
Neue Jahre |
11/28/2013 |
Erntedankfest |
12/25/2013 |
Weihnachten |
11/27/2014 |
Erntedankfest |
12/25/2014 |
Weihnachten |
1.1.2014 |
Neue Jahre |
11/27/2014 |
Erntedankfest |
12/25/2014 |
Weihnachten |
1/1/2015 |
Neue Jahre |
11/26/2014 |
Erntedankfest |
12/25/2015 |
Weihnachten |
01.01.2016 |
Neue Jahre |
11/24/2016 |
Erntedankfest |
12/25/2016 |
Weihnachten |
In der Datumstabelle erstellen wir eine Spalte namens Holiday und verwenden eine Formel wie die folgende:
=LOOKUPVALUE(Holidays[Holiday],Holidays[date],Calendar[date])
Sehen wir uns diese Formel genauer an.
Wir verwenden die FUNKTION LOOKUPVALUE, um Werte aus der Spalte Feiertag in der Tabelle Holidays abzurufen. Im ersten Argument geben wir die Spalte an, in der sich unser Ergebniswert befindet. Wir geben die Spalte Feiertag in der Tabelle Holidays an, da dies der Wert ist, den wir zurückgeben möchten.
=LOOKUPVALUE(Holidays[Holiday];Holidays[date],Calendar[date])
Anschließend geben wir das zweite Argument an, die Suchspalte mit den Datumsangaben, nach denen gesucht werden soll. Wir geben die Spalte Date in der Tabelle Holidays wie folgt an:
=LOOKUPVALUE(Holidays[Holiday],Holidays[date];Calendar[date])
Schließlich geben wir die Spalte in unserer Kalendertabelle an, die die Datumsangaben enthält, nach denen wir in der Tabelle Feiertag suchen möchten. Dies ist natürlich die Spalte Date in der Kalendertabelle .
=LOOKUPVALUE(Holidays[Holiday],Holidays[date],Calendar[date])
Die Spalte Feiertag gibt den Feiertagsnamen für jede Zeile zurück, die einen Datumswert aufweist, der mit einem Datum in der Tabelle Holidays übereinstimmt.
Benutzerdefinierter Kalender – dreizehn Vier-Wochen-Zeiträume
Einige Organisationen, wie Einzelhandel oder Gastronomie, berichten häufig über verschiedene Zeiträume, z. B. dreizehn Vier-Wochen-Zeiträume. Bei einem dreizehn Vier-Wochen-Kalender beträgt jeder Zeitraum 28 Tage; Daher enthält jeder Zeitraum vier Montage, vier Dienstage, vier Mittwoche usw. Jeder Zeitraum enthält die gleiche Anzahl von Tagen, und normalerweise fallen Feiertage jedes Jahr innerhalb desselben Zeitraums. Sie können einen Zeitraum an einem beliebigen Tag der Woche beginnen. Genau wie bei Datumsangaben in einem Kalender oder Geschäftsjahr können Sie DAX verwenden, um zusätzliche Spalten mit benutzerdefinierten Datumsangaben zu erstellen.
In den folgenden Beispielen beginnt der erste vollständige Zeitraum am ersten Sonntag des Geschäftsjahres. In diesem Fall beginnt das Geschäftsjahr am 7.1.
Woche
Dieser Wert gibt die Wochenzahl an, die mit der ersten vollständigen Woche im Geschäftsjahr beginnt. In diesem Beispiel beginnt die erste vollständige Woche am Sonntag, sodass die erste vollständige Woche im ersten Geschäftsjahr in der Kalendertabelle tatsächlich am 04.07.2010 beginnt und mit der letzten vollen Woche in der Tabelle Calendar fortgesetzt wird. Obwohl dieser Wert selbst bei der Analyse nicht so nützlich ist, ist es notwendig, für die Verwendung in anderen 28-Tage-Zeitraumformeln zu berechnen.
=INT([date]-40356)/7)
Sehen wir uns diese Formel genauer an.
Zuerst erstellen wir eine Formel, die Werte aus der Spalte Date als ganze Zahl zurückgibt, wie hier:
=INT([date])
Dann wollen wir nach dem ersten Sonntag im ersten Geschäftsjahr suchen. Wir sehen, dass es 04.07.2010 ist.
Subtrahieren Sie nun 40356 (die ganze Zahl für den 27.06.2010, den letzten Sonntag aus dem vorherigen Geschäftsjahr), um die Anzahl der Tage seit dem Beginn der Tage in unserer Kalendertabelle wie folgt abzurufen:
=INT([date]-40356)
Dividieren Sie das Ergebnis dann wie folgt durch 7 (Tage in einer Woche):
=INT(([date]-40356)/7)
Das Ergebnis sieht wie folgt aus:
Period
Der Zeitraum in diesem benutzerdefinierten Kalender umfasst 28 Tage und beginnt immer an einem Sonntag. Diese Spalte gibt die Nummer des Zeitraums zurück, der mit dem ersten Sonntag im ersten Geschäftsjahr beginnt.
=INT(([Woche]+3)/4)
Sehen wir uns diese Formel genauer an.
Zunächst erstellen wir eine Formel, die einen Wert aus der Spalte Week als ganze Zahl zurückgibt, wie hier:
=INT([Woche])
Fügen Sie dann diesem Wert wie folgt 3 hinzu:
=INT([Woche]+3)
Dividieren Sie dann das Ergebnis wie folgt durch 4:
=INT(([Woche]+3)/4)
Das Ergebnis sieht wie folgt aus:
Zeitraum Geschäftsjahr
Dieser Wert gibt das Geschäftsjahr für einen Zeitraum zurück.
=INT(([Period]+12)/13)+2008
Sehen wir uns diese Formel genauer an.
Zunächst erstellen wir eine Formel, die einen Wert aus Period zurückgibt und 12 hinzufügt:
= ([Zeitraum]+12)
Wir dividieren das Ergebnis durch 13, da es dreizehn 28-Tage-Zeiträume im Geschäftsjahr gibt:
=(([Zeitraum]+12)/13)
Wir fügen 2010 hinzu, da dies das erste Jahr in der Tabelle ist:
=(([Zeitraum]+12)/13)+2010
Schließlich verwenden wir die INT-Funktion, um jeden Bruchteil des Ergebnisses zu entfernen und eine ganze Zahl zurückzugeben, wenn sie durch 13 dividiert wird, wie folgt:
=INT(([Period]+12)/13)+2010
Das Ergebnis sieht wie folgt aus:
Zeitraum in FiscalYear
Dieser Wert gibt die Periodennummer 1 bis 13 zurück, beginnend mit dem ersten vollständigen Zeitraum (beginnend am Sonntag) in jedem Geschäftsjahr.
=WENN(MOD([Zeitraum],13); MOD([Zeitraum],13);13)
Diese Formel ist etwas komplexer, daher werden wir sie zuerst in einer Sprache beschreiben, die wir besser verstehen. Diese Formel gibt an, den Wert von [Zeitraum] durch 13 zu dividieren, um eine Periodenzahl (1-13) im Jahr zu erhalten. Wenn diese Zahl 0 ist, geben Sie 13 zurück.
Zunächst erstellen wir eine Formel, die den Rest des Werts aus Period um 13 zurückgibt. Wir können die MOD (Mathematische und Trigonometrische Funktionen) wie folgt verwenden:
=MOD([Zeitraum],13)
Dadurch erhalten wir größtenteils das gewünschte Ergebnis, außer wenn der Wert für Period 0 ist, da diese Datumsangaben nicht innerhalb des ersten Geschäftsjahres liegen, wie in den ersten fünf Tagen unserer Kalenderdatumstabelle. Wir können dies mit einer WENN-Funktion erledigen. Wenn unser Ergebnis 0 ist, geben wir 13 wie folgt zurück:
=WENN(MOD([Zeitraum],13);MOD([Zeitraum],13);13)
Das Ergebnis sieht wie folgt aus:
Beispiel-PivotTable
Die folgende Abbildung zeigt eine PivotTable mit dem Feld SalesAmount aus der Faktentabelle Sales in VALUES und den Feldern PeriodFiscalYear und PeriodInFiscalYear aus der Kalenderdatumsdimensionstabelle in ROWS. SalesAmount wird für den Kontext nach Geschäftsjahr und 28-Tage-Zeitraum im Geschäftsjahr aggregiert.
Beziehungen
Nachdem Sie eine Datumstabelle in Ihrem Datenmodell erstellt haben, müssen Sie eine Beziehung zwischen der Faktentabelle mit Ihren Transaktionsdaten und Ihren Transaktionsdaten und der Datumstabelle erstellen, nachdem Sie eine Datumstabelle erstellt haben, um mit dem Durchsuchen Ihrer Daten in PivotTables und Berichten zu beginnen und Daten basierend auf den Spalten in der Datumsdimensionstabelle zu aggregieren.
Da Sie eine Beziehung basierend auf Datumsangaben erstellen müssen, sollten Sie sicherstellen, dass Sie diese Beziehung zwischen Spalten erstellen, deren Werte den Datentyp datetime (Date) aufweisen.
Für jeden Datumswert in der Faktentabelle muss die zugehörige Nachschlagespalte in der Datumstabelle übereinstimmende Werte enthalten. Beispielsweise muss eine Zeile (Transaktionsdatensatz) in der Faktentabelle Sales mit dem Wert 15.08.2012 12:00 Uhr in der DateKey-Spalte einen entsprechenden Wert in der zugehörigen Date-Spalte in der Tabelle mit dem Namen "Calendar" aufweisen. Dies ist einer der wichtigsten Gründe, warum Ihre Datumsspalte in der Datumstabelle einen zusammenhängenden Bereich von Datumsangaben enthält, der alle möglichen Datumsangaben in Ihrer Faktentabelle enthält.
Hinweis: Während die Datumsspalte in jeder Tabelle denselben Datentyp (Datum) aufweisen muss, spielt das Format der einzelnen Spalten keine Rolle.
Hinweis: Wenn Sie in Power Pivot keine Beziehungen zwischen den beiden Tabellen erstellen können, speichern datums- und uhrzeitfelder möglicherweise nicht die gleiche Genauigkeit. Je nach Spaltenformatierung sehen die Werte möglicherweise gleich aus, werden aber unterschiedlich gespeichert. Erfahren Sie mehr über das Arbeiten mit Zeit.
Hinweis: Vermeiden Sie die Verwendung ganzzahliger Ersatzschlüssel in Beziehungen. Wenn Sie Daten aus einer relationalen Datenquelle importieren, werden Datums- und Uhrzeitspalten häufig durch einen Ersatzschlüssel dargestellt, bei dem es sich um eine ganzzahlige Spalte handelt, die zur Darstellung eines eindeutigen Datums verwendet wird. In Power Pivot sollten Sie das Erstellen von Beziehungen vermeiden, indem Sie ganzzahlige Datums-/Uhrzeitschlüssel verwenden und stattdessen Spalten verwenden, die eindeutige Werte mit einem Date-Datentyp enthalten. Obwohl die Verwendung von Ersatzschlüsseln in herkömmlichen Data Warehouses als bewährte Methode angesehen wird, werden die ganzzahligen Schlüssel in Power Pivot nicht benötigt und können das Gruppieren von Werten in PivotTables nach verschiedenen Datumsperioden erschweren.
Wenn beim Versuch, eine Beziehung zu erstellen, ein Typkonfliktfehler auftritt, liegt dies wahrscheinlich daran, dass die Spalte in der Faktentabelle nicht den Datentyp Date aufweist. Dies kann der Fall sein, wenn Power Pivot ein Nicht-Datum (normalerweise ein Textdatentyp) nicht automatisch in einen Date-Datentyp konvertieren kann. Sie können die Spalte weiterhin in Ihrer Faktentabelle verwenden, aber Sie müssen die Daten mit einer DAX-Formel in eine neue berechnete Spalte konvertieren. Weitere Informationen finden Sie unter Konvertieren von Datumsangaben des Textdatentyps in einen Datumsdatentyp weiter unten im Anhang.
Mehrere Beziehungen
In einigen Fällen kann es erforderlich sein, mehrere Beziehungen oder mehrere Datumstabellen zu erstellen. Wenn z. B. mehrere Datumsfelder in der Tabelle Sales-Fakten vorhanden sind, z. B. DateKey, ShipDate und ReturnDate, können alle Beziehungen zum Feld Date in der Kalenderdatumstabelle haben, aber nur eines davon kann eine aktive Beziehung sein. Da DateKey in diesem Fall das Datum der Transaktion und damit das wichtigste Datum darstellt, würde dies am besten als aktive Beziehung dienen. Die anderen haben inaktive Beziehungen.
Die folgende PivotTable berechnet den Gesamtumsatz nach Geschäftsjahr und Geschäftsquartal. Ein Measure mit dem Namen Total Sales mit der Formel Total Sales:=SUM([SalesAmount]) wird in VALUES platziert, und Die Felder FiscalYear und FiscalQuarter aus der Kalenderdatumstabelle werden in ZEILEN platziert.
Diese unkomplizierte PivotTable funktioniert ordnungsgemäß, da wir unseren Gesamtumsatz nach dem Transaktionsdatumin DateKey summieren möchten. Unser Measure Total Sales verwendet die Datumsangaben in DateKey und wird nach Geschäftsjahr und Geschäftsquartal summiert, da eine Beziehung zwischen DateKey in der Tabelle Sales und der Spalte Date in der Kalenderdatumstabelle besteht.
Inaktive Beziehungen
Aber was wäre, wenn wir unseren Gesamtumsatz nicht nach Transaktionsdatum, sondern nach Versanddatum summieren wollten? Wir benötigen eine Beziehung zwischen der Spalte ShipDate in der Tabelle Sales und der Spalte Date in der Tabelle Calendar. Wenn wir diese Beziehung nicht erstellen, basieren unsere Aggregationen immer auf dem Transaktionsdatum. Es können jedoch mehrere Beziehungen bestehen, obwohl nur eine aktiv sein kann, und da das Transaktionsdatum das wichtigste ist, wird die aktive Beziehung mit der Calendar-Tabelle abgerufen.
In diesem Fall verfügt ShipDate über eine inaktive Beziehung, sodass jede Measureformel, die zum Aggregieren von Daten basierend auf Versanddatumen erstellt wird, die inaktive Beziehung mithilfe der USERELATIONSHIP-Funktion angeben muss.
Da beispielsweise eine inaktive Beziehung zwischen der Spalte ShipDate in der Tabelle Sales und der Spalte Date in der Tabelle Calendar besteht, können wir ein Measure erstellen, das den Gesamtumsatz nach Versanddatum addiert. Wir verwenden eine Formel wie diese, um die zu verwendende Beziehung anzugeben:
Total Sales by Ship Date:=CALCULATE(SUM(Sales[SalesAmount]), USERELATIONSHIP(Sales[ShipDate], Calendar[Date]))
Diese Formel besagt einfach: Berechnen Sie eine Summe für SalesAmount, filtern Sie jedoch mithilfe der Beziehung zwischen der Spalte ShipDate in der Tabelle Sales und der Spalte Date in der Tabelle Calendar.
Wenn wir nun eine PivotTable erstellen und das Measure Total Sales by Ship Date (Gesamtumsatz nach Versanddatum) in VALUES (Werte) und Fiscal Year and Fiscal Quarter on ROWS (Geschäftsjahr und Geschäftsquartal auf ZEILEN) setzen, wird die gleiche Gesamtsumme angezeigt, aber alle anderen Summen für Geschäftsjahr und Geschäftsquartal unterscheiden sich, da sie auf dem Versanddatum und nicht auf dem Transaktionsdatum basieren.
Die Verwendung inaktiver Beziehungen ermöglicht es Ihnen, nur eine Datumstabelle zu verwenden, erfordert jedoch, dass alle Measures (z. B. Total Sales by Ship Date) in ihrer Formel auf die inaktive Beziehung verweisen. Es gibt eine weitere Alternative, d. h. mehrere Datumstabellen zu verwenden.
Mehrere Datumstabellen
Eine weitere Möglichkeit, mit mehreren Datumsspalten in Ihrer Faktentabelle zu arbeiten, besteht darin, mehrere Datumstabellen zu erstellen und separate aktive Beziehungen zwischen ihnen zu erstellen. Sehen wir uns das Beispiel für die Tabelle Sales noch einmal an. Wir verfügen über drei Spalten mit Datumsangaben, für die Daten aggregiert werden sollen:
-
Ein DateKey mit dem Verkaufsdatum für jede Transaktion.
-
Ein ShipDate - mit dem Datum und der Uhrzeit, zu dem die verkauften Artikel an den Kunden versendet wurden.
-
Ein ReturnDate - mit dem Datum und der Uhrzeit, zu dem ein oder mehrere zurückgegebene Elemente empfangen wurden.
Denken Sie daran, dass das DateKey-Feld mit dem Transaktionsdatum am wichtigsten ist. Wir werden die meisten aggregationen basierend auf diesen Datumsangaben durchführen, sodass wir ganz sicher eine Beziehung zwischen ihr und der Spalte Date in der Tabelle Calendar benötigen. Wenn wir keine inaktiven Beziehungen zwischen ShipDate und ReturnDate und dem Feld Date in der Kalendertabelle erstellen möchten und daher spezielle Measureformeln erfordern, können wir zusätzliche Datumstabellen für Versanddatum und Rückgabedatum erstellen. Wir können dann aktive Beziehungen zwischen ihnen erstellen.
In diesem Beispiel haben wir eine weitere Datumstabelle mit dem Namen ShipCalendar erstellt. Dies bedeutet natürlich auch das Erstellen zusätzlicher Datumsspalten, und da sich diese Datumsspalten in einer anderen Datumstabelle befinden, möchten wir sie so benennen, dass sie von den gleichen Spalten in der Tabelle Calendar unterschieden werden. Beispielsweise haben wir Spalten mit den Namen ShipYear, ShipMonth, ShipQuarter usw. erstellt.
Wenn wir unsere PivotTable erstellen und das Measure Total Sales in VALUES und ShipFiscalYear und ShipFiscalQuarter in ROWS setzen, werden die gleichen Ergebnisse angezeigt, die wir beim Erstellen einer inaktiven Beziehung und eines speziellen berechneten Felds Gesamtumsatz nach Versanddatum gesehen haben.
Jeder dieser Ansätze erfordert sorgfältige Überlegungen. Wenn Sie mehrere Beziehungen mit einer einzelnen Datumstabelle verwenden, müssen Sie möglicherweise spezielle Measures erstellen, die inaktive Beziehungen mit der USERELATIONSHIP-Funktion transitieren. Auf der anderen Seite kann das Erstellen mehrerer Datumstabellen in einer Feldliste verwirrend sein, und da Sie mehr Tabellen im Datenmodell haben, wird mehr Arbeitsspeicher benötigt. Experimentieren Sie mit dem, was für Sie am besten funktioniert.
Date Table-Eigenschaft
Die Date Table-Eigenschaft legt Metadaten fest, die erforderlich sind, damit Time-Intelligence Funktionen wie TOTALYTD, PREVIOUSMONTH und DATESBETWEEN ordnungsgemäß funktionieren. Wenn eine Berechnung mit einer dieser Funktionen ausgeführt wird, weiß die Formel-Engine von Power Pivot, wo die benötigten Datumsangaben abgerufen werden sollen.
Warnung: Wenn diese Eigenschaft nicht festgelegt ist, geben Measures, die DAX Time-Intelligence-Funktionen verwenden, möglicherweise nicht die richtigen Ergebnisse zurück.
Wenn Sie die Date Table-Eigenschaft festlegen, geben Sie darin eine Datumstabelle und eine Datumsspalte des Datentyps Date (datetime) an.
Vorgehensweise: Festlegen der Date Table-Eigenschaft
-
Wählen Sie im PowerPivot-Fenster die Tabelle Kalender aus.
-
Klicken Sie auf der Registerkarte Entwurf auf Als Datumstabelle markieren.
-
Wählen Sie im Dialogfeld Als Datumstabelle markieren eine Spalte mit eindeutigen Werten und dem Datentyp Date aus.
Arbeiten mit Zeit
Alle Datumswerte mit einem Date-Datentyp in Excel oder SQL Server sind tatsächlich eine Zahl. In dieser Zahl sind Ziffern enthalten, die auf eine Uhrzeit verweisen. In vielen Fällen ist diese Zeit für jede Zeile Mitternacht. Wenn beispielsweise ein DateTimeKey-Feld in einer Sales-Faktentabelle Werte wie 19.10.2010 12:00:00 Uhr aufweist, bedeutet dies, dass die Werte auf der Tagesgenauigkeitsebene liegen. Wenn für die DateTimeKey-Feldwerte eine Uhrzeit enthalten ist, z. B. 19.10.2010 8:44:00 Uhr, bedeutet dies, dass die Werte die Minutengenauigkeit aufweisen. Die Werte können auch auf die Genauigkeit auf Stundenebene oder sogar auf sekundengenaue Ebene liegen. Die Genauigkeit des Zeitwerts hat einen erheblichen Einfluss darauf, wie Sie Ihre Datumstabelle erstellen und die Beziehungen zwischen ihr und Ihrer Faktentabelle.
Sie müssen bestimmen, ob Sie Ihre Daten auf eine Tagesgenauigkeit oder eine zeitgenaue Ebene aggregieren. Anders ausgedrückt: Sie können Spalten in Der Datumstabelle verwenden, z. B. "Morgen", "Nachmittag" oder "Stunde" als Datumsfelder für die Uhrzeit in den Bereichen "Zeile", "Spalte" oder "Filter" einer PivotTable.
Hinweis: Tage sind die kleinste Zeiteinheit, mit der DAX-Zeitintelligenzfunktionen arbeiten können. Wenn Sie nicht mit Zeitwerten arbeiten müssen, sollten Sie die Genauigkeit Ihrer Daten reduzieren, um Tage als Mindesteinheit zu verwenden.
Wenn Sie beabsichtigen, Ihre Daten auf die Zeitebene zu aggregieren, benötigt Ihre Datumstabelle eine Datumsspalte mit der eingeschlossenen Uhrzeit. Tatsächlich wird eine Datumsspalte mit einer Zeile für jede Stunde oder vielleicht sogar jede Minute, jeden Tag, für jedes Jahr im Datumsbereich benötigt. Dies liegt daran, dass Sie übereinstimmende Werte benötigen, um eine Beziehung zwischen der DateTimeKey-Spalte in der Faktentabelle und der Datumsspalte in der Datumstabelle zu erstellen. Wie Sie sich vorstellen können, kann dies zu einer sehr großen Datumstabelle führen, wenn Sie viele Jahre einbeziehen.
In den meisten Fällen möchten Sie Ihre Daten jedoch nur auf den Tag aggregieren. Anders ausgedrückt: Sie verwenden Spalten wie Jahr, Monat, Woche oder Wochentag als Felder in den Bereichen Zeile, Spalte oder Filter einer PivotTable. In diesem Fall muss die Datumsspalte in der Datumstabelle nur eine Zeile für jeden Tag in einem Jahr enthalten, wie zuvor beschrieben.
Wenn Ihre Datumsspalte eine Zeitebene der Genauigkeit enthält, Sie aber nur auf eine Tagesebene aggregieren, müssen Sie möglicherweise Ihre Faktentabelle ändern, indem Sie eine neue Spalte erstellen, die die Werte in der Datumsspalte auf einen Tageswert abschneidet. Anders ausgedrückt: Konvertieren Sie einen Wert wie 19.10.2010 8:44:00Uhr in den 19.10.2010 um 12:00:00 Uhr. Sie können dann die Beziehung zwischen dieser neuen Spalte und der Datumsspalte in der Datumstabelle erstellen, da die Werte übereinstimmen.
Hier ein entsprechendes Beispiel: Viele Zeichen im lateinischen Zeichensatz und anderen Zeichensätzen sehen ähnlich aus wie Zeichen, die normalerweise in einer herkömmlichen englischen E-Mail-Adresse verwendet werden. Diese Abbildung zeigt eine DateTimeKey-Spalte in der Sales-Faktentabelle. Alle Aggregationen für die Daten in dieser Tabelle müssen nur auf Tagesebene erfolgen, indem Spalten in der Kalenderdatumstabelle wie Jahr, Monat, Quartal usw. verwendet werden. Die im Wert enthaltene Uhrzeit ist nicht relevant, nur das tatsächliche Datum.
Da wir diese Daten nicht auf die Zeitebene analysieren müssen, muss die Spalte Datum in der Kalenderdatumstabelle nicht eine Zeile für jede Stunde und jede Minute jedes Tages in jedem Jahr enthalten. Die Spalte Date in unserer Datumstabelle sieht also wie folgt aus:
Um eine Beziehung zwischen der Spalte DateTimeKey in der Tabelle Sales und der Spalte Date in der Tabelle Calendar zu erstellen, können wir eine neue berechnete Spalte in der Tabelle Sales erstellen und die TRUNC-Funktion verwenden, um den Datums- und Uhrzeitwert in der Spalte DateTimeKey in einen Datumswert zu kürzen, der den Werten in der Spalte Date in der Tabelle Calendar entspricht. Unsere Formel sieht wie folgt aus:
=TRUNC([DateTimeKey],0)
Dadurch erhalten wir eine neue Spalte (mit dem Namen DateKey) mit dem Datum aus der Spalte DateTimeKey und einer Uhrzeit von 12:00:00 Für jede Zeile:
Jetzt können wir eine Beziehung zwischen dieser neuen Spalte (DateKey) und der Spalte Date in der Kalendertabelle erstellen.
Ebenso können wir eine berechnete Spalte in der Sales-Tabelle erstellen, die die Zeitgenauigkeit in der DateTimeKey-Spalte auf die Genauigkeitsstufe der Stunde reduziert. In diesem Fall funktioniert die TRUNC-Funktion nicht, aber wir können weiterhin andere DAX-Funktionen für Datum und Uhrzeit verwenden, um einen neuen Wert mit einer Genauigkeitsstufe für eine Stunde zu extrahieren und neu zu verketten. Wir können eine Formel wie die folgende verwenden:
= DATE (YEAR([DateTimeKey]), MONTH([DateTimeKey]), DAY([DateTimeKey]) ) + TIME (HOUR([DateTimeKey]), 0, 0)
Unsere neue Spalte sieht wie folgt aus:
Vorausgesetzt, die Spalte Date in der Datumstabelle enthält Werte auf der Genauigkeitsebene der Stunde, können wir dann eine Beziehung zwischen ihnen erstellen.
Datumsangaben nutzbarer machen
Viele der Datumsspalten, die Sie in Der Datumstabelle erstellen, sind für andere Felder erforderlich, sind aber bei der Analyse nicht allzu nützlich. Beispielsweise ist das Feld DateKey in der Tabelle Sales, auf die wir in diesem Artikel verwiesen und gezeigt haben, wichtig, da diese Transaktion für jede Transaktion als zu einem bestimmten Datum und zu einer bestimmten Uhrzeit aufgezeichnet wird. Aus Sicht der Analyse und Berichterstellung ist dies jedoch nicht so nützlich, da wir es nicht als Zeile, Spalte oder Filterfeld in einer PivotTable oder einem Bericht verwenden können.
Ebenso ist in unserem Beispiel die Spalte Date in der Tabelle Calendar sehr nützlich und tatsächlich kritisch, aber Sie können sie nicht als Dimension in einer PivotTable verwenden.
Um Tabellen und spalten in ihnen so nützlich wie möglich zu halten und die Navigation in PivotTable- oder Power View-Berichtsfeldlisten zu vereinfachen, ist es wichtig, unnötige Spalten in Clienttools auszublenden. Sie können auch bestimmte Tabellen ausblenden. Die zuvor gezeigte Tabelle Holidays enthält Feiertagsdaten, die für bestimmte Spalten in der Tabelle Calendar wichtig sind, aber Sie können die Spalten Datum und Feiertag in der Tabelle Holidays selbst nicht als Felder in einer PivotTable verwenden. Um die Navigation in Feldlisten zu vereinfachen, können Sie auch hier die gesamte Tabelle Feiertage ausblenden.
Ein weiterer wichtiger Aspekt beim Arbeiten mit Datumsangaben sind Namenskonventionen. Sie können Tabellen und Spalten in Power Pivot beliebig benennen. Beachten Sie jedoch, dass eine gute Benennungskonvention das Identifizieren von Tabellen und Datumsangaben nicht nur in Feldlisten, sondern auch in Power Pivot und IN DAX-Formeln erleichtert, insbesondere wenn Sie Ihre Arbeitsmappe für andere Benutzer freigeben.
Nachdem Sie über eine Datumstabelle in Ihrem Datenmodell verfügen, können Sie mit dem Erstellen von Measures beginnen, die Ihnen helfen, Ihre Daten optimal zu nutzen. Einige sind möglicherweise so einfach wie das Summieren von Umsatzsummen für das aktuelle Jahr, während andere komplexer sind, bei denen Sie nach einem bestimmten Bereich eindeutiger Datumsangaben filtern müssen. Weitere Informationen finden Sie unter Measures in Power Pivot und Time Intelligence Functions.
Anhang
Konvertieren von Datumsangaben des Textdatentyps in einen Date-Datentyp
In einigen Fällen kann eine Faktentabelle mit Transaktionsdaten Datumsangaben des Textdatentyps enthalten. Das heißt, ein Datum, das als 2012-12-04T11:47:09 angezeigt wird, ist tatsächlich überhaupt kein Datum oder zumindest nicht der Typ des Datums, das Power Pivot verstehen kann. Es ist wirklich nur Text, der sich wie ein Datum liest. Um eine Beziehung zwischen einer Datumsspalte in der Faktentabelle und einer Datumsspalte in einer Datumstabelle zu erstellen, müssen beide Spalten den Datentyp Date aufweisen.
Wenn Sie versuchen, den Datentyp für eine Spalte mit Datumsangaben, die den Textdatentyp aufweisen, in einen Date-Datentyp zu ändern, kann Power Pivot die Datumsangaben in der Regel interpretieren und automatisch in einen true-Datumsdatentyp konvertieren. Wenn Power Pivot keine Datentypkonvertierung durchführen kann, wird ein Typkonfliktfehler angezeigt.
Sie können die Datumsangaben jedoch weiterhin in einen true-Datumsdatentyp konvertieren. Sie können eine neue berechnete Spalte erstellen und eine DAX-Formel verwenden, um das Jahr, den Monat, den Tag, die Uhrzeit usw. aus den Textzeichenfolgen zu analysieren und sie dann wieder so zu verketten, wie Power Pivot als true-Datum lesen kann.
In diesem Beispiel haben wir eine Faktentabelle mit dem Namen Sales in Power Pivot importiert. Sie enthält eine Spalte mit dem Namen DateTime. Werte werden wie folgt angezeigt:
Wenn wir uns den Datentyp auf der Registerkarte Start der Power Pivot-Formatierungsgruppe ansehen, sehen wir, dass es sich um den Datentyp Text handelt.
Wir können keine Beziehung zwischen der DateTime-Spalte und der Date-Spalte in unserer Datumstabelle erstellen, da die Datentypen nicht übereinstimmen. Wenn wir versuchen, den Datentyp in Date zu ändern, erhalten wir einen Typkonfliktfehler:
In diesem Fall konnte Power Pivot den Datentyp nicht von Text in Datum konvertieren. Wir können diese Spalte weiterhin verwenden, aber um sie in einen true Date-Datentyp zu bringen, müssen wir eine neue Spalte erstellen, die den Text analysiert und in einen Wert neu erstellt, den Power Pivot als Date-Datentyp festlegen kann.
Denken Sie daran, aus dem Abschnitt Arbeiten mit Der Zeit weiter oben in diesem Artikel. Es sei denn, ihre Analyse muss auf eine Zeit-von-Tag-Genauigkeitsebene festgelegt werden, sollten Sie Datumsangaben in Ihrer Faktentabelle in eine Tagesgenauigkeit konvertieren. Vor diesem Hintergrund möchten wir, dass die Werte in unserer neuen Spalte auf der Tagesgenauigkeitsebene (ohne Zeit) liegen. Wir können sowohl die Werte in der DateTime-Spalte in einen Date-Datentyp konvertieren als auch die Zeitgenauigkeit mit der folgenden Formel entfernen:
=DATE(LEFT([DateTime],4); MID([DateTime],6;2); MID([DateTime],9;2))
Dadurch erhalten wir eine neue Spalte (in diesem Fall mit dem Namen Date). Power Pivot erkennt sogar die Werte als Datumsangaben und legt den Datentyp automatisch auf Date fest.
Wenn wir das Zeitniveau der Genauigkeit beibehalten möchten, erweitern wir die Formel einfach um die Stunden, Minuten und Sekunden.
=DATE(LEFT([DateTime],4); MID([DateTime],6;2); MID([DateTime],9;2)) +
TIME(MID([DateTime],12,2), MID([DateTime],15,2), MID([DateTime],18,2))
Da wir nun über eine Date-Spalte des Date-Datentyps verfügen, können wir eine Beziehung zwischen ihr und einer Datumsspalte in einem Datum erstellen.
Zusätzliche Ressourcen
Schnellstart: DAX-Grundlagen in 30 Minuten