Typy danych obsługiwane w skoroszytach programu PowerPivot

W tej sekcji opisano typy danych, których można używać w programie PowerPivot for Excel, oraz omówiono kwestię niejawnej konwersji typów danych podczas obliczania danych lub ich używania w formule języka DAX (Data Analysis Expressions).

Typy danych używane w programie PowerPivot for Excel

W programie PowerPivot można używać poniższych typów danych. W przypadku importu danych lub użycia wartości w formule, nawet jeśli oryginalne źródło danych zawiera inny typ danych, dane są konwertowane na jeden z poniższych typów danych. Dla wartości wynikających z formuł również są używane te typy danych.

Na ogół te typy danych zaimplementowano w celu umożliwienia przeprowadzania dokładnych obliczeń w kolumnach obliczeniowych, lecz dla zapewnienia spójności te same ograniczenia dotyczą również pozostałych danych w programie PowerPivot.

Formaty używane dla liczb, walut, dat i godzin powinny być zgodne z formatem wynikającym z ustawień regionalnych określonych na komputerze użytym do otwarcia skoroszytu. Do sterowania sposobem wyświetlania wartości można używać opcji formatowania w arkuszu.

Typ danych w interfejsie użytkownika programu PowerPivot

Typ danych w języku DAX

Opis

Liczba całkowita

64-bitowa (ośmiobajtowa) wartość całkowita 1, 2

Liczby bez miejsc dziesiętnych. Liczby całkowite mogą być dodatnie lub ujemne, ale muszą być liczbami całkowitymi z zakresu od -9 223 372 036 854 775 808 (-2^63) do 9 223 372 036 854 775 807 (2^63-1).

Liczba dziesiętna

64-bitowa (ośmiobajtowa) liczba rzeczywista 1, 2

Liczby rzeczywiste to liczby, które mogą mieć miejsca dziesiętne. Liczby rzeczywiste obejmują szeroką gamę wartości:

Wartości ujemne z zakresu od -1,79E +308 do -2,23E -308

Zero

Wartości dodatnie z zakresu od 2,23E -308 do 1,79E + 308

Jednak maksymalna liczba cyfr znaczących to 15 cyfr dziesiętnych.

PRAWDA/FAŁSZ

Boolean

Wartość Prawda lub Fałsz.

Tekst

String

Ciąg danych zawierający znaki w formacie Unicode. Mogą to być ciągi, liczby lub daty wyrażone w formacie tekstowym.

Maksymalna długość ciągu to 268 435 456 znaków Unicode (256 megaznaków) lub 536 870 912 bajtów.

Data

Date/time

Daty i godziny w akceptowanym formacie daty/godziny.

Prawidłowe daty są późniejsze niż 1 stycznia 1900 roku.

Waluta

Currency

Typ danych Waluta umożliwia używanie wartości z zakresu od -922 337 203 685 477,5808 do 922 337 203 685 477,5807 z czterema cyframi dziesiętnymi stałej dokładności.

Brak

Blank

Blank (wartość pusta) to typ danych w języku DAX reprezentujący i zastępujący wartości null języka SQL. Wartości puste można tworzyć za pomocą funkcji BLANK, a do sprawdzania, czy dana wartość jest wartością pustą, służy funkcja logiczna ISBLANK.

1 Formuły języka DAX nie obsługują typów danych mniejszych niż wymienione w tabeli.

2 Próba zaimportowania danych zawierających bardzo duże wartości liczbowe może zakończyć się następującym błędem:

Błąd bazy danych w pamięci: Kolumna <nazwa kolumny> tabeli <nazwa tabeli> zawiera wartość 1.7976931348623157e+308, która nie jest obsługiwana. Operacja została anulowana.

Ten błąd występuje, ponieważ program PowerPivot używa wymienionej w komunikacie wartości do przedstawiania wartości null. Wartości przedstawione na poniższej liście są synonimami wspomnianej uprzednio wartości null:

Wartość

9223372036854775807

-9223372036854775808

1,7976931348623158e+308

2,2250738585072014e-308

Należy usunąć wartość z danych i ponownie podjąć próbę importu.

Typ danych Table

Dodatkowo w języku DAX jest używany typ danych Table. Ten typ danych jest używany w języku DAX w wielu funkcjach, takich jak agregacje i obliczenia analizy czasowej. Niektóre funkcje wymagają odwołania do tabeli; inne funkcje zwracają tabelę, której można następnie używać jako danych wejściowych innych funkcji. W niektórych funkcjach wymagających tabeli jako danych wejściowych można określić wyrażenie, którego wynikiem jest tabela; w przypadku niektórych innych funkcji wymagane jest odwołanie do tabeli podstawowej. Aby uzyskać więcej informacji dotyczących wymagań określonych funkcji, zobacz temat Funkcje języka DAX — kompendium.

Niejawna i jawna konwersja typów danych w formułach języka DAX

Każda funkcja języka DAX ma określone wymagania dotyczące typów danych używanych jako dane wejściowe i wyjściowe. Na przykład niektóre funkcje wymagają liczb całkowitych jako pewnych argumentów i dat jako innych; inne funkcje wymagają tekstu lub tabel.

Jeśli dane w kolumnie określonej jako argument są niezgodne z typem danych wymaganym przez funkcję, w języku DAX w wielu przypadkach jest zwracany błąd. Jednak ilekroć to możliwe, w języku DAX następuje próba niejawnej konwersji danych na wymagany typ danych. Na przykład:

  • Można wpisać datę jako ciąg, a w języku DAX ciąg ten zostanie zanalizowany i nastąpi próba zrzutowania go na jeden z formatów daty i godziny systemu Windows.

  • Można wykonać dodawanie PRAWDA + 1 i otrzymać wynik 2, ponieważ wartość PRAWDA jest niejawnie konwertowana na liczbę 1 i przeprowadzana jest operacja 1+1.

  • W przypadku dodawania wartości w dwóch kolumnach, gdy jedna wartość jest przedstawiona jako tekst („12”), a druga jako liczba (12), w języku DAX następuje niejawna konwersja ciągu na liczbę i przeprowadzane jest dodawanie dające wynik liczbowy. Poniższe wyrażenie zwraca wartość 44 ("22" + 22).

  • Przy próbie połączenia dwóch liczb dodatek PowerPivot przedstawia te liczby jako ciągi, a następnie je łączy. Poniższe wyrażenie zwraca wartość 1234 (12 & 34).

W poniższej tabeli podsumowano niejawne konwersje typów danych przeprowadzane w formułach. Na ogół program PowerPivot zachowuje się podobnie do programu Microsoft Excel i przeprowadza niejawne konwersje, ilekroć jest to możliwie, jeśli wymaga tego określona operacja.

Tabela niejawnych konwersji typów danych

O typie przeprowadzanej konwersji decyduje operator, który przed wykonaniem żądanej operacji rzutuje wymagane przez siebie wartości. Poniższe tabele zawierają listę operatorów i wskazują, jaka konwersja jest przeprowadzana dla danego typu danych w kolumnie, jeśli „spotka się on” z innym typem danych w przecinającym ją wierszu.

[!UWAGA]

Tekstowe typy danych nie są uwzględnione w tych tabelach. Jeśli wartość liczbowa jest przedstawiona w formacie tekstowym, w niektórych przypadkach program PowerPivot próbuje ustalić typ tej wartości i przedstawić ją jako liczbę.

Dodawanie (+)

Operator (+)

Liczba całkowita

Waluta

Liczba rzeczywista

Data/godzina

Liczba całkowita

Liczba całkowita

Waluta

Liczba rzeczywista

Data/godzina

Waluta

Waluta

Waluta

Liczba rzeczywista

Data/godzina

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Data/godzina

Data/godzina

Data/godzina

Data/godzina

Data/godzina

Data/godzina

Jeśli na przykład liczba rzeczywista jest używana w operacji dodawania w połączeniu z danymi walutowymi, obie wartości są konwertowane na liczby rzeczywiste i wynikiem jest wartość typu Liczba rzeczywista.

Odejmowanie (-)

W poniższej tabeli nagłówek wiersza jest odjemną (lewa strona), a nagłówek kolumny jest odjemnikiem (prawa strona).

Operator (-)

Liczba całkowita

Waluta

Liczba rzeczywista

Data/godzina

Liczba całkowita

Liczba całkowita

Waluta

Liczba rzeczywista

Liczba rzeczywista

Waluta

Waluta

Waluta

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Data/godzina

Data/godzina

Data/godzina

Data/godzina

Data/godzina

Jeśli na przykład data jest używana w operacji odejmowania razem z jakimkolwiek innym typem danych, obie wartości są konwertowane na daty i zwracana wartość jest również datą.

[!UWAGA]

Program PowerPivot obsługuje także operator jednoargumentowy - (negacja), ale ten operator nie zmienia typu danych argumentu.

Mnożenie (*)

Operator (*)

Liczba całkowita

Waluta

Liczba rzeczywista

Data/godzina

Liczba całkowita

Liczba całkowita

Waluta

Liczba rzeczywista

Liczba całkowita

Waluta

Waluta

Liczba rzeczywista

Waluta

Waluta

Liczba rzeczywista

Liczba rzeczywista

Waluta

Liczba rzeczywista

Liczba rzeczywista

Jeśli na przykład liczba całkowita jest używana w operacji mnożenia w połączeniu z liczbą rzeczywistą, obie liczby są konwertowane na liczby rzeczywiste i zwracana wartość jest również liczbą rzeczywistą.

Dzielenie (/)

W poniższej tabeli nagłówek wiersza jest licznikiem, a nagłówek kolumny jest mianownikiem.

Operator (/)

(Wiersz/Kolumna)

Liczba całkowita

Waluta

Liczba rzeczywista

Data/godzina

Liczba całkowita

Liczba rzeczywista

Waluta

Liczba rzeczywista

Liczba rzeczywista

Waluta

Waluta

Liczba rzeczywista

Waluta

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Data/godzina

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Jeśli na przykład liczba całkowita jest używana w operacji dzielenia w połączeniu z wartością walutową, obie wartości są konwertowane na liczby rzeczywiste i wynik jest również liczbą rzeczywistą.

Operatory porównania

W wyrażeniach porównania wartości logiczne są traktowane jako większe niż wartości ciągu, a wartości ciągu są traktowane jako większe niż wartości daty/godziny. Wartości liczbowe i wartości daty/godziny są traktowane jako równe. W przypadku wartości logicznych lub wartości ciągu nie są wykonywane niejawne konwersje. Wartość pusta (BLANK) jest konwertowana na wartość 0/""/fałsz, w zależności od typu danych drugiej porównywanej wartości.

Poniższe wyrażenia języka DAX pokazują to zachowanie:

=IF(FALSE()>"true","Expression is true", "Expression is false") zwraca "Expression is true"

=IF("12">12,"Expression is true", "Expression is false") zwraca "Expression is true"

=IF("12"=12,"Expression is true", "Expression is false") zwraca "Expression is false"

Konwersje typów liczbowych i daty/godziny są wykonywane niejawnie, tak jak pokazano w poniższej tabeli:

Operator porównania

Liczba całkowita

Waluta

Liczba rzeczywista

Data/godzina

Liczba całkowita

Liczba całkowita

Waluta

Liczba rzeczywista

Liczba rzeczywista

Waluta

Waluta

Waluta

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Data/godzina

Liczba rzeczywista

Liczba rzeczywista

Liczba rzeczywista

Data/godzina

Obsługa wartości pustych, ciągów pustych i wartości zerowych

Sposób obsługi wartości zerowych, wartości null i ciągów pustych w języku DAX jest inny niż w programach Microsoft Excel i SQL Server. W tej sekcji opisano różnice oraz sposób obsługi tych typów danych.

Ważną rzeczą, o której należy pamiętać, jest to, że w programie PowerPivot wartość pusta, pusta komórka i wartość brakująca są reprezentowane przez ten sam nowy typ wartości, BLANK. Sposób obsługi wartości pustych w operacjach, takich jak dodawanie i łączenie, zależy od indywidualnej funkcji. Można również generować wartości puste — za pomocą funkcji BLANK, a do sprawdzania, czy dana wartość jest wartością pustą, służy funkcja ISBLANK. Bazodanowe wartości null nie są obsługiwane w programie PowerPivot i wartości null są konwertowane na wartości puste, jeśli formuła języka DAX odwołuje się do wartości null.

Definiowanie wartości pustych, wartości null i ciągów pustych

W poniższej tabeli podsumowano różnice w sposobie obsługi wartości pustych w języku DAX i programie Microsoft Excel.

Wyrażenie

Język DAX

Program Excel

Wartość pusta + Wartość pusta

Wartość pusta

0 (zero)

Wartość pusta + 5

5

5

Wartość pusta * 5

Wartość pusta

0 (zero)

5/Wartość pusta

Nieskończoność

Błąd

0/Wartość pusta

NaN

Błąd

Wartość pusta/Wartość pusta

Wartość pusta

Błąd

Fałsz LUB Wartość pusta

Fałsz

Fałsz

Fałsz ORAZ Wartość pusta

Fałsz

Fałsz

Prawda LUB Wartość pusta

Prawda

Prawda

Prawda ORAZ Wartość pusta

Fałsz

Prawda

Wartość pusta LUB Wartość pusta

Wartość pusta

Błąd

Wartość pusta ORAZ Wartość pusta

Wartość pusta

Błąd

Aby uzyskać szczegółowe informacje dotyczące sposobu obsługi wartości pustych przez określoną funkcję lub operator, zobacz tematy dotyczące poszczególnych funkcji języka DAX w sekcji Funkcje języka DAX — kompendium.

Zobacz także

Koncepcje

Omówienie języka DAX (Data Analysis Expressions)