V dátovom modeli má každý stĺpec priradený typ údajov, ktorý určuje typ údajov, ktoré môže stĺpec obsahovať: celé čísla, desatinné čísla, text, peňažné údaje, dátumy a časy atď. Typ údajov tiež určuje, aké druhy operácií môžete vykonať v stĺpci a koľko pamäte je potrebné na uloženie hodnôt v stĺpci.
Ak používate doplnok Power Pivot, môžete zmeniť typ údajov stĺpca. Možno to budete musieť urobiť, ak bol stĺpec dátumu importovaný ako reťazec, ale potrebujete, aby to bolo niečo iné. Ďalšie informácie nájdete v téme Nastavenie typu údajov stĺpca v Power Pivot.
Obsah tohto článku
Súhrn typov údajov
V nasledujúcej tabuľke sú uvedené typy údajov podporované v dátovom modeli. Keď importujete údaje alebo používate hodnotu vo vzorci, aj keď pôvodný zdroj údajov obsahuje iný typ údajov, údaje sa skonvertujú na jeden z týchto typov údajov. Tieto typy údajov sa používajú aj v hodnotách, ktoré sú výsledkom vzorcov.
Typ údajov v Exceli |
Typ údajov v jazyku DAX |
Popis |
---|---|---|
Celé číslo |
64-bitová (osembajtová) celočíselná hodnota 1, 2 |
Čísla bez desatinných miest. Celé čísla môžu byť kladné alebo záporné čísla, ale musia to byť celé čísla medzi -9 223 372 036 854 775 808 (-2^63) a 9 223 372 036 854 775 807 (2^63-1). |
Desatinné číslo |
64-bitové (osembajtové) reálne číslo 1, 2 |
Reálne čísla sú čísla, ktoré môžu mať desatinné miesta. Reálne čísla pokrývajú širokú škálu hodnôt: 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 obmedzený na 15 desatinných miest. |
TRUE/FALSE |
boolovský výraz |
Hodnota True alebo False. |
Text |
String |
Reťazec údajov znakov Unicode. Môžu to byť reťazce, čísla alebo dátumy vyjadrené v textovom formáte. Maximálna dĺžka reťazca je 268 435 456 znakov Unicode (256 mega znakov) alebo 536 870 912 bajtov. |
Dátum |
Dátum/čas |
Dátumy a časy v akceptovanom vyjadrení dátumu a času. Platné dátumy sú všetky dátumy po 1. januári 1900. |
Mena |
Mena |
Typ údajov Mena umožňuje hodnoty od -922 337 203 685 477,5808 do 922 337 203 685 477,5807 so štyrmi desatinnými číslicami s pevnou presnosťou. |
Nie je k dispozícii |
Prázdna |
Prázdna hodnota je typ údajov v jazyku DAX, ktorý predstavuje a nahrádza hodnoty null SQL. Prázdnu hodnotu môžete vytvoriť pomocou funkcie BLANK a prázdne hodnoty testovať pomocou logickej funkcie ISBLANK. |
1 vzorce DAX nepodporujú typy údajov menšie ako tie, ktoré sú uvedené v tabuľke.
2 Ak sa pokúsite importovať údaje s veľmi veľkými číselnými hodnotami, import môže zlyhať s nasledujúcou chybou:
Chyba databázy v pamäti: Stĺpec <názov stĺpca> tabuľky <názov tabuľky> obsahuje hodnotu 1,7976931348623157e+308, ktorá nie je podporovaná. Operácia bola zrušená.
Táto chyba sa vyskytuje, pretože Power Pivot používa túto hodnotu na vyjadrenie hodnôt null. Hodnoty v nasledujúcom zozname sú synonymá pre hodnotu null:
Hodnota |
|
---|---|
9223372036854775807 |
|
-9223372036854775808 |
|
1,7976931348623158e+308 |
|
2.2250738585072014e-308 |
Odstráňte hodnotu z údajov a skúste vykonať import znova.
Typ údajov tabuľky
Dax používa typ údajov tabuľky v mnohých funkciách, ako sú napríklad agregácie a výpočty časovej inteligencie. Niektoré funkcie vyžadujú odkaz na tabuľku. iné funkcie vrátia tabuľku, ktorú potom možno použiť ako vstup pre iné funkcie. V niektorých funkciách, ktoré ako vstup vyžadujú tabuľku, môžete zadať výraz, ktorý sa vyhodnotí do tabuľky. v prípade niektorých funkcií sa vyžaduje odkaz na základnú tabuľku. Informácie o požiadavkách na konkrétne funkcie nájdete v téme Referenčné informácie o funkciách jazyka DAX.
Implicitná a explicitná konverzia typu údajov vo vzorcoch DAX
Každá funkcia jazyka DAX má špecifické požiadavky na typy údajov, ktoré sa používajú ako vstupy a výstupy. Niektoré funkcie napríklad vyžadujú celé čísla pre niektoré argumenty a dátumy pre iné. iné funkcie vyžadujú text alebo tabuľky.
Ak údaje v stĺpci, ktoré zadáte ako argument, nie sú kompatibilné s typom údajov požadovaným funkciou, jazyk DAX v mnohých prípadoch vráti chybu. Všade, kde je to možné, sa však jazyk DAX pokúsi implicitne skonvertovať údaje na požadovaný typ údajov. Príklad:
-
Môžete zadať dátum ako reťazec a DAX analyzuje reťazec a pokúsi sa ho odovzdať ako jeden z formátov dátumu a času systému Windows.
-
Môžete pridať hodnotu TRUE + 1 a získať výsledok 2, pretože hodnota TRUE sa implicitne skonvertuje na číslo 1 a vykoná sa operácia 1+ 1.
-
Ak pridáte hodnoty do dvoch stĺpcov a jedna hodnota sa zobrazí ako text ("12") a druhá ako číslo (12), DAX implicitne skonvertuje reťazec na číslo a potom sčíta číselný výsledok. Nasledujúci výraz vráti hodnotu 44: = "22" + 22
-
Ak sa pokúsite zreťaziť dve čísla, Excel ich zobrazí ako reťazce a potom ich zreťazí. Nasledujúci výraz vráti hodnotu "1234": = 12 & 34
Nasledujúca tabuľka obsahuje súhrn implicitných konverzií typov údajov, ktoré sa vykonávajú vo vzorcoch. Excel vykoná implicitné konverzie vždy, keď je to možné, ako to vyžaduje zadaná operácia.
Tabuľka implicitných konverzií údajov
Typ vykonanej konverzie určuje operátor, ktorý vyhotoví hodnoty, ktoré vyžaduje pred vykonaním požadovanej operácie. Tieto tabuľky obsahujú zoznam operátorov a označujú konverziu, ktorá sa vykoná na každom type údajov v stĺpci, keď je spárovaná s typom údajov v pretínacom riadku.
Poznámka: Textové typy údajov nie sú zahrnuté v týchto tabuľkách. Keď je číslo vyjadrené ako v textovom formáte, v niektorých prípadoch sa Power Pivot pokúsi určiť typ čísla a reprezentovať ho ako číslo.
Sčítanie (+)
Operátor (+) |
INTEGER |
CURRENCY |
REAL |
Dátum/čas |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
Dátum/čas |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
Dátum/čas |
REAL |
REAL |
REAL |
REAL |
Dátum/čas |
Dátum/čas |
Dátum/čas |
Dátum/čas |
Dátum/čas |
Dátum/čas |
Ak sa napríklad reálne číslo používa v operácii sčítanie v kombinácii s údajmi meny, obe hodnoty sa skonvertujú na hodnotu REAL a výsledok sa vráti ako REAL.
Odčítanie (-)
V nasledujúcej tabuľke je hlavičkou riadka minuend (ľavá strana) a hlavičkou stĺpca je odčítanie (pravá strana).
Operátor (-) |
INTEGER |
CURRENCY |
REAL |
Dátum/čas |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Dátum/čas |
Dátum/čas |
Dátum/čas |
Dátum/čas |
Dátum/čas |
Ak sa napríklad dátum použije v operácii odčítania s iným typom údajov, obe hodnoty sa skonvertujú na dátumy a vrátená hodnota je tiež dátum.
Poznámka: Dátové modely podporujú aj unárny operátor – (záporný), ale tento operátor nemení typ údajov operandu.
Násobenie (*)
Operátor (*) |
INTEGER |
CURRENCY |
REAL |
Dátum/čas |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
INTEGER |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
CURRENCY |
REAL |
REAL |
CURRENCY |
REAL |
REAL |
Ak sa napríklad celé číslo skombinuje s reálnym číslom v operácii násobenia, obe čísla sa skonvertujú na reálne čísla a vrátená hodnota je tiež REAL.
Delenie (/)
V nasledujúcej tabuľke je hlavičkou riadka čitateľ a hlavičkou stĺpca je menovateľ.
Operátor (/) (Riadok alebo stĺpec) |
INTEGER |
CURRENCY |
REAL |
Dátum/čas |
---|---|---|---|---|
INTEGER |
REAL |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Dátum/čas |
REAL |
REAL |
REAL |
REAL |
Ak sa napríklad celé číslo skombinuje s hodnotou meny v operácii delenia, obe hodnoty sa skonvertujú na reálne čísla a výsledok je tiež reálne číslo.
Operátory porovnávania
V porovnávacích výrazoch sa booleovské hodnoty považujú za väčšie ako hodnoty reťazcov a hodnoty reťazcov sa považujú za väčšie ako číselné hodnoty alebo hodnoty dátumu a času. čísla a hodnoty dátumu a času sa považujú za hodnoty s rovnakým poradím. Pre booleovské hodnoty alebo hodnoty reťazcov sa nevykonávajú žiadne implicitné konverzie. Hodnota BLANK alebo prázdna hodnota sa skonvertuje na hodnotu 0/""/false v závislosti od typu údajov druhej porovnávanej hodnoty.
Nasledujúce výrazy DAX ilustrujú toto správanie:
=IF(FALSE()>"true";"Výraz je pravdivý", "Výraz je nepravdivý"), vráti hodnotu "Výraz je pravdivý"
=IF("12">12;"Výraz je pravdivý", "Výraz je nepravdivý"), vráti hodnotu "Výraz je pravdivý".
=IF("12"=12;"Výraz je pravdivý"; "Výraz je nepravdivý"), vráti hodnotu "Výraz je nepravdivý"
Konverzie sa vykonávajú implicitne pre číselné typy alebo typy dátumu a času, ako je popísané v nasledujúcej tabuľke:
Operátor porovnávania |
INTEGER |
CURRENCY |
REAL |
Dátum/čas |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Dátum/čas |
REAL |
REAL |
REAL |
Dátum/čas |
Spracovanie prázdnych hodnôt, prázdnych reťazcov a nulových hodnôt
V jazyku DAX sú hodnoty null, prázdna hodnota, prázdna bunka alebo chýbajúca hodnota znázornené rovnakým novým typom hodnoty , prázdnym typom. Prázdne hodnoty môžete vygenerovať aj pomocou funkcie BLANK alebo môžete prázdne hodnoty testovať pomocou funkcie ISBLANK.
Spôsob spracovania prázdnych hodnôt v operáciách, ako je napríklad sčítanie alebo zreťazenie, závisí od jednotlivých funkcií. Nasledujúca tabuľka obsahuje súhrn rozdielov medzi vzorcami DAX a Microsoft Excelu v spôsobe spracovania prázdnych hodnôt.
Výraz |
DAX |
Excel |
---|---|---|
PRÁZDNE + PRÁZDNE |
PRÁZDNY |
0 (nula) |
PRÁZDNE +5 |
5 |
5 |
PRÁZDNE * 5 |
PRÁZDNY |
0 (nula) |
5/BLANK |
Nekonečno |
Chyba |
0/BLANK |
Nan |
Chyba |
PRÁZDNE ALEBO PRÁZDNE |
PRÁZDNY |
Chyba |
FALSE ALEBO BLANK |
FALSE |
FALSE |
FALSE A BLANK |
FALSE |
FALSE |
TRUE ALEBO BLANK |
TRUE |
TRUE |
TRUE A BLANK |
FALSE |
TRUE |
PRÁZDNE ALEBO PRÁZDNE |
PRÁZDNY |
Chyba |
PRÁZDNE A PRÁZDNE |
PRÁZDNY |
Chyba |
Podrobnosti o tom, ako konkrétna funkcia alebo operátor spracováva prázdne hodnoty, nájdete v jednotlivých témach pre jednotlivé funkcie jazyka DAX v časti Referenčné informácie o funkciách jazyka DAX.