Az adatmodellekben mindegyik oszlophoz tartozik egy társított adattípus, amely megadja az oszlopban tárolható adatok típusát: egész számok, tizedes tört számok, szöveg, pénzügyi adatok, dátumok és időpontok stb. Az adattípus azt is meghatározza, hogy milyen műveleteket hajthat végre az oszlopon, és mennyi memóriát igényel az értékek oszlopban való tárolása.
A Power Pivot bővítmény használata esetén módosíthatja az oszlopok adattípusát. Erre akkor lehet szükség, ha egy dátumoszlopot karakterláncként importált, de Önnek valami másra van szüksége. További információ: Oszlop adattípusának beállítása a Power Pivotban.
Tartalom
Az adattípusok összefoglalása
Az alábbi táblázat az adatmodellekben támogatott adattípusokat sorolja fel. Amikor adatokat importál vagy értéket használ egy képletben, a program akkor is konvertálja az adatokat e adattípusok egyikébe, ha az eredeti adatforrás más adattípust tartalmaz. A képletekből kapott értékek szintén ezeket az adattípusokat használják.
| Adattípus az Excelben | Adattípus a DAX eszközben | Leírás |
|---|---|---|
| Egész szám | Egy 64 bites (nyolc bájtos) egész érték 1, 2 | Tizedesjegyet nem tartalmazó számok. Az egész számok lehetnek pozitív és negatív számok, de -9 223 372 036 854 775 808 (-2^63) és 9 223 372 036 854 775 807 (2^63-1) közötti egész számoknak kell lenniük. |
| Decimális szám | Egy 64 bites (nyolc bájtos) 1, 2 valós szám | A valós számok olyan számok, amelyeknek tizedesjegyei is lehetnek. A valós számok az értékek széles tartományát fedik le: Negatív értékek -1,79E +308 és -2,23E -308 között Nulla 2,23E -308 és 1,79E + 308 közötti pozitív értékek Az értékes számjegyek száma azonban legfeljebb 15 tizedesjegy lehet. |
| IGAZ/HAMIS | logikai változó | Igaz vagy Hamis érték. |
| Text (Szöveg) | String | Unicode-karaktert tartalmazó adatkarakterlánc. Karakterláncok, számok vagy dátumok lehetnek szöveges formátumban megjelenítve. A karakterláncok maximális hossza 268 435 456 Unicode-karakter (256 mega karakter) vagy 536 870 912 bájt. |
| Dátum | Dátum/idő | Dátumok és időpontok elfogadott dátum-idő ábrázolásban. Érvényes dátumnak minősül az 1900. január 1. utáni dátum. |
| Pénznem | Pénznem | A Pénznem adattípus -922 337 203 685 477,5808 és 922 337 203 685 477,5807 közötti értékeket tesz lehetővé rögzített pontossággal. |
| – | Üres | Az üres adat a DAX olyan adattípusa, amely az SQL null értékeit jelöli és helyettesíti. Üres cellát az ÜRES függvénnyel, üres cellákat pedig az ÜRES függvény függvénnyel vizsgálhat. |
1 A DAX-képletek nem támogatják a táblázatban felsoroltaknál kisebb adattípusokat.
2 Ha nagyon nagy méretű számértékeket tartalmazó adatokat próbál importálni, az importálás a következő hibával meghiúsulhat:
Memóriában tárolt adatbázishiba: A "<Táblázatnév>" tábla "<oszlopnév>" oszlopa az "1,7976931348623157e+308" értéket tartalmazza, ami nem támogatott. A műveletet megszakították.
Ez a hiba azért fordul elő, mert a Power Pivot ezt az értéket használja a null értékek ábrázolására. Az alábbi listában szereplő értékek a null érték szinonimái:
| Érték |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1,7976931348623158e+308 |
| 2.2250738585072014E-308 |
Távolítsa el az adatok értékét, majd próbálkozzon újra az importálással.
Tábla adattípus
A DAX számos függvényben használ tábla adattípust, például összesítésekben és időintelligencia-számításokban. Egyes függvényekhez szükség van egy táblázatra való hivatkozásra; Más függvények egy táblázatot adnak vissza, amelyet aztán más függvények bemeneteként használhatnak. Egyes olyan függvényekben, amelyekhez táblázat szükséges bemenetként, megadhat egy olyan kifejezést, amely táblázatot eredményez; Egyes függvények esetében hivatkozni kell egy alaptáblára. A függvények követelményeiről további információt a DAX függvényeinek részletes ismertetése című témakörben talál.
Implicit és explicit adattípus-konverzió DAX-képletekben
Minden DAX-függvényhez speciális követelmények vonatkoznak a bemenetként és kimenetként használandó adatok típusára vonatkozóan. Egyes függvényekhez például egyes argumentumokhoz egész szám, másokhoz dátumot kell megadni; Más funkciókhoz szöveg vagy táblázatok szükségesek.
Ha az argumentumként megadott oszlop adatai nem kompatibilisek a függvény által megkövetelt adattípussal, a DAX sok esetben hibát ad vissza. A DAX azonban lehetőség szerint implicit módon megkísérli az adatokat a szükséges adattípusra konvertálni. Például:
- Beírhat egy dátumot karakterláncként, majd a DAX elemzi a karakterláncot, és megpróbálja a Windows dátum- és időformátumainak egyikében megjeleníteni.
- Az IGAZ + 1 értéket hozzáadva a 2 értéket kaphatja, mivel az IGAZ érték implicit módon 1-re konvertálódik, és az 1+1 műveletet hajtja végre.
- Ha két oszlopban értékeket ad össze, és az egyik értéket véletlenül szövegként ("12"), a másikat számként (12) adja meg, a DAX implicit módon számmá alakítja a karakterláncot, majd az összeadást numerikus eredményt kapja. A következő kifejezés 44-et ad vissza: = "22" + 22
- Ha megkísérel összefűzni két számot, az Excel karakterláncként jeleníti meg őket, majd összefűzi őket. A következő kifejezés eredménye "1234": = 12 & 34
Az alábbi táblázat összefoglalja a képletekben végrehajtott implicit adattípus-konverziókat. Amikor csak lehetséges, az Excel implicit konvertálásokat hajt végre a megadott műveletnek megfelelően.
Implicit adatkonvertálások táblázata
Az elvégzendő konverzió típusát az operátor határozza meg, és a kért művelet végrehajtása előtt kitölti a szükséges értékeket. Az alábbi táblázatok felsorolják az operátorokat, és jelzik az oszlop egyes adattípusain végrehajtott konverziót, amikor az párosítva van az oszlop metszéspontjában lévő sorral lévő adattípussal.
Megjegyzés
Ezek a táblázatok nem tartalmaznak szöveges adattípusokat. Ha egy szám szöveges formában van ábrázolva, a Power Pivot bizonyos esetekben megpróbálja meghatározni a szám típusát, és számként ábrázolni.
Összeadás (+)
| Operátor (+) | INTEGER | CURRENCY | REAL | Dátum/idő |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | Dátum/idő |
| CURRENCY | CURRENCY | CURRENCY | REAL | Dátum/idő |
| REAL | REAL | REAL | REAL | Dátum/idő |
| Dátum/idő | Dátum/idő | Dátum/idő | Dátum/idő | Dátum/idő |
Ha például valós számot használ egy összeadási műveletben pénznemadattal kombinálva, a program mindkét értéket VALÓS értékké konvertálja, az eredményt pedig VALÓS értékként adja vissza.
Kivonás (-)
Az alábbi táblázatban a sorfejléc a mínusz (bal oldalon), az oszlopfejléc pedig a részvégpont (jobb oldalon).
| Operátor (-) | INTEGER | CURRENCY | REAL | Dátum/idő |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Dátum/idő | Dátum/idő | Dátum/idő | Dátum/idő | Dátum/idő |
Ha például egy kivonási műveletben bármilyen más adattípussal együtt használ egy dátumot, a program mindkét értéket dátummá konvertálja, és a visszatérési érték is dátum lesz.
Megjegyzés
Az adatmodellek támogatják az unáris operátort - (negatív) is, de ez az operátor nem módosítja az operandus adattípusát.
Szorzás (*)
| Operátor (*) | INTEGER | CURRENCY | REAL | Dátum/idő |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | INTEGER |
| CURRENCY | CURRENCY | REAL | CURRENCY | CURRENCY |
| REAL | REAL | CURRENCY | REAL | REAL |
Ha például egy egész számot egy valós számmal kombinál egy szorzási műveletben, mindkét szám valós számmá alakul, és a visszatérési érték is VALÓS lesz.
Osztás (/)
Az alábbi táblázatban a sorfejléc a számláló, az oszlopfejléc pedig a nevező.
| Operátor (/) (sor/oszlop) |
INTEGER | CURRENCY | REAL | Dátum/idő |
|---|---|---|---|---|
| INTEGER | REAL | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | REAL | CURRENCY | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Dátum/idő | REAL | REAL | REAL | REAL |
Ha például egy egész számot pénzneművel kombinálunk egy osztási műveletben, mindkét értéket valós számmá konvertálja a függvény, és az eredmény szintén valós szám lesz.
Összehasonlító operátorok
Az összehasonlító kifejezésekben a logikai értékek nagyobbnak tekintendők, mint a karakterláncértékek, és a karakterláncok nagyobbnak a numerikus, illetve a dátum/idő értékeknél; A program a számok és a dátum/idő azonos rangúnak tekinti. A logikai vagy karakterlánc-értékek esetében nem történik implicit konverzió; Az ÜRES vagy az üres érték 0/""/false értékké alakul a másik összehasonlított érték adattípusától függően.
A következő DAX-kifejezések illusztrálják ezt a viselkedést:
=HA(HAMIS()>"igaz";"A kifejezés igaz", "A kifejezés hamis") eredménye "Kifejezés igaz"
=HA("12">12;"A kifejezés igaz", "A kifejezés hamis") eredménye "Kifejezés igaz".
=HA("12"=12;"A kifejezés igaz", "A kifejezés hamis"), "A kifejezés hamis" értéket adja vissza
A konverziók implicit módon történnek numerikus és dátum/idő típusokhoz az alábbi táblázatban leírtak szerint:
| Összehasonlító operátor | INTEGER | CURRENCY | REAL | Dátum/idő |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Dátum/idő | REAL | REAL | REAL | Dátum/idő |
Üres cellák, üres karakterláncok és nulla értékek kezelése
A DAX nyelvben a null, üres értéket, üres cellát vagy hiányzó értéket ugyanaz az új értéktípus, a BLANK jelöli. Üres cellákat is előállíthat a ÜRES függvénnyel, illetve vizsgálhatja az üres cellákat az ÜRES függvénnyel.
Az, hogy a műveletek (például összeadás vagy összefűzés) hogyan kezelik az üres cellákat, az adott függvénytől függ. Az alábbi táblázat összefoglalja a DAX és a Microsoft Excel-képletek közötti különbségeket az üres cellák kezelésének módjában.
| Expression | DAX | Excel |
|---|---|---|
| ÜRES + ÜRES | ÜRES | 0 (nulla) |
| ÜRES +5 | 5 | 5 |
| ÜRES * 5 | ÜRES | 0 (nulla) |
| 5/ÜRES | Végtelen | Hiba |
| 0/ÜRES | NaN | Hiba |
| ÜRES/ÜRES | ÜRES | Hiba |
| HAMIS VAGY ÜRES | FALSE | FALSE |
| HAMIS VAGY ÜRES | FALSE | FALSE |
| IGAZ VAGY ÜRES | TRUE | TRUE |
| IGAZ ÉS ÜRES | HAMIS | IGAZ |
| ÜRES VAGY ÜRES | ÜRES | Hiba |
| ÜRES ÉS ÜRES | ÜRES | Hiba |
Ha szeretné részletesebben megtudni, hogy egy adott függvény vagy operátor hogyan kezeli az üres cellákat, olvassa el az egyes DAX-függvényekre vonatkozó témaköröket a DAX-függvények ismertetése című szakaszban.