Az adatmodellekben minden oszlophoz tartozik egy adattípus, amely meghatározza, hogy az oszlop milyen típusú adatokat tartalmazhat: egész számokat, tizedes törteket, szöveget, pénzügyi adatokat, dátumokat és időpontokat stb. Az adattípus azt is meghatározza, hogy milyen műveleteket hajthat végre az oszlopon, és hogy mennyi memória szükséges az értékek oszlopban való tárolásához.
Ha a Power Pivot bővítményt használja, módosíthatja az oszlop adattípusát. Erre akkor lehet szükség, ha egy dátumoszlopot sztringként importáltak, de valami másra van szüksége. További információ: Oszlop adattípusának beállítása TE102896613 .
A témakör tartalma
Az adattípusok összegzése
Az alábbi táblázat az adatmodellekben támogatott adattípusokat sorolja fel. Ha adatokat importál, vagy egy képletben értéket használ, még akkor is, ha az eredeti adatforrás más adattípust tartalmaz, az adatok ezen adattípusok egyikére lesznek konvertálva. A képletekből származó értékek is ezeket az adattípusokat használják.
Adattípus az Excelben |
Adattípus a DAX-ban |
Leírás |
---|---|---|
Egész szám |
64 bites (nyolc bájtos) egész szám 1, 2 |
Tizedesjegyeket nem tartalmazó számok. Az egész számok lehetnek pozitív vagy 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ámnak kell lenniük. |
Decimális szám |
Egy 64 bites (nyolc bájtos) valós szám 1, 2 |
A valós számok tizedesjegyekkel rendelkező számok. A valós számok az értékek széles körét fedik le: Negatív értékek -1,79E +308 és -2,23E -308 között Nulla Pozitív értékek 2,23E -308 és 1,79E + 308 között A jelentős számjegyek száma azonban legfeljebb 15 tizedesjegy lehet. |
IGAZ/HAMIS |
logikai változó |
Igaz vagy Hamis érték. |
Text (Szöveg) |
String |
Unicode-karakteres adatsztring. Szöveges formátumban megjelenített sztringek, számok vagy dátumok lehetnek. A maximális karakterlánchossz 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. Az érvényes dátumok az 1900. január 1. utáni dátumok. |
Pénznem |
Pénznem |
A pénznem adattípusa -922 337 203 685 477,5808 és 922 337 203 685 477,5807 közötti értékeket tesz lehetővé négy rögzített pontosságú tizedesjeggyel. |
– |
Üres |
Az üres egy adattípus a DAX-ban, amely sql null értékeket jelöl és cserél le. A BLANK függvénnyel üres értéket hozhat létre, és az ÜRES függvény használatával tesztelheti az üres értékeket. |
1 A DAX-képletek nem támogatják a táblázatban felsoroltaknál kisebb adattípusokat.
2 Ha nagyon nagy numerikus értékeket tartalmazó adatokat próbál importálni, az importálás a következő hibával meghiúsulhat:
Memóriabeli adatbázishiba: A "<tábla neve>" tábla "<oszlopnév>" oszlopa "1,7976931348623157e+308" értéket tartalmaz, amely nem támogatott. A műveletet megszakították.
Ez a hiba azért fordul elő, mert Power Pivot ezt az értéket használja a null értékek megjelenítéséhez. 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 értéket az adatokból, és próbálkozzon újra az importálással.
Tábla adattípusa
A DAX számos függvényben tábla adattípust használ, például összesítéseket és időintelligencia-számításokat. Egyes függvények egy táblára való hivatkozást igényelnek; más függvények egy táblát ad vissza, amely aztán más függvények bemeneteként használható. Egyes függvényekben, amelyek bemenetként táblát igényelnek, megadhat egy táblát kiértékelő kifejezést; egyes függvények esetében egy alaptáblára való hivatkozásra van szükség. További információ az egyes függvények követelményeiről: DAX-függvények referenciája.
Implicit és explicit adattípus-átalakítás DAX-képletekben
Minden DAX-függvény konkrét követelményekkel rendelkezik a bemenetként és kimenetként használt adattípusokra vonatkozóan. Egyes függvények például bizonyos argumentumokhoz és dátumokhoz egész számokat igényelnek; más függvényekhez szöveg vagy táblázat szükséges.
Ha az argumentumként megadott oszlop adatai nem kompatibilisek a függvény által igényelt adattípussal, a DAX sok esetben hibát ad vissza. Amikor azonban lehetséges, a DAX implicit módon megpróbálja átalakítani az adatokat a szükséges adattípusra. Például:
-
Beírhat egy dátumot sztringként, és a DAX elemzi a sztringet, és megkísérli a Windows dátum- és időformátumok egyikének tekinteni.
-
Hozzáadhat IGAZ + 1 értéket, és lekérheti a 2 eredményt, mivel az IGAZ implicit módon az 1-es számra lesz konvertálva, és az 1+1 műveletet hajtja végre.
-
Ha két oszlopban ad hozzá értékeket, és az egyik érték szövegként ("12"), a másik pedig számként (12) jelenik meg, a DAX implicit módon számmá alakítja a sztringet, majd hozzáadja egy numerikus eredményhez. A következő kifejezés a 44 értéket adja vissza: = "22" + 22
-
Ha két számot próbál összefűzni, az Excel sztringként jeleníti meg őket, majd összefűzi őket. A következő kifejezés az "1234" értéket adja vissza: = 12 & 34
Az alábbi táblázat összefoglalja a képletekben végrehajtott implicit adattípus-konverziókat. Az Excel lehetőség szerint implicit konverziókat hajt végre a megadott művelet által megkövetelt módon.
Implicit adatkonverziók táblázata
A végrehajtott konverzió típusát az operátor határozza meg, amely a kért művelet végrehajtása előtt átalakítja a szükséges értékeket. Ezek a táblák felsorolják az operátorokat, és jelzik az oszlopban lévő egyes adattípusokon végrehajtott átalakítást, amikor az össze van párosítva a metsző sorban lévő adattípussal.
Megjegyzés: Ezek a táblázatok nem tartalmazzák a szöveges adattípusokat. Ha egy szám szöveges formátumban van ábrázolva, bizonyos esetekben Power Pivot megkísérli meghatározni a szám típusát, és számként jeleníti meg.
Ö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 egy pénznemadatokkal kombinált összeadási műveletben valós számot használ, a rendszer mindkét értéket VALÓS értékké alakítja, és az eredményt VALÓS értékként adja vissza.
Kivonás (-)
A következő táblázatban a sorfejléc a minuend (bal oldal), az oszlopfejléc pedig az alkulcs (jobb oldal).
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 dátumot más adattípusú kivonási műveletben használ, a rendszer mindkét értéket dátummá alakítja, a visszatérési érték pedig szintén dátum.
Megjegyzés: Az adatmodellek az unáris operátort is támogatják ( - (negatív), 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, a program mindkét számot valós számmá alakítja, a visszatérési érték pedig SZINTÉN VALÓS.
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értékkel kombinál egy osztási műveletben, a rendszer mindkét értéket valós számokká alakítja, és az eredmény szintén valós szám.
Összehasonlító operátorok
Az összehasonlító kifejezésekben a logikai értékek nagyobbnak minősülnek, mint a sztringértékek, a sztringértékek pedig nagyobbnak, mint a numerikus vagy dátum/idő értékek; A számok és a dátum/idő értékek azonos rangot jelentenek. Logikai vagy sztringértékek esetében nem történik implicit konverzió; A BLANK vagy az üres érték 0/""/false értékre lesz konvertálva a másik összehasonlított érték adattípusától függően.
Ezt a viselkedést az alábbi DAX-kifejezések szemléltetik:
=HA(HAMIS()>"igaz";"A kifejezés igaz", "A kifejezés hamis"), a "Kifejezés igaz" értéket adja vissza
=HA("12">12;"A kifejezés igaz", "A kifejezés hamis"), a "Kifejezés igaz" értéket adja vissza.
=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, numerikus vagy dátum/idő típusúak esetén hajthatók végre 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 értékek, üres sztringek és nulla értékek kezelése
A DAX-ban a null, az üres érték, az üres cella vagy a hiányzó érték ugyanazzal az új értéktípussal( BLANK) jelenik meg. Üres értékeket is létrehozhat a BLANK függvénnyel, vagy tesztelheti az üres értékeket az ISBLANK függvénnyel.
Az üres elemek műveletekben , például összeadásban vagy összefűzésben való kezelése az egyes 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ése során.
Expression |
DAX |
Excel |
---|---|---|
BLANK +BLANK |
Ü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 ÉS ÜRES |
FALSE |
FALSE |
IGAZ VAGY ÜRES |
TRUE |
TRUE |
IGAZ ÉS ÜRES |
HAMIS |
IGAZ |
ÜRES VAGY ÜRES |
ÜRES |
Hiba |
ÜRES ÉS ÜRES |
ÜRES |
Hiba |
Az egyes FÜGGVÉNYek vagy operátorok üres cellákkal való kezelésének részleteiért tekintse meg az egyes DAX-függvények témaköreit a DAX-függvények referenciája című szakaszban.