Daty w programie PowerPivot
W tej sekcji opisano niektóre najważniejsze wskazówki dotyczące importowania danych zawierających daty oraz pracy z datami w relacjach oraz tabelach przestawnych.
Najważniejsze wskazówki dotyczące importowania danych zawierających daty
Podczas importowania danych zawierających daty/godziny, zwłaszcza z wielu źródeł, bardzo często dane mogą zawierać daty w różnych formatach albo o różnych poziomach szczegółowości.
Na przykład program Excel oferuje dwie funkcje zwracające bieżącą datę/godzinę: funkcja DZIŚ zwraca tę samą datę co funkcja TERAZ, ale funkcja DZIŚ zawsze zwraca godzinę domyślną 00:00, podczas gdy funkcja TERAZ zwraca dokładną godzinę.
Problem polega na tym, że dodatkowe informacje o godzinie mogą powodować niedopasowanie wartości. Z tego powodu podczas próby zsumowania wartości w tabeli przestawnej może okazać się, że nie można zgrupować wartości w oczekiwany sposób.
Oprócz dat o różnych poziomach dokładności w źródłach danych mogą znajdować się daty zapisane przy użyciu różnych formatów tekstowych, daty w różnych formatach regionalnych oraz daty oparte na różnych latach obrachunkowych.
Aby pracować z tak różnymi typami dat i integrować je w pojedynczym modelu, po zaimportowaniu danych należy wykonać następujące czynności:
Użycie formuł języka DAX w kolumnach obliczeniowych w celu obcięcia wartości lub utworzenia spójnego zestawu wartości daty/godziny.
Utworzenie głównej tabeli dat/godzin, której będzie można używać do tworzenia relacji między kolumnami dat.
W poniższych sekcjach zamieszczono dokładniejsze informacje.
Ustalanie wymagań dotyczących dat
Przed zmianą wartości dat należy przemyśleć analizę, która ma zostać wykonana z użyciem posiadanych danych, oraz odpowiedzieć sobie na następujące pytania:
Według jakiego poziomu/poziomów szczegółowości mają być zliczane lub grupowane fakty liczbowe — dni, tygodnie, kwartały?
Jakie poziomy szczegółowości będą używane do grupowania dat — tygodnie, kwartały obrachunkowe itp.?
Czy występują braki dat? Czy braki dat lub innych wartości są akceptowane, czy należy wstawiać symbole zastępcze wartości lub dat? Czy w przypadku braku wartości w celu przedstawienia nieznanych wartości ma być używana wartość zero, czy jakaś inna wartość?
Używanie formuł w celu konwertowania dat na daty w spójnym formacie.
Jeśli importowane dane zawierają daty w wielu formatach, można pozostawić kolumny w oryginalnym stanie i użyć formuł języka DAX w celu utworzenia kolumn obliczeniowych przedstawiających daty w poprawnym formacie i z określonym poziomem szczegółowości.
Aby zapoznać się z przykładami, zobacz następujące tematy:
Użyj funkcji języka DAX w celu wyodrębnienia wartości, takich jak dzień, rok i miesiąc, jeśli jest to konieczne.
Użyj funkcji języka DAX, aby utworzyć wartości w formacie daty/godziny.
Jeśli wartości dat nie są sformatowane jako daty lub mają różne formaty, można użyć funkcji daty i godziny języka DAX w celu utworzenia prawidłowych dat.
- Użyj funkcji FORMAT, aby pracować z niestandardowymi formatami liczbowymi lub daty/godziny.
Aby zapoznać się z pełną listą funkcji daty i godziny, zobacz temat Funkcje języka DAX — kompendium.
W przypadku konieczności pracy z dniami, tygodniami i miesiącami należy obciąć godziny.
Dni to najmniejsza jednostka czasu, jakiej mogą używać funkcje analizy czasowej języka DAX. Dlatego, jeśli wartości godziny nie są potrzebne, należy zmniejszyć stopień szczegółowości danych, tak aby minimalną jednostką był dzień.
Aby rozwiązać problemy ze zbyt dokładnymi wartościami godziny, można wykonać następujące czynności:
Obcięcie części godziny w wartościach daty/godziny lub określenie, że we wszystkich wartościach daty/godziny ma być używana taka sama domyślna wartość godziny.
Jeśli trzeba pracować z wartościami godziny, takimi jak godziny, minuty i sekundy, należy za pomocą kolumn obliczeniowych utworzyć osobne pole lub pola przedstawiające przyrosty godziny. Następnie będzie można osobno analizować godziny.
Typ danych daty/godziny używany w programie PowerPivot jest typem danych programu SQL Server i domyślnie tworzy wartość godziny dla każdej daty.
Filtrowanie danych podczas importu w celu usunięcia nieprawidłowych danych
Jeśli dane zewnętrzne zawierają nieprawidłowe wartości, można odfiltrować nieprawidłowe dane podczas importowania. Aby uzyskać więcej informacji, zobacz następujące tematy:
Dodawanie danych przy użyciu Kreatora importu tabeli (samouczek)
Zmienianie wierszy importowanych ze źródła danych
Najważniejsze wskazówki dotyczące pracy z datami w tabelach przestawnych
W tej sekcji przedstawiono porady pomagające w pracy z datami w tabelach przestawnych i formułach, w których są używane funkcje analizy czasowej języka DAX.
Unikanie używania w relacjach kluczy zastępczych w formie liczb całkowitych
Podczas importowania danych zewnętrznych z relacyjnego źródła danych bardzo często kolumny dat i godzin są reprezentowane przez klucz zastępczy, który jest kolumną liczb całkowitych służących do przedstawiania unikatowych dat. Jednak w skoroszycie programu PowerPivot należy unikać tworzenia relacji przy użyciu kluczy, których wartościami są daty/godziny przedstawione jako liczby całkowite. Jako kluczy należy używać kolumn zawierających unikatowe wartości typu date.
Mimo że używanie kluczy zastępczych jest powszechną i zalecaną praktyką w tradycyjnych magazynach danych, klucze w postaci wartości całkowitych nie są potrzebne w programie PowerPivot i mogą utrudniać grupowanie wartości w tabelach przestawnych dla różnych okresów.
Tworzenie głównej tabeli dat
Jeśli każda tabela danych w skoroszycie zawiera kolumnę wartości daty/godziny i tabele są łączone za pośrednictwem tych kolumn dat/godzin, prawdopodobne jest, że wiele wartości nie będzie pasować: na przykład tabela Sales może zawierać daty tylko dla drugiej połowy 2008 roku, a tabela Suppliers daty z okresu od 2006 do 2008 roku.
Zamiast łączyć różne tabele danych za pomocą wielu niezależnych kolumn zawierających różne daty i godziny, można osiągnąć lepsze wyniki, tworząc tabelę główną, w której będą przechowywane tylko informacje dotyczące dat. Następnie za pomocą relacji będzie można połączyć tę tabelę z tabelami danych i korzystać z zalet możliwości pracy z użyciem spójnego zestawu dat.
[!UWAGA]
Tworzoną główną tabelę dat można oznaczyć jako tabelę dat, co umożliwi korzystanie z dodatkowych filtrów dat, które w przeciwnym razie byłyby niedostępne. Aby uzyskać więcej informacji, zobacz temat Okno dialogowe Oznaczanie jako tabeli dat.
W przykładowym skoroszycie języka DAX znajduje się przykład głównej tabeli dat/godzin, która jest połączona z innymi tabelami za pomocą relacji.
Oprócz unikatowej wartości daty/godziny dla każdej daty, która ma być używana, tabela główna zawiera hierarchie, których można użyć w celu grupowania dat w tabelach przestawnych, tak jak pokazano w poniższej tabeli:
DayNumberOfWeek |
WeekNumberOfYear |
CalendarQuarter |
FiscalQuarter |
DayNameOfWeek |
WeekNumberOfMonth |
CalendarSemester |
FiscalSemester |
DayNumberOfMonth |
MonthName |
CalendarYear |
FiscalYear |
DayNumberOfYear |
MonthNumberOfYear |
|
|
Tworzenie w razie potrzeby kopii kolumn dat
Pojęcie głównej tabeli dat będzie znane osobom, które pracowały z tradycyjnymi bazami danych usług Analysis Services, w których wymiar dat był używany do przedstawiania i grupowania dat.
Różnica w programie PowerPivot polega na tym, że każda unikatowa kolumna w tabeli programu PowerPivot może być używana tylko w jednej relacji między dwiema tabelami. Dlatego jeśli jedna tabela zawiera wiele kolumn, które muszą być powiązane z kluczem daty, należy utworzyć kopię kolumny klucza daty oraz łącze.
Na przykład tabela Orders zawiera następujące kolumny dat: SalesDate, TransactionDate i ShippingDate. Trzeba połączyć wszystkie z nich z kolumną klucza daty w głównej tabeli dat, ale program PowerPivot nie zezwala na wykonanie tej czynności w celu zagwarantowania, że każda relacja zapewnia unikatową, jednoznaczną ścieżkę przez wartości. Dlatego też należy przenieść dodatkowe kolumny dat do osobnych tabel, a następnie połączyć kolumnę dat w każdej z tych tabel z kluczem daty w głównej tabeli dat. Na przykład można zachować kolumnę SalesDate w tabeli Orders, ale utworzyć nową tabelę dla transakcji i osobną tabelę dla informacji dotyczących wysyłki. Za pomocą kolumn obliczeniowych można utworzyć kopie kolumn ShippingDate i TransactionDate, co umożliwi zagwarantowanie, że będą one synchronizowane.
W przykładowym skoroszycie języka DAX znajduje się przykład sposobu tworzenia kopii kolumn dat i efektywnej pracy z nimi. Aby uzyskać więcej informacji dotyczących uzyskiwania przykładów, zobacz temat Pobieranie przykładowych danych dla programu PowerPivot.
Zobacz także
Koncepcje
Omówienie języka DAX (Data Analysis Expressions)