Datové typy v datových modelech

Platí pro
Excel pro Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

V datovém modelu má každý sloupec přidružený datový typ, který určuje typ dat, která může sloupec obsahovat: celá čísla, desetinná čísla, text, peněžní data, data a časy atd. Datový typ taky určuje, jaké operace můžete se sloupcem provádět a kolik paměti bude potřeba k uložení hodnot ve sloupci.

Pokud používáte doplněk Power Pivot, můžete změnit datový typ sloupce. Tento postup může být potřeba, pokud jste sloupec kalendářních dat importovali jako řetězec, ale potřebujete, aby to bylo něco jiného. Další informace najdete v tématu Nastavení datového typu sloupce v Power Pivotu.

V tomto článku

Souhrn datových typů

Následující tabulka uvádí datové typy podporované v datovém modelu. Při importu dat nebo použití hodnoty ve vzorci jsou data převedena na jeden z těchto datových typů, přestože původní zdroj dat obsahuje jiný datový typ. Tyto datové typy používají i hodnoty, které jsou výsledkem vzorců.

Datový typ v Excelu Datový typ v jazyce DAX Popis
Celé číslo 64bitová (osmibajtová) celočíselná hodnota 1, 2 Čísla, která neobsahují desetinná místa. Celá čísla můžou být kladná nebo záporná, ale musí to být celá čísla v rozmezí -9 223 372 036 854 775 808 (-2^63) až 9 223 372 036 854 775 807 (2^63-1).
Desetinné číslo 64bitové (osmibajtové) reálné číslo 1, 2 Reálná čísla jsou čísla, která mohou mít desetinná místa. Reálná čísla pokrývají široký rozsah hodnot:
Záporné hodnoty od -1,79E +308 do -2,23E -308
Nula
Kladné hodnoty od 2,23E -308 do 1,79E + 308
Počet platných číslic je však omezen na 15 desetinných míst.
PRAVDA/NEPRAVDA Logická hodnota Hodnota True nebo False.
Text Funkce String Datový řetězec znaků Unicode. V textovém formátu můžou být řetězce, čísla nebo kalendářní data.
Maximální délka řetězce je 268 435 456 znaků Unicode (256 mega znaků) nebo 536 870 912 bajtů.
Datum Datum a čas Data a časy v akceptovaném vyjádření data a času
Platná kalendářní data jsou všechna data po 1. lednu 1900.
Měna Měna Datový typ Měna umožňuje hodnoty od -922 337 203 685 477,5808 do 922 337 203 685 477,5807 s pevnou přesností na čtyři desetinná místa.
Není k dispozici. Prázdné: Prázdná hodnota je datový typ jazyka DAX, který představuje a nahrazuje hodnoty null SQL. Prázdnou hodnotu můžete vytvořit pomocí funkce BLANK a testování prázdných hodnot pomocí logické funkce JE.PRÁZDNÉ.

1 Vzorce jazyka DAX nepodporují menší datové typy, než jsou uvedeny v tabulce.

2 Pokud se pokusíte importovat data, která obsahují velmi vysoké číselné hodnoty, může se import nezdařit s následující chybou:

Chyba databáze v paměti: Sloupec Název<> sloupce<> tabulky obsahuje hodnotu 1,7976931348623157e+308, která se nepodporuje. Operace byla zrušena.

K této chybě dochází, protože Power Pivot používá tuto hodnotu místo hodnoty null. Hodnoty v následujícím seznamu jsou synonyma pro hodnotu null:

Value (Hodnota)
9223372036854775807
-9223372036854775808
1,7976931348623158e+308
2.2250738585072014E-308

Odeberte hodnotu z dat a import opakujte.

Datový typ tabulky

Jazyk DAX používá datový typ tabulky v mnoha funkcích, jako jsou agregace a výpočty časového měřítka. Některé funkce vyžadují odkaz na tabulku. Jiné funkce vrátí tabulku, kterou pak můžete použít jako vstup pro další funkce. V některých funkcích, které vyžadují tabulku jako vstup, můžete zadat výraz, který je vyhodnocen jako tabulka; U některých funkcí je vyžadován odkaz na základní tabulku. Informace o požadavcích konkrétních funkcí naleznete v tématu Informace o funkcích jazyka DAX.

Implicitní a explicitní převod datového typu ve vzorcích jazyka DAX

Každá funkce jazyka DAX má specifické požadavky, pokud jde o typy dat, která se používají jako vstupy a výstupy. Některé funkce například vyžadují pro některé argumenty celá čísla a pro jiné kalendářní data. Jiné funkce vyžadují text nebo tabulky.

Pokud data ve sloupci, který zadáte jako argument, nejsou kompatibilní s datovým typem vyžadovaným funkcí, jazyk DAX v mnoha případech vrátí chybu. Jazyk DAX se však pokusí implicitně převést data na požadovaný datový typ kdykoli to bude možné. Příklady:

  • Datum můžete zadat jako řetězec a jazyk DAX tento řetězec analyzuje a pokusí se ho přetypovat jako jeden z formátů data a času systému Windows.
  • Můžete přičíst PRAVDA+1 a dostanete výsledek 2, protože PRAVDA je implicitně převedena na číslo 1 a je provedena operace 1+1.
  • Pokud sčítáte hodnoty ve dvou sloupcích a jedna z nich je reprezentována jako text ("12") a druhá jako číslo (12), jazyk DAX implicitně převede řetězec na číslo a pak provede sčítání pro číselný výsledek. Následující výraz vrátí hodnotu 44: = "22" + 22
  • Pokud se pokusíte zřetězit dvě čísla, Excel je zobrazí jako řetězce a potom je zřetězí. Následující výraz vrátí "1234": = 12 & 34

Následující tabulka shrnuje implicitní převody datových typů prováděné ve vzorcích. Aplikace Excel provádí implicitní převody, kdykoli je to možné, podle potřeby zadané operace.

Tabulka implicitních převodů dat

Typ převodu, který se provádí, určuje operátor, který před provedením požadované operace předává požadované hodnoty. V tabulkách jsou uvedené operátory a představují převod, který se provede u každého datového typu ve sloupci, pokud je spárovaný s datovým typem v protínajícím se řádku.

Poznámka

Tyto tabulky neobsahují datové typy Text. Pokud je číslo vyjádřeno v textovém formátu, v některých případech se Power Pivot pokusí určit typ čísla a vyjádřit ho jako číslo.

Sčítání (+)

Operátor (+) INTEGER CURRENCY REAL Datum a čas
INTEGER INTEGER CURRENCY REAL Datum a čas
CURRENCY CURRENCY CURRENCY REAL Datum a čas
REAL REAL REAL REAL Datum a čas
Datum a čas Datum a čas Datum a čas Datum a čas Datum a čas

Pokud je například v operaci sčítání použito reálné číslo v kombinaci s daty měny, jsou obě hodnoty převedeny na hodnotu REAL a výsledek bude vrácen jako REAL.

Odčítání (-)

V následující tabulce je záhlaví řádku minuend (levá strana) a záhlaví sloupce je subtrahend (pravá strana).

Operátor (-) INTEGER CURRENCY REAL Datum a čas
INTEGER INTEGER CURRENCY REAL REAL
CURRENCY CURRENCY CURRENCY REAL REAL
REAL REAL REAL REAL REAL
Datum a čas Datum a čas Datum a čas Datum a čas Datum a čas

Pokud je například v operaci odčítání použito datum s jiným datovým typem, převedou se na kalendářní data obě hodnoty a vrácená hodnota je také datum.

Poznámka

Datové modely také podporují unární operátor - (záporný), ale tento operátor nemění datový typ operandu.

Násobení (*)

Operátor (*) INTEGER CURRENCY REAL Datum a čas
INTEGER INTEGER CURRENCY REAL INTEGER
CURRENCY CURRENCY REAL CURRENCY CURRENCY
REAL REAL CURRENCY REAL REAL

Pokud je například při operaci násobení celé číslo zkombinováno s reálným číslem, jsou obě čísla převedena na reálná čísla a vrácená hodnota je rovněž SKUTEČ.

Dělení (/)

V následující tabulce je záhlaví řádku čitatelem a záhlaví sloupce jmenovatelem.

Operátor (/)
(Řádek/sloupec)
INTEGER CURRENCY REAL Datum a čas
INTEGER REAL CURRENCY REAL REAL
CURRENCY CURRENCY REAL CURRENCY REAL
REAL REAL REAL REAL REAL
Datum a čas REAL REAL REAL REAL

Pokud je například při dělení zkombinováno celé číslo s hodnotou měny, jsou obě hodnoty převedeny na reálná čísla a výsledek je také reálné číslo.

Relační operátory

Ve srovnávacích výrazech jsou logické hodnoty považovány za větší než řetězcové hodnoty a řetězcové hodnoty jsou považovány za větší než číselné hodnoty nebo hodnoty data a času; Čísla a hodnoty data a času mají stejné pořadí. Pro logické nebo řetězcové hodnoty se neprovádějí žádné implicitní převody; PRÁZDNÁ nebo prázdná hodnota se převede na 0/""/false v závislosti na datovém typu druhé porovnávané hodnoty.

Toto chování ilustrují následující výrazy jazyka DAX:

=KDYŽ(NEPRAVDA()>"pravda";"Výraz je pravda", "Výraz je nepravda"), vrátí "Výraz je pravdivý"

=KDYŽ("12">12;"Výraz je pravda";"Výraz je nepravda"), vrátí "Výraz je pravdivý".

=KDYŽ("12"=12;"Výraz je pravda";"Výraz je nepravda"), vrátí "Výraz je nepravda"

Převody se provádějí implicitně pro číselné typy nebo typy Datum a čas, jak je popsáno v následující tabulce:

Relační operátor INTEGER CURRENCY REAL Datum a čas
INTEGER INTEGER CURRENCY REAL REAL
CURRENCY CURRENCY CURRENCY REAL REAL
REAL REAL REAL REAL REAL
Datum a čas REAL REAL REAL Datum a čas

Začátek stránky

Zpracování prázdných hodnot, prázdných řetězců a nulových hodnot

V jazyce DAX jsou hodnoty null, prázdná hodnota, prázdná buňka nebo chybějící hodnota reprezentovány stejným novým typem hodnoty BLANK. Prázdné prázdné buňky můžete vygenerovat také pomocí funkce BLANK nebo můžete testovat prázdné buňky pomocí funkce JE.PRÁZDNÉ.

Způsob zpracování prázdných buněk při operacích, jako je sčítání nebo zřetězení, závisí na jednotlivých funkcích. Následující tabulka shrnuje rozdíly mezi vzorci jazyka DAX a Microsoft Excelu a způsoby zpracování prázdných buněk.

Expression Jazyk DAX Excel
PRÁZDNÉ + PRÁZDNÉ PRÁZDNÉ 0 (nula)
PRÁZDNÉ +5 5 5
PRÁZDNÉ * 5 PRÁZDNÉ 0 (nula)
5/PRÁZDNÉ Nekonečno Chyba
0/PRÁZDNÉ NaN Chyba
PRÁZDNÉ/PRÁZDNÉ PRÁZDNÉ Chyba
HODNOTA FALSE NEBO BLANK FALSE FALSE
HODNOTA FALSE A BLANK FALSE FALSE
PRAVDA NEBO PRÁZDNÉ TRUE TRUE
PRAVDA A PRÁZDNÉ NEPRAVDA PRAVDA
PRÁZDNÉ NEBO PRÁZDNÉ PRÁZDNÉ Chyba
PRÁZDNÉ A PRÁZDNÉ PRÁZDNÉ Chyba

Podrobnosti o tom, jak konkrétní funkce nebo operátor zachází s prázdnými hodnotami, najdete v jednotlivých tématech pro jednotlivé funkce jazyka DAX v části Přehled funkcí DAX.

Začátek stránky