Typy danych w modelach danych

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

W modelu danych z każdą kolumną jest skojarzony typ danych określający typ danych, które mogą być przechowywane w kolumnie: liczby całkowite, liczby dziesiętne, tekst, dane finansowe, daty i godziny itp. Typ danych określa również, jakiego rodzaju operacje można wykonywać na kolumnie, a także ilość pamięci wymaganej do przechowywania wartości w kolumnie.

Jeśli używasz dodatku Power Pivot, możesz zmienić typ danych kolumny. Może to być konieczne, jeśli kolumna dat została zaimportowana jako ciąg, ale musi to być coś 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. 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
Pełna liczba 64-bitowa (ośmiobajtowa) liczba 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 z przedziału 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ą szeroki zakres wartości:
Ujemne wartości 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 wynosi 268 435 456 znaków Unicode (256 megaznaków) lub 536 870 912 bajtów.
Data Data/godzina Daty i godziny w akceptowanej reprezentacji daty i godziny.
Prawidłowe daty to wszystkie daty po 1 stycznia 1900 roku.
Waluta Waluta Typ danych Waluta dopuszcza wartości z zakresu od -922 337 203 685 477,5808 do 922 337 203 685 477,5807 z czterema cyframi dziesiętnymi o stałej precyzji.
Nie dotyczy Pusty Pusta to typ danych w języku DAX, który reprezentuje i zamienia wartości null języka SQL. Za pomocą funkcji PUSTE można utworzyć puste wartości, a następnie sprawdzić wartości puste 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 Próba importowania danych zawierających bardzo duże wartości liczbowe może zakończyć się niepowodzeniem z powodu następującego błędu:

Błąd bazy danych w pamięci: Kolumna "<nazwa> kolumny" tabeli<> 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ć ponownie.

Typ danych tabeli

Język DAX używa typu danych tabela 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 dla innych funkcji. W niektórych funkcjach, które wymagają tabeli jako danych wejściowych, można określić wyrażenie, którego wynikiem jest tabela; W przypadku niektórych funkcji jest wymagane odwołanie do tabeli podstawowej. Aby uzyskać informacje o wymaganiach poszczególnych funkcji, zobacz Dokumentacja funkcji języka DAX.

Konwersja niejawnych i jawnych 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 dla jednych argumentów, a dat dla innych; Inne funkcje wymagają tekstu lub tabel.

Jeśli dane w kolumnie wskazanej jako argument są niezgodne z typem danych wymaganym przez funkcję, język DAX w wielu przypadkach zwraca błąd. Jednak tam, gdzie jest to możliwe, język DAX będzie próbował niejawnie przekonwertować dane na wymagany typ danych. Na przykład:

  • Możesz wpisać datę jako ciąg, a język DAX przeanalizuje ten ciąg i podejmie próbę rzutowania go jako jednego z formatów daty i godziny systemu Windows.
  • Możesz dodać wartość PRAWDA + 1 i otrzymać wynik 2, ponieważ wartość PRAWDA jest niejawnie konwertowana na liczbę 1 i jest wykonywana operacja 1+1.
  • Jeśli dodasz wartości w dwóch kolumnach, z których jedna będzie przedstawiona jako tekst ("12"), a druga jako liczba (12), język DAX niejawnie przekonwertuje ciąg na liczbę, a następnie wykona dodawanie dla wyniku liczbowego. 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łączy je. 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 konwersji danych niejawnych

Typ wykonywanej konwersji jest określany przez operatora, 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 on sparowany z typem danych w przecinającym się wierszu.

Uwaga

Typy danych tekstowych nie są uwzględnione w tych tabelach. Gdy liczba jest reprezentowana w formacie tekstowym, w niektórych przypadkach dodatek Power Pivot podejmie próbę określenia typu 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 liczba rzeczywista zostanie użyta w operacji dodawania w połączeniu z danymi walutowymi, obie wartości zostaną przekonwertowane na funkcję REAL, a wynik zostanie zwrócony jako REAL.

Odejmowanie (-)

W poniższej tabeli nagłówek wiersza to nagłówek minimalny (lewa strona), a nagłówek kolumny to odejmownik (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 w operacji odejmowania z dowolnym innym typem danych, obie wartości są konwertowane na daty, a zwracana wartość również jest datą.

Uwaga

Modele danych obsługują również operator jednoargumentowy - (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 zostanie połączona z liczbą rzeczywistą w operacji mnożenia, obie liczby zostaną przekonwertowane na liczby rzeczywiste, a zwrócona wartość również będzie równa REAL.

Dzielenie (/)

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

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 liczba całkowita zostanie połączona 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ównań wartości logiczne są uznawane 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; Przyjmuje się, że liczby oraz wartości daty/godziny mają taką samą pozycję. Nie są wykonywane żadne konwersje niejawne dla wartości logicznych lub ciągów; Wartość pusta lub wartość 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 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 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 w przypadku typów liczbowych 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 wartości pustych, pustych ciągów i wartości zerowych

W języku DAX wartość null, pusta wartość, pusta komórka lub brakująca wartość są reprezentowane przez ten sam nowy typ wartości — wartość pustą. Puste komórki można również wygenerować przy użyciu funkcji BLANK lub wygenerować wartości puste przy użyciu funkcji ISBLANK.

Sposób obsługi pustych miejsc w operacjach, takich jak dodawanie lub łączenie, zależy od danej funkcji. W poniższej tabeli podsumowano różnice między formułami języka DAX i programu Microsoft Excel dotyczące sposobu obsługi wartości pustych.

Expression Język DAX Excel
PUSTE + PUSTE BLANK (Puste) 0 (zero)
PUSTE +5 5 5
PUSTE * 5 BLANK (Puste) 0 (zero)
5/BLANK Nieskończoność Błąd
0/PUSTE NaN Błąd
PUSTE/PUSTE BLANK (Puste) Błąd
FAŁSZ LUB WARTOŚĆ PUSTA FALSE FALSE
FALSE AND BLANK 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 sposobu obsługi pustych pól przez określoną funkcję lub operator, zobacz poszczególne tematy dotyczące poszczególnych funkcji języka DAX w sekcji Dokumentacja funkcji języka DAX.

Początek strony