Az adatmodellben mindegyik oszlophoz tartozik egy adattípus, amely megadja az oszlopban tarthatja az adatok típusát: egész számok, decimális számok, szöveg, pénzügyi adatok, dátumok és időpontok stb. Az adattípus azt is meghatározza, hogy milyen típusú műveleteket lehet az oszlopon megtenni, és hogy mennyi memóriával lehet tárolni az értékeket az oszlopban.
Ha a bővítményt Power Pivot, módosíthatja egy oszlop adattípusát. Erre akkor lehet szükség, ha egy dátumoszlop karakterláncként lett importálva, de valami másra van szüksége. További információt az Oszlop adattípusának beállítása aPower Pivot.
Ebben a cikkben
Az adattípusok összegzése
Az alábbi táblázat felsorolja az adatmodellben támogatott adattípusokat. Ha adatokat importál vagy értéket használ egy képletben, még akkor is, ha az eredeti adatforrás más adattípust tartalmaz, a program az adatokat ezen adattípusok egyikére konvertálja. A képletek eredményeként kapott értékek szintén ezeket az adattípusokat használják.
Adattípus a Excel |
Adattípus a DAX-ban |
Leírás |
---|---|---|
Egész szám |
64 bites (nyolcbájtos) egész szám, 1, 2 |
Tizedesjegyet nem nem azonosító számok. Az egész számok lehetnek pozitív vagy negatív számok, de csak -9 223 372 036 854 775 808 (-2^63) és 9 223 372 036 854 775 807 (2^63-1) közötti számok lehetnek. |
Decimális szám |
A 64 bites (nyolcbájtos) valós szám 1, 2 |
A valós számok tizedesjegyeket is tartalmaznak. 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 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. |
Szöveg |
String |
Unicode-karaktersorozat. Szöveges formátumban megadott karakterláncok, számok vagy dátumok is lehet. 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. Az érvényes dátumok az 1900. január 1. utáni dátumok. |
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é négy tizedesjegy pontossággal. |
– |
Üres |
Az üres adat a DAX olyan adattípusa, amely null értékeket SQL helyettesít. Üreset az ÜRES függvénnyel hozhat létre, és az ÜRES logikai függvénnyel tesztelheti az üres cellákat. |
1 A DAX-képletek nem támogatják a táblázatban felsoroltaknál kisebb adattípusokat.
2 Ha nagyon nagy számértékeket tartalmazó adatokat próbál importálni, az importálás meghiúsulhat az alábbi hibával:
Memóriaadatbázis-hiba: A "<-táblanév>" tábla "<oszlopnév>" oszlopa tartalmaz egy "1,7976931348623157e+308" értéket, amely nem támogatott. A művelet meg lett szakítva.
Ez a hiba azért fordul elő, Power Pivot érték alapján null értékeket jelez. Az alábbi listában az értékek a null érték szinonimái:
Value (É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ásokkal.
Table Data Type
A DAX számos függvényben táblázat adattípust használ, például az összesítéseket és az időintelligencia-számításokat. Egyes függvények táblára való hivatkozást igényelnek; más függvények olyan táblázatot ad vissza, amely később más függvények bemeneteként használható. Egyes olyan függvények, amelyek bemenetként táblát igényelnek, megadhat egy olyan kifejezést, amely kiértékelve táblázatot ad; egyes függvények esetén az alaptáblára való hivatkozásra van szükség. Az egyes függvények követelményeiről további információt a DAX függvények – referenciaban található.
Implicit és explicit adattípus-konverzió DAX-képletekben
Minden DAX-függvénynek külön követelményei vannak a bemenetként és kimenetként használt adattípusokkal szemben. Egyes függvények esetén például az argumentumok és a dátumok csak egész számként használhatók; más függvények csak szöveggel vagy táblázatokkal használhatók.
Ha az argumentumként megadott oszlop adatai nem kompatibilisek a függvény által megkövetelt adattípussal, a DAX számos esetben hibát ad vissza. Ahol azonban lehetséges, a DAX megpróbálja az adatokat implicit módon a szükséges adattípusra konvertálni. Például:
-
Karakterláncként be is gépelhet egy dátumot, a DAX pedig elemezi a karakterláncot, és megkísérli azt a dátum- és Windows formátumok egyikeként használni.
-
Felvehet IGAZ + 1 stb. értékeket, és a 2 eredményt kaphatja, mivel az IGAZ érték implicit módon az 1-es számra lesz átalakítva, és az 1+1 művelet hajtható végre.
-
Ha két oszlopban ad hozzá értékeket, és az egyik érték szövegként ("12") és a másik számként (12) jelenik meg, akkor a DAX implicit módon számértékké konvertálja a karakterláncot, majd a számértékhez hozzáadja azt. A következő kifejezés 44-et ad vissza: = "22" + 22
-
Ha két számot próbál meg össze concatenni, a Excel szövegként fogja bemutatni őket, majd össze kell őket egyeztetni. A következő kifejezés a "1234" értéket adja vissza: = 12 & 34
Az alábbi táblázat összefoglalja a képletekben végrehajtott implicit adattípus-konverziókat. Excel implicit konvertálásokat hajt végre, amikor csak lehetséges, a megadott művelet által megkövetelt módon.
Implicit adatkonverziók táblázata
Az elvégzett konvertálás típusát az operátor határozza meg, amely a kért művelet végrehajtása előtt szükséges értékeket leadja. Ezek a táblák felsorolják az operátorokat, és jelzik, hogy milyen átalakítás történik az oszlop egyes adattípusainál, amikor a metsző sorban lévő adattípussal párosítják őket.
Megjegyzés: A szöveges adattípusok nem szerepelnek ezekben a táblákban. Amikor egy számot szöveges formátumban ábrázol, néhány esetben a Power Pivot megpróbálja megállapítani a számtípust, és azt 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 egy másik művelet valós számot használ a pénznemadatokkal együtt, akkor a program mindkét értéket VALÓS értékké alakítja, és az eredményt VALÓS értékként ad vissza.
Kivonás (-)
A következő táblázatban a sorfejléc a minuend (bal oldalon) és az oszlopfejléc a jobb oldalon lévő részfedő.
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 dátumot ad meg egy másik adattípussal, a program mindkét értéket dátumokká alakítja, és a visszatérési érték szintén dátum.
Megjegyzés: Az adatmodellek a - (negatív) operátort is támogatják, 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ám és egy valós szám együtt van egy szorzás műveletben, a művelet mindkét számot valós számokká alakítja, és a visszatérési érték is VALÓS lesz.
Osztás (/)
A következő 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 egy osztási művelet pénznemértékkel kombinál, a rendszer mindkét értéket valós számokká alakítja, és az eredmény valós szám is lesz.
Összehasonlító operátorok
Az összehasonlító kifejezésekben a logikai értékek nagyobbnak minősülnek, mint a karakterláncok, a karakterláncértékek pedig nagyobbak, mint a numerikus vagy a dátum/idő érték. a számok és a dátum/idő értékek azonos besorolásúnak tekintendők. Nem történik implicit konvertálás a logikai vagy karakterláncértékek esetén; 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.
Az alábbi DAX-kifejezések szemléltetik ezt a viselkedést:
=HA(HAMIS()>"igaz","A kifejezés igaz", "A kifejezés hamis"), a "Expression is true" (Kifejezés igaz) értéket adja vissza.
=HA("12">12;"A kifejezés igaz", "A kifejezés hamis"), a következőt adja vissza: "Kifejezés igaz".
=HA("12"=12;"A kifejezés igaz";"A kifejezés hamis"), a "Expression is false" (Kifejezés hamis) eredményt adja vissza.
A konverziók implicit módon numerikus, illetve dátum/idő típusúakra vannak írva, 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 karakterláncok és nulla értékek kezelése
A DAX-ban a null, üres, üres cella vagy hiányzó érték mindegyikét ugyanaz az új értéktípus, egy ÜRES képviseli. Üres cellákat az ÜRES függvénnyel is létrehozhat, illetve üres cellákat is tesztelhet az ÜRES függvénnyel.
Az üres cellák műveletekben (például összeadásban vagy összeadásban) való kezelése az egyes függvénytől függ. Az alábbi táblázat összegzi a DAX és a Microsoft Excel közötti különbségeket az üres cellák kezelésével.
Kifejezés |
DAX |
Excel |
---|---|---|
ÜRES + ÜRES |
ÜRES |
0 (nulla) |
ÜRES +5 |
5 |
5 |
ÜRES * 5 |
ÜRES |
0 (nulla) |
5/BLANK |
Végtelen |
Hiba |
0/BLANK |
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 és operátorok üres helyekkel való kezelésével kapcsolatos részletekért lásd az egyes DAX-függvényekkel kapcsolatos témaköröket a DAXfüggvények referenciája című szakaszban.