W modelu danych każda kolumna ma skojarzony typ danych określający typ danych, które może zawierać kolumna: liczby całkowite, liczby dziesiętne, tekst, dane pieniężne, daty i godziny itd. Typ danych określa również rodzaje operacji, które można wykonać w kolumnie, oraz ilość pamięci potrzebną do przechowywania wartości w kolumnie.
Jeśli korzystasz z dodatku Power Pivot, możesz zmienić typ danych kolumny. Może być konieczne zrobienie tego, jeśli kolumna daty została zaimportowana jako ciąg znaków, ale potrzebujesz czegoś innego. Aby uzyskać więcej informacji, zobacz Ustawianie typu danych kolumny w Power Pivot.
W tym artykule
Podsumowanie typów danych
W poniższej tabeli wymieniono typy danych obsługiwane w modelu danych. Podczas importowania danych lub używania wartości w formule, nawet jeśli oryginalne źródło danych zawiera inny typ danych, dane są konwertowane na jeden z tych typów danych. W wartościach wynikających z formuł są również używane te typy danych.
Typ danych w programie Excel |
Typ danych w języku DAX |
Opis |
---|---|---|
Liczba całkowita |
64-bitowa (osiem bajtów) wartość całkowita 1, 2 |
Liczby, które nie mają miejsc dziesiętnych. Liczby całkowite mogą być liczbami dodatnimi lub ujemnymi, ale muszą być liczbami całkowitymi między -9 223 372 036 854 775 808 (-2^63) a 9 223 372 036 854 775 807 (2^63-1). |
Liczba dziesiętna |
64-bitowa (osiem bajtów) liczba rzeczywista 1, 2 |
Liczby rzeczywiste to liczby, które mogą mieć miejsca dziesiętne. Liczby rzeczywiste obejmują szeroki zakres wartości: Wartości ujemne od -1,79E +308 do -2,23E -308 Zero Wartości dodatnie od 2,23E -308 do 1,79E + 308 Liczba cyfr znaczących jest jednak ograniczona do 15 cyfr dziesiętnych. |
PRAWDA/FAŁSZ |
wartość logiczna |
Wartość Prawda lub Fałsz. |
Text (Tekst) |
Ciąg |
Ciąg danych znaku Unicode. Mogą to być ciągi, liczby lub daty reprezentowane w formacie tekstowym. Maksymalna długość ciągu to 268 435 456 znaków Unicode (256 mega znaków) lub 536 870 912 bajtów. |
Data |
Data/godzina |
Daty i godziny w zaakceptowanej reprezentacji daty i godziny. Prawidłowe daty to wszystkie daty po 1 stycznia 1900 roku. |
Waluta |
Waluta |
Typ danych Waluta umożliwia wartości z zakresu od -922 337 203 685 477,5808 do 922 337 203 685 477,5807 przy stałej dokładności czterech cyfr dziesiętnych. |
N/D |
Pusty |
Puste to typ danych w języku DAX, który reprezentuje i zastępuje wartości null SQL. Możesz utworzyć puste pole przy użyciu funkcji PUSTE, a następnie przetestować puste miejsca przy użyciu funkcji logicznej CZY.PUSTA. |
1 Formuły języka DAX nie obsługują typów danych mniejszych niż wymienione w tabeli.
2 Jeśli spróbujesz zaimportować dane o bardzo dużych wartościach liczbowych, importowanie może zakończyć się niepowodzeniem z powodu następującego błędu:
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ż Power Pivot używa tej wartości do reprezentowania wartości null. Wartości na poniższej liście są synonimami wartości null:
Value (Wartość) |
|
---|---|
9223372036854775807 |
|
-9223372036854775808 |
|
1,7976931348623158e+308 |
|
2.2250738585072014e-308 |
Usuń wartość z danych i spróbuj zaimportować ją ponownie.
Typ danych tabeli
Język DAX używa typu danych tabeli w wielu funkcjach, takich jak agregacje i obliczenia analizy czasowej. Niektóre funkcje wymagają odwołania do tabeli. inne funkcje zwracają tabelę, która może być następnie używana jako dane wejściowe do innych funkcji. W niektórych funkcjach wymagających tabeli jako danych wejściowych można określić wyrażenie, które jest obliczane jako tabela. w przypadku niektórych funkcji wymagane jest odwołanie do tabeli podstawowej. Aby uzyskać informacje na temat wymagań określonych funkcji, zobacz Dokumentacja funkcji języka DAX.
Niejawna i jawna konwersja typu 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 dla niektórych argumentów i dat dla 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 wielu przypadkach język DAX zwraca błąd. Jednak tam, gdzie to możliwe, język DAX podejmie próbę niejawnego przekonwertowania danych na wymagany typ danych. Na przykład:
-
Możesz wpisać datę jako ciąg, a język DAX przearodkuje ciąg i spróbuje go oddać jako jeden z formatów daty i godziny systemu Windows.
-
Możesz dodać prawda + 1 i uzyskać wynik 2, ponieważ niejawnie jest konwertowany na liczbę 1 i wykonywana jest operacja 1+1.
-
Jeśli dodajesz wartości w dwóch kolumnach, a jedna wartość jest reprezentowana jako tekst ("12"), a druga jako liczba (12), język DAX niejawnie konwertuje ciąg na liczbę, a następnie dodaje wynik liczbowy. Następujące wyrażenie zwraca wartość 44: = "22" + 22
-
Jeśli spróbujesz połączyć dwie liczby, program Excel przedstawi je jako ciągi, a następnie połącz. Następujące wyrażenie zwraca wartość "1234": = 12 & 34
W poniższej tabeli podsumowano niejawne konwersje typów danych wykonywane w formułach. Program Excel wykonuje konwersje niejawne, gdy tylko jest to możliwe, zgodnie z wymaganiami określonej operacji.
Tabela niejawnych konwersji danych
Typ wykonywanej konwersji jest określany przez operator, który emituje wymagane wartości przed wykonaniem żądanej operacji. W tych tabelach wymieniono operatory i wskazano konwersję wykonywaną dla każdego typu danych w kolumnie, gdy jest ona sparowana z typem danych w przecinającym się wierszu.
Uwaga: Typy danych tekstu nie są uwzględniane w tych tabelach. Gdy liczba jest reprezentowana jak w formacie tekstowym, w niektórych przypadkach Power Pivot podejmie próbę określenia typu liczby i reprezentowania jej jako liczby.
Dodawanie (+)
Operator (+) |
INTEGER |
CURRENCY |
REAL |
Data/godzina |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
Data/godzina |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
Data/godzina |
REAL |
REAL |
REAL |
REAL |
Data/godzina |
Data/godzina |
Data/godzina |
Data/godzina |
Data/godzina |
Data/godzina |
Jeśli na przykład podczas operacji dodawania użyto liczby rzeczywistej w połączeniu z danymi walutowymi, obie wartości zostaną przekonwertowane na wartość REAL, a wynik zostanie zwrócony jako RZECZYWISTY.
Odejmowanie (-)
W poniższej tabeli nagłówek wiersza to miniuend (po lewej stronie), a nagłówek kolumny to odejmowanie (po prawej stronie).
Operator (-) |
INTEGER |
CURRENCY |
REAL |
Data/godzina |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Data/godzina |
Data/godzina |
Data/godzina |
Data/godzina |
Data/godzina |
Jeśli na przykład data jest używana podczas operacji odejmowania z dowolnym innym typem danych, obie wartości są konwertowane na daty, a zwracana wartość jest również datą.
Uwaga: Modele danych obsługują również operator niepowiązany — (ujemny), ale ten operator nie zmienia typu danych operandu.
Mnożenie (*)
Operator (*) |
INTEGER |
CURRENCY |
REAL |
Data/godzina |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
INTEGER |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
CURRENCY |
REAL |
REAL |
CURRENCY |
REAL |
REAL |
Jeśli na przykład liczba całkowita jest łączona z liczbą rzeczywistą w operacji mnożenia, obie liczby są konwertowane na liczby rzeczywiste, a zwracana wartość jest również RZECZYWISTA.
Dział (/)
W poniższej tabeli nagłówek wiersza to numerator, a nagłówek kolumny to mianownik.
Operator (/) (Wiersz/kolumna) |
INTEGER |
CURRENCY |
REAL |
Data/godzina |
---|---|---|---|---|
INTEGER |
REAL |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Data/godzina |
REAL |
REAL |
REAL |
REAL |
Jeśli na przykład liczba całkowita zostanie połączona z wartością walutową w operacji dzielenia, obie wartości zostaną przekonwertowane na liczby rzeczywiste, a wynik będzie również liczbą rzeczywistą.
Operatory porównania
W wyrażeniach porównania wartości logiczne są uważane za większe niż wartości ciągów, a wartości ciągów są uważane za większe niż wartości liczbowe lub wartości daty/godziny. liczby i wartości daty/godziny są traktowane jako takie same. Nie są wykonywane konwersje pośrednie dla wartości logicznych lub ciągów; Wartość PUSTA lub pusta jest konwertowana na wartość 0/"/"/fałsz w zależności od typu danych drugiej porównywanej wartości.
Następujące wyrażenia języka DAX ilustrują następujące zachowanie:
=JEŻELI(FAŁSZ()>"prawda";"Wyrażenie jest prawdziwe", "Wyrażenie jest fałszywe"), zwraca "Wyrażenie jest prawdziwe"
=JEŻELI("12">12;"Wyrażenie jest prawdziwe", "Wyrażenie ma wartość fałszywą"), zwraca wartość "Wyrażenie jest prawdziwe".
=JEŻELI("12"=12;"Wyrażenie jest prawdziwe", "Wyrażenie jest fałszywe") zwraca wartość "Wyrażenie jest fałszywe"
Konwersje są wykonywane niejawnie dla typów liczb lub daty/godziny zgodnie z opisem w poniższej tabeli:
Operator porównania |
INTEGER |
CURRENCY |
REAL |
Data/godzina |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Data/godzina |
REAL |
REAL |
REAL |
Data/godzina |
Obsługa pustych, pustych ciągów i wartości zerowych
W języku DAX wartość null, pusta, pusta komórka lub brakująca wartość są reprezentowane przez ten sam nowy typ wartości— BLANK. Można również generować puste wartości przy użyciu funkcji PUSTE lub sprawdzać, czy są puste, używając funkcji CZY.PUSTA.
Sposób obsługi pustych miejsc w operacjach, takich jak dodawanie lub łączenie, zależy od poszczególnych funkcji. W poniższej tabeli podsumowano różnice między formułami języka DAX i programu Microsoft Excel w sposobie obsługi pustych elementów.
Expression |
DAX |
Excel |
---|---|---|
PUSTE + PUSTE |
PUSTY |
0 (zero) |
PUSTE +5 |
5 |
5 |
PUSTE * 5 |
PUSTY |
0 (zero) |
5/BLANK |
Nieskończoność |
Błąd |
0/BLANK |
Nan |
Błąd |
PUSTE/PUSTE |
PUSTY |
Błąd |
FAŁSZ LUB PUSTE |
FALSE |
FALSE |
FAŁSZ I PUSTE |
FALSE |
FALSE |
PRAWDA LUB PUSTE |
TRUE |
TRUE |
PRAWDA I PUSTE |
FAŁSZ |
PRAWDA |
PUSTE LUB PUSTE |
PUSTY |
Błąd |
PUSTE I PUSTE |
PUSTY |
Błąd |
Aby uzyskać szczegółowe informacje na temat sposobu, w jaki określona funkcja lub operator obsługuje puste pola, zobacz poszczególne tematy dotyczące poszczególnych funkcji języka DAX w sekcji Dokumentacja funkcji języka DAX.