W modelu danych każda kolumna ma skojarzony typ danych, który określa typ danych, które może zawierać kolumna: liczby pełne, liczby dziesiętne, tekst, dane pieniężne, daty i godziny itp. Typ danych określa również, jakie operacje na kolumnie można wykonać, i ile pamięci potrzeba do przechowywania wartości w kolumnie.
Jeśli korzystasz z dodatku Power Pivot, możesz zmienić typ danych kolumny. Może to być konieczne, jeśli kolumna z datą została zaimportowana jako ciąg, ale musi być czymś innym. 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. W przypadku 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. Wartości wynikające z formuł również używają tych typów danych.
Typ danych w programie Excel |
Typ danych w języku DAX |
Opis |
---|---|---|
Liczba całość |
64-bitowa (osiem bajtów) wartość całkowita 1, 2 |
Liczby bez miejsc dziesiętnych. Liczby całkowite mogą być liczbami dodatnimi lub ujemnmi, ale muszą to być liczby całkowite z 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 (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. |
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 zaakceptowanych reprezentacjach daty i godziny. Prawidłowe daty to wszystkie daty po 1 stycznia 1900 roku. |
Waluta |
Waluta |
Typ danych Waluta umożliwia wartości z od -922 337 203 685 477,5808 do 922 337 203 685 477,5807 z czterema dziesiętnym cyframi stałej dokładności. |
nd. |
Pusty |
Puste to typ danych w języku DAX reprezentujący i zamieniany na SQL null. Można utworzyć puste pole przy użyciu funkcji PUSTE i sprawdzić, czy wartości nie są puste, korzystając z 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, które mają bardzo duże wartości liczbowe, importowanie może się nie powieść z 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ż 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 ponownie zaimportować.
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 będzie obliczać tabelę. W przypadku niektórych funkcji wymagane jest odwołanie do tabeli podstawowej. Aby uzyskać informacje na temat wymagań określonych funkcji, zobacz Informacje dotyczące funkcji języka DAX.
Niejawne i jawne 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ślone 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 spróbuje niejawnie przekonwertować dane na wymagany typ danych. Na przykład:
-
Możesz wpisać datę jako ciąg, a język DAX przechowa ten ciąg i spróbuje go użyć jako jednego z formatów daty i godziny Windows daty i godziny.
-
Możesz dodać wartość PRAWDA + 1 i uzyskać wynik 2, ponieważ wartość PRAWDA jest niejawnie konwertowana na liczbę 1 i wykonywana jest operacja 1+1.
-
Jeśli dodasz wartości w dwóch kolumnach i jedna wartość będzie przedstawiana jako tekst ("12"), a druga jako liczba (12), język DAX niejawnie przekonwertuje ciąg na liczbę, a następnie doda wynik liczbowy. Następujące wyrażenie zwraca wartość 44: = "22" + 22
-
W przypadku próby połączenia dwóch liczb zostaną one Excel jako ciągi, a następnie zsuń. Następujące wyrażenie zwraca wartość "1234": = 12 & 34
W poniższej tabeli podsumowano niejawne konwersje typu danych wykonywane w formułach. Excel niejawnych konwersji, jeśli to możliwe, zgodnie z wymaganiami określonej operacji.
Tabela niejawnych konwersji danych
Typ wykonywanej konwersji jest ustalany przez operator, który rzutuje wymagane wartości przed wykonaniem żądanej operacji. Te tabele zawierają listę operatorów i wskazują sposób konwersji, która jest wykonywana na każdym typie danych w kolumnie, gdy jest sparowana z typem danych w wierszu przecinania się.
Uwaga: Te tabele nie zawierają danych typu Tekst. Gdy liczba jest reprezentowana jako w formacie tekstowym, w niektórych przypadkach Power Pivot próbie 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 w połączeniu z danymi walutowymi zostanie użyta liczba rzeczywista, obie wartości zostaną przekonwertowane na wartość REAL, a wynik zostanie zwrócony jako REAL.
Odejmowanie (-)
W poniższej tabeli nagłówek wiersza to minuend (lewa strona), a nagłówek kolumny to element podrzędny (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 w operacji odejmowania zostanie użyta data z innym typem danych, obie wartości zostaną przekonwertowane na daty, a zwrócona wartość również będzie datą.
Uwaga: Modele danych obsługują również operator liczby niearchiwowej (-), 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 w operacji mnożenia zostanie połączona liczba całkowita z liczbą rzeczywistą, obie liczby zostaną przekonwertowane na liczby rzeczywiste, a zwrócona wartość również będzie mieć wartość REAL.
Dział (/)
W poniższej tabeli nagłówek wiersza jest licznikiem, 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 w operacji dzielenia zostanie połączona liczba całkowita z wartością walutową, obie wartości zostaną przekonwertowane na liczby rzeczywiste, a wynik również będzie liczbą rzeczywistą.
Operatory porównania
W wyrażeniach porównania Wartości logiczne są uznawane za większe niż wartości ciągów, a wartości ciągów są traktowane jako większe niż wartości liczbowe lub wartości daty/czasu. liczby oraz wartości daty/czasu są traktowane jako takie same. Nie są wykonywane żadne konwersje niejawne dla wartości logicznych ani ciągowych. Wartość pusta lub pusta jest konwertowana na 0/"/fałsz w zależności od typu danych drugiej porównywanej wartości.
Następujące wyrażenia języka DAX ilustrują to zachowanie:
=JEŻELI(FAŁSZ()>"prawda","Wyrażenie ma wartość prawdziwą", "Wyrażenie ma wartość fałszywą"), zwraca wartość "Wyrażenie jest prawdziwe".
=JEŻELI("12">12;"Wyrażenie ma wartość prawdziwą", "Wyrażenie ma wartość fałszywą"), zwraca wartość "Wyrażenie jest prawdziwe".
=JEŻELI("12"=12;"Wyrażenie jest prawdziwe", "Wyrażenie ma wartość fałszywą"), zwraca wartość "Wyrażenie jest fałszywe"
Konwersje są wykonywane niejawnie dla typów liczb lub daty/czasu, jak opisano 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, wartość pusta, pusta komórka lub brakująca wartość są reprezentowane przez ten sam nowy typ wartości ( WARTOŚĆ PUSTA). Można również wygenerować puste komórki przy użyciu funkcji PUSTE lub sprawdzić, czy wartości nie są puste, korzystając z funkcji CZY.PUSTA.
Sposób obsługi pustych wartości w operacjach, takich jak dodawanie lub złączanie, zależy od poszczególnych funkcji. W poniższej tabeli podsumowano różnice między językami DAX i Microsoft Excel, w sposób obsługi pustych formuł.
Wyrażenie |
JĘZYK DAX |
Excel |
---|---|---|
BLANK + BLANK |
BLANK (PUSTE) |
0 (zero) |
BLANK +5 |
5 |
5 |
BLANK * 5 |
BLANK (PUSTE) |
0 (zero) |
5/BLANK |
Nieskończoność |
Błąd |
0/BLANK |
NaN |
Błąd |
PUSTE/PUSTE |
BLANK (PUSTE) |
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 |
BLANK (PUSTE) |
Błąd |
PUSTE I PUSTE |
BLANK (PUSTE) |
Błąd |
Aby uzyskać szczegółowe informacje na temat obsługi pustych wartości przez określoną funkcję lub operator, zobacz poszczególne tematy dotyczące poszczególnych funkcji języka DAX w sekcji Informacje dotyczące funkcji języka DAX.