Datu modelī katrai kolonnai ir piesaistīts datu tips, kas norāda, kāda tipa dati var būt kolonnā: veseli skaitļi, decimāldaļskaitļi, teksts, valūtas dati, datumi un laiki utt. Datu tips arī nosaka, kādas darbības var veikt ar kolonnu un cik daudz atmiņas ir nepieciešams, lai saglabātu kolonnas vērtības.
Ja izmantojat pievienojumprogrammu Power Pivot, varat mainīt kolonnas datu tipu. Tas var būt jādara, ja datumu kolonna ir importēta kā virkne, bet ir nepieciešama cita vērtība. Papildinformāciju skatiet sadaļā Kolonnas datu tipa iestatīšana pievienojumprogrammā Power Pivot.
Tēmas šajā rakstā
Datu tipu kopsavilkums
Šajā tabulā ir uzskaitīti datu modelī atbalstītie datu tipi. Importējot datus vai izmantojot vērtību formulā, pat ja sākotnējā datu avotā ir cits datu tips, dati tiek konvertēti vienā no šiem datu tipiem. Vērtības, kas rodas no formulām, arī izmanto šos datu tipus.
| Datu tips programmā Excel | DAX datu tips | Apraksts |
|---|---|---|
| Vesels skaitlis | 64 bitu (astoņu baitu) veselu skaitļu vērtība 1, 2 | Skaitļi bez cipariem aiz komata. Veseli skaitļi var būt pozitīvi vai negatīvi skaitļi, bet tiem jābūt veseliem skaitļiem diapazonā no -9 223 372 036 854 775 808 (-2^63) līdz 9 223 372 036 854 775 807 (2^63-1). |
| Decimālais skaitlis | 64 bitu (astoņu baitu) reālais skaitlis 1, 2 | Reālie skaitļi ir skaitļi, kuriem var būt cipari aiz komata. Reālie skaitļi aptver plašu vērtību diapazonu: Negatīvās vērtības no -1,79E +308 līdz -2,23E -308 Nulle Pozitīvas vērtības no 2,23E -308 līdz 1,79E + 308 Tomēr nozīmīgo ciparu skaits nedrīkst pārsniegt 15 ciparus aiz komata. |
| PATIESS/APLAMS | Būla izteiksme | Vērtība True vai False. |
| Teksts | Virkne | Unikoda rakstzīmes datu virkne. Var būt virknes, skaitļi vai datumi, kas attēloti teksta formātā. Maksimālais virknes garums ir 268 435 456 unikoda rakstzīmes (256 mega rakstzīmes) vai 536 870 912 baiti. |
| Datums | Datums/laiks | Datumi un laiki akceptētā datuma/laika atveidojumā. Visi derīgie datumi ir datumi pēc 1900. gada 1. janvāra. |
| Valūta | Valūta | Valūtas datu tips pieļauj vērtības no -922 337 203 685 477,5808 līdz 922 337 203 685 477,5807 ar četriem fiksētas precizitātes cipariem aiz komata. |
| Neattiecas | Tukša | Tukša vērtība ir datu tips DAX, kas attēlo un aizstāj SQL vērtības Null. Varat izveidot tukšumu, izmantojot funkciju BLANK, un pārbaudīt, vai nav tukšumu, izmantojot loģisko funkciju ISBLANK. |
1 DAX formulas neatbalsta tādus datu tipus, kas ir mazāki par tabulā norādītajiem.
2 Ja mēģināt importēt datus ar ļoti lielām skaitliskām vērtībām, importēšana var neizdoties un tiek parādīts šāds kļūdas ziņojums:
Atmiņas datu bāzes kļūda: tabulas "<Tabulas nosaukums>" kolonnā "<kolonnas nosaukums>" ir vērtība "1.7976931348623157e+308", kas netiek atbalstīta. Darbība ir atcelta.
Šī kļūda rodas, jo Power Pivot izmanto šo vērtību vērtību vērtību nulles attēlošanai. Vērtības šajā sarakstā ir nulles vērtības sinonīmi.
| Vērtība |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1,7976931348623158e+308 |
| 2.2250738585072014E-308 |
Noņemiet vērtību no datiem un mēģiniet importēt vēlreiz.
Tabulas datu tips
DAX izmanto tabulas datu tipu daudzās funkcijās, piemēram, apkopojumos un laika informācijas aprēķinos. dažām funkcijām ir nepieciešama atsauce uz tabulu; Citas funkcijas atgriež tabulu, ko pēc tam var izmantot kā ievadi citām funkcijām. Dažās funkcijās, kurām nepieciešama tabula kā ievade, varat norādīt izteiksmi, kas tiek novērtēta kā tabula; Dažām funkcijām ir nepieciešama atsauce uz pamattabulu. Informāciju par konkrētu funkciju prasībām skatiet DAX funkciju uzziņā.
Netieša un tieša datu tipa konvertēšana DAX formulās
Katrai DAX funkcijai ir specifiskas prasības attiecībā uz datu tipiem, kas tiek izmantoti kā ievade un izvade. Piemēram, dažām funkcijām ir nepieciešami veseli skaitļi dažiem argumentiem, bet citiem — datumi. Citām funkcijām nepieciešams teksts vai tabulas.
Ja dati kolonnā, kuru norādāt kā argumentu, nav saderīgi ar funkcijai nepieciešamo datu tipu, DAX daudzos gadījumos atgriezīs kļūdu. Tomēr, ja vien iespējams, DAX mēģinās netieši konvertēt datus uz vajadzīgo datu tipu. Piemērs.
- Varat ievadīt datumu kā virkni, un DAX parsēs virkni un mēģinās to pārveidot kā vienu no Windows datuma un laika formātiem.
- Varat pievienot TRUE + 1 un iegūt rezultātu 2, jo TRUE tiek netieši pārvērsts par skaitli 1 un tiek veikta darbība 1 + 1.
- Ja divās kolonnās saskaitāt vērtības un viena vērtība tiek attēlota kā teksts ("12"), bet otra kā skaitlis (12), DAX netieši konvertē virkni par skaitli un pēc tam veic saskaitīšanu, lai iegūtu skaitlisku rezultātu. Nākamā izteiksme atgriež 44: = "22" + 22
- Ja mēģināt savienot divus skaitļus, Excel tos parādīs kā virknes un pēc tam savienos. Šī izteiksme atgriež "1234": = 12 & 34
Šajā tabulā ir apkopotas netiešās datu tipu pārvēršanas, kas tiek veiktas formulās. Programma Excel, kad vien iespējams, veic netiešo pārvēršanu atbilstoši norādītajai operācijai.
Netiešo datu konvertēšanas tabula
Veicamās konvertēšanas veidu nosaka operators, kurš nodod nepieciešamās vērtības pirms pieprasītās operācijas veikšanas. Šajās tabulās ir norādīti operatori un norādīta konvertēšana, kas tiek veikta katram datu tipam kolonnā, kad tas ir savienots pārī ar datu tipu krustpunkta rindā.
Piezīme
Šajās tabulās nav iekļauti teksta datu tipi. Ja skaitlis tiek attēlots kā teksta formātā, dažos gadījumos Power Pivot mēģinās noteikt skaitļa tipu un attēlot to kā skaitli.
Saskaitīšana (+)
| Operators (+) | INTEGER | CURRENCY | REAL | Datums/laiks |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | Datums/laiks |
| CURRENCY | CURRENCY | CURRENCY | REAL | Datums/laiks |
| REAL | REAL | REAL | REAL | Datums/laiks |
| Datums/laiks | Datums/laiks | Datums/laiks | Datums/laiks | Datums/laiks |
Piemēram, ja saskaitīšanas operācijā kopā ar valūtas datiem tiek izmantots reāls skaitlis, abas vērtības tiek konvertētas par REAL un rezultāts tiek atgriezts kā REAL.
Atņemšana (-)
Tālāk esošajā tabulā rindas galvene ir minuend (kreisajā pusē) un kolonnas galvene ir subtrahend (labajā pusē).
| Operators (-) | INTEGER | CURRENCY | REAL | Datums/laiks |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Datums/laiks | Datums/laiks | Datums/laiks | Datums/laiks | Datums/laiks |
Piemēram, ja datums tiek izmantots atņemšanas operācijā ar jebkuru citu datu tipu, abas vērtības tiek konvertētas par datumiem, un atgrieztā vērtība arī ir datums.
Piezīme
Datu modeļi atbalsta arī unāro operatoru - (negatīvs), bet šis operators nemaina operanda datu tipu.
Reizināšana (*)
| Operators (*) | INTEGER | CURRENCY | REAL | Datums/laiks |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | INTEGER |
| CURRENCY | CURRENCY | REAL | CURRENCY | CURRENCY |
| REAL | REAL | CURRENCY | REAL | REAL |
Piemēram, ja reizināšanas operācijā vesels skaitlis tiek apvienots ar reālu skaitli, abi skaitļi tiek pārvērsti par reāliem skaitļiem un atgrieztā vērtība arī ir REAL.
Sadalījums (/)
Tālāk esošajā tabulā rindas galvene ir skaitītājs, bet kolonnas galvene ir saucējs.
| Operators (/) (rinda/kolonna) |
INTEGER | CURRENCY | REAL | Datums/laiks |
|---|---|---|---|---|
| INTEGER | REAL | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | REAL | CURRENCY | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Datums/laiks | REAL | REAL | REAL | REAL |
Piemēram, ja dalīšanas operācijā vesels skaitlis tiek apvienots ar valūtas vērtību, abas vērtības tiek konvertētas reālos skaitļos, un rezultāts arī ir reāls skaitlis.
Salīdzinājuma operatori
Salīdzinājuma izteiksmēs Būla vērtības tiek uzskatītas par lielākām par virknes vērtībām un virknes vērtības tiek uzskatītas par lielākām nekā skaitliskās vai datuma/laika vērtības; Skaitļiem un datuma/laika vērtībām tiek uzskatīts, ka tām ir vienāds rangs. Būla vērtībām vai virknes vērtībām netiek veikta netieša konvertēšana. BLANK vai tukša vērtība tiek pārvērsta par 0/""/false atkarībā no otras salīdzinātās vērtības datu tipa.
Šīs DAX izteiksmes ilustrē šo darbību:
=IF(FALSE()>"true","Izteiksme ir patiesa", "Izteiksme ir false"), atgriež "Izteiksme ir patiesa"
=IF("12"12>;"Izteiksme ir patiesa"; "Izteiksme ir nepatiesa"), atgriež "Izteiksme ir patiesa".
=IF("12"=12;"Izteiksme ir patiesa"; "Izteiksme ir nepatiesa"), atgriež "Izteiksme ir nepatiesa"
Konvertēšana tiek veikta netieši ciparu vai datuma/laika tipiem, kā aprakstīts tālāk esošajā tabulā.
| Salīdzinājuma operators | INTEGER | CURRENCY | REAL | Datums/laiks |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Datums/laiks | REAL | REAL | REAL | Datums/laiks |
Tukšu, tukšu virkņu un nulles vērtību apstrāde
Programmā DAX vērtība Null, tukša šūna vai trūkstoša vērtība tiek attēlota ar vienu un to pašu jauno vērtības tipu — BLANK. Varat arī ģenerēt tukšās šūnas, izmantojot funkciju BLANK, vai testēt tukšās vērtības, izmantojot funkciju ISBLANK.
Tukšo vietu apstrāde tādās operācijās kā saskaitīšana vai savienošana ir atkarīga no konkrētās funkcijas. Šajā tabulā ir apkopotas atšķirības starp DAX un Microsoft Excel formulām tukšo šūnu apstrādē.
| Izteiksme | DAX | Excel |
|---|---|---|
| TUKŠS + TUKŠS | TUKŠS | 0 (nulle) |
| TUKŠS +5 | 5 | 5 |
| TUKŠS * 5 | TUKŠS | 0 (nulle) |
| 5/TUKŠS | Bezgalība | Kļūda |
| 0/TUKŠS | NaN | Kļūda |
| TUKŠS/TUKŠS | TUKŠS | Kļūda |
| FALSE VAI TUKŠS | FALSE | FALSE |
| FALSE AND BLANK | FALSE | FALSE |
| PATIESA VAI TUKŠA VĒRTĪBA | PATIESS | PATIESS |
| PATIESS UN TUKŠS | APLAMS | TRUE |
| TUKŠS VAI TUKŠS | TUKŠS | Kļūda |
| TUKŠI UN TUKŠI | TUKŠS | Kļūda |
Detalizētu informāciju par to, kā konkrēta funkcija vai operators apstrādā tukšās vērtības, skatiet atsevišķas tēmas katrai DAX funkcijai sadaļā DAX funkciju uzziņas.