Typy danych w modelach danych

Dotyczy
Excel dla Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

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 dodatku 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.
Nie dotyczy 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ż dodatek 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 dodatek Power Pivot próbuje określić typ liczby i przedstawić ją jako liczbę.

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 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 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

Początek strony

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 Język dax Excel
PUSTE + PUSTE PUSTE 0 (zero)
PUSTE +5 5 5
PUSTE * 5 PUSTE 0 (zero)
5/BLANK Nieskończoność Błąd
0/BLANK Nan Błąd
PUSTE/PUSTE 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 PUSTE Błąd
PUSTE I PUSTE PUSTE 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.

Początek strony