V dátovom modeli je ku každému stĺpcu priradený typ údajov určujúci typ údajov, ktoré môžu byť v stĺpci uložené: celé čísla, desatinné čísla, text, peňažné údaje, dátumy, čas a tak ďalej. Typ údajov tiež určuje, aké operácie môžete so stĺpcom vykonávať 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. Je to potrebné spraviť v prípade, že bol stĺpec dátumu importovaný ako reťazec, ale potrebujete, aby išlo o niečo iné. Ďalšie informácie nájdete v téme Nastavenie typu údajov stĺpca v doplnku Power Pivot.
Obsah tohto článku
Konverzia implicitných a explicitných typov údajov vo vzorcoch jazyka DAX
Spracovanie prázdnych hodnôt, prázdnych reťazcov a nulových hodnôt
Súhrn typov údajov
Nasledujúca tabuľka obsahuje zoznam typov údajov, ktoré sú podporované v modeli údajov. Keď importujete údaje alebo používate hodnotu vo vzorci, údaje sa skonvertujú na jeden z týchto typov údajov, a to aj vtedy, ak pôvodný zdroj údajov obsahuje iný typ údajov. Tieto typy údajov používajú aj hodnoty, 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 v rozsahu -9 223 372 036 854 775 808 (-2^63) a 9 223 372 036 854 775 807 (2^63-1). |
| Číslo v desiatkovej sústave | 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 (pravda)/FALSE (NEPRAVDIVÉ) | boolovský výraz | Hodnota True alebo False. |
| Text | String | Údajový reťazec znakov Unicode. Môžu to byť reťazce, čísla alebo dátumy zapísané v textovom formáte. Maximálna dĺžka reťazca je 268 435 456 znakov Unicode (256 miliónov znakov) alebo 536 870 912 bajtov. |
| Dátum | Dátum/čas | Dátum a čas v akceptovanom vyjadrení dátumu a času. Všetky platné dátumy sú dátumy nasledujúce ako 1. január 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 miestami a pevnou presnosťou. |
| Nie je k dispozícii | Prázdna | Prázdna hodnota je typ údajov v jazyku DAX, ktorý zastupuje a nahrádza hodnoty null SQL. Pomocou funkcie BLANK môžete vytvoriť prázdne bunky a otestovať pomocou logickej funkcie ISBLANK. |
1 Vzorce jazyka DAX nepodporujú typy údajov menšie ako tie, ktoré sú uvedené v tabuľke.
2 Ak sa pokúsite importovať údaje, ktoré obsahujú veľmi veľké číselné hodnoty, 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", čo nie je podporované. Operácia bola zrušená.
Táto chyba sa zobrazí, pretože Power Pivot používa túto hodnotu na vyjadrenie hodnôt null. Hodnoty v nasledujúcom zozname sú synonymami pre hodnotu null:
| Hodnota |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1,7976931348623158e+308 |
| 2.2250738585072014e-308 |
Odstráňte z údajov hodnotu a skúste vykonať importovanie znova.
Typ údajov tabuľky
Jazyk DAX používa typ údajov tabuľky v mnohých funkciách, napríklad v agregáciách a výpočtoch časovej inteligencie. Niektoré funkcie vyžadujú odkaz na tabuľku. Ďalšie funkcie vrátia tabuľku, ktorú potom možno použiť ako vstup pre iné funkcie. V niektorých funkciách, ktoré vyžadujú tabuľku ako vstup, môžete zadať výraz, ktorý sa vyhodnotí ako tabuľka. Niektoré funkcie vyžadujú odkaz na základnú tabuľku. Informácie o požiadavkách konkrétnych funkcií nájdete v téme Referenčné informácie k funkciám jazyka DAX.
Konverzia implicitných a explicitných typov údajov vo vzorcoch jazyka DAX
Každá funkcia jazyka DAX má špecifické požiadavky týkajúce sa typov ú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. Jazyk DAX sa však vždy, keď je to možné, pokúsi implicitne skonvertovať údaje na požadovaný typ údajov. Príklad:
- Dátum môžete zadať ako reťazec a jazyk DAX analyzuje reťazec a pokúsi sa ho použiť ako jeden z formátov dátumu a času Windowsu.
- 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 sčítate hodnoty v dvoch stĺpcoch a jedna hodnota je vyjadrená ako text ("12") a druhá ako číslo (12), jazyk DAX implicitne skonvertuje reťazec na číslo a potom vykoná sčítanie číselného výsledku. 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 zreťazenie. 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. Program Excel vykonáva implicitné konverzie vždy, keď je to možné, ako to vyžaduje zadaná operácia.
Tabuľka implicitných konverzií údajov
Typ konverzie, ktorá sa vykoná, určuje operátor, ktorý pred vykonaním požadovanej operácie vygeneruje hodnoty, ktoré požaduje. Tieto tabuľky uvádzajú operátory a označujú konverziu, ktorá sa vykoná na každom type údajov v stĺpci po jeho spárovaní s typom údajov v priesečníku.
Poznámka
Typy údajov Text nie sú v týchto tabuľkách zahrnuté. Keď je číslo vyjadrené ako text, v niektorých prípadoch sa Power Pivot pokúsi určiť typ čísla a znázorniť 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žije pri operácii sčítania v kombinácii s údajmi o mene, obe hodnoty sa skonvertujú na hodnotu REAL a výsledok sa vráti ako REAL.
Odčítanie (-)
V nasledujúcej tabuľke je hlavička riadka minuend (ľavá strana) a hlavička stĺpca je subtrahend (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 akýmkoľvek 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 pri operácii násobenia skombinuje celé číslo s reálnym číslom, obe čísla sa skonvertujú na reálne čísla a vrátená hodnota je tiež REÁLNA.
Delenie (/)
V nasledujúcej tabuľke je hlavička riadka čitateľom a hlavička stĺpca menovateľom.
| 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 pri operácii delenia skombinuje celé číslo s hodnotou meny, obe hodnoty sa skonvertujú na reálne čísla a výsledkom je zároveň reálne číslo.
Operátory porovnávania
V porovnávacích výrazoch sa booleovské hodnoty považujú za väčšie než reťazcové hodnoty a reťazcové hodnoty sa považujú za väčšie než číselné hodnoty alebo hodnoty dátumu a času. Čísla a hodnoty dátumu a času sa považujú za hodnoty rovnakej relatívnej veľkosti. Pre booleovské alebo reťazcové hodnoty sa nevykonávajú žiadne implicitné konverzie. Hodnota BLANK alebo prázdna hodnota sa skonvertuje na hodnotu 0/""/false v závislosti od typu údajov ďalšej porovnávanej hodnoty.
Toto správanie sú znázornené v nasledujúcich výrazoch jazyka DAX:
=IF(FALSE()>"true";"Výraz má hodnotu true"; "Výraz je nepravdivý"), vráti hodnotu "Výraz má hodnotu true"
=IF("12"12;>"Výraz má hodnotu pravda"; "Výraz je nepravdivý").
=IF("12"=12;"Výraz je pravdivý"; "Výraz je nepravdivý"), vráti "Výraz je nepravdivý"
Konverzie sa vykonávajú implicitne pre číselné typy alebo typy dátumu a času, ako je to popísané v nasledujúcej tabuľke:
| Operátor porovnania | 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ázdne bunky, prázdne bunky alebo chýbajúce hodnoty vyjadrené rovnakým novým typom hodnoty – BLANK. Prázdne bunky môžete generovať aj pomocou funkcie BLANK alebo môžete otestovať prázdne bunky pomocou funkcie ISBLANK.
Spôsob spracovania prázdnych hodnôt v rámci operácií, ako je napríklad sčítanie alebo reťazenie, závisí od jednotlivých funkcií. Nasledujúca tabuľka obsahuje súhrn rozdielov medzi vzorcami jazyka DAX a vzorcami Microsoft Excelu, a to tak, že sa spracovávajú prázdne miesta.
| Výraz | Jazyk DAX | Excel |
|---|---|---|
| BLANK + BLANK | PRÁZDNE | 0 (nula) |
| PRÁZDNE +5 | 5 | 5 |
| PRÁZDNA * 5 | PRÁZDNE | 0 (nula) |
| 5/PRÁZDNE | Nekonečno | Chyba |
| 0/PRÁZDNE | Číslo NaN | Chyba |
| PRÁZDNE/PRÁZDNE | PRÁZDNE | Chyba |
| FALSE ALEBO BLANK (NEPRAVDIVÉ) ALEBO PRÁZDNE POLE | FALSE | FALSE |
| FALSE AND BLANK | FALSE | FALSE |
| TRUE ALEBO BLANK | TRUE | TRUE |
| TRUE A BLANK | FALSE | TRUE |
| PRÁZDNE ALEBO PRÁZDNE | PRÁZDNE | Chyba |
| PRÁZDNE A PRÁZDNE | PRÁZDNE | Chyba |
Podrobnosti o tom, ako určitá funkcia alebo operátor zaobchádza s prázdnymi miestami, nájdete v samostatných témach pre jednotlivé funkcie jazyka DAX v časti Referencie k funkciám jazyka DAX.