U modelu podataka svaka kolona ima pridruženi tip podataka koji navodi tip podataka koji se mogu naći u koloni: cele brojeve, decimalne brojeve, tekst, monetarne vrednosti, datume i vreme itd. Tip podataka takođe određuje koje vrste operacija možete da izvršite na koloni i koliko memorije je potrebno za skladištenje vrednosti u koloni.
Ako koristite programski dodatak Power Pivot, možete da promenite tip podataka kolone. Možda ćete ovo morati da uradite ako je kolona sa datumima uvezena kao niska, ali vam treba da bude nešto drugo. Više informacija potražite u članku "Postavljanje tipa podataka za kolonu " u programskom dodatku Power Pivot.
U ovom članku
Rezime tipova podataka
Sledeća tabela navodi tipove podataka podržane u modelu podataka. Kada uvezete podatke ili koristite vrednost u formuli, čak i ako originalni izvor podataka sadrži drugi tip podataka, podaci se konvertuju u jedan od tih tipova podataka. Vrednosti koje dobijaju od formula takođe koriste ove tipove podataka.
| Tip podataka u programu Excel | Tip podataka u jeziku DAX | Opis |
|---|---|---|
| Ceo broj | 64-bitna (osam bajtova) celobrojna vrednost 1, 2 | Brojevi koji nemaju decimalna mesta. Ceo broj može biti pozitivan ili negativan broj, ali moraju biti celi brojevi između -9.223.372.036.854.775.808 (-2^63) i 9.223.372.036.854.775.807 (2^63-1). |
| Decimalni broj | 64-bitni (osam bajtova) realan broj 1, 2 | Realni brojevi su brojevi koji mogu da imaju decimalna mesta. Realni brojevi pokrivaju širok opseg vrednosti: Negativne vrednosti od -1.79E +308 kroz -2.23E -308 Nula Pozitivne vrednosti od 2,23E -308 kroz 1,79E + 308 Međutim, broj značajnih cifara ograničen je na 15 decimalnih cifara. |
| TAČNO/NETAČNO | Bulov | Vrednost "Tačno" ili "Netačno". |
| Tekst | String | Niska podataka Unikod znaka. To mogu biti niske, brojevi ili datumi predstavljeni u tekstualnom formatu. Maksimalna dužina niske je 268.435.456 Unicode znakova (256 mega znakova) ili 536.870.912 bajtova. |
| Datum | Datum/vreme | Datumi i vremena u prihvaćenom prikazu datuma i vremena. Važeći datumi su svi datumi nakon 1. januara 1900. |
| Valuta | Valuta | Tip podataka valute omogućava vrednosti između -922.337.203.685.477,5808 i 922.337.203.685.477,5807 sa četiri decimale fiksne preciznosti. |
| Nije primenljivo | Prazno | Prazno je tip podataka u DAX jeziku koji predstavlja i zamenjuje SQL nule. Praznu ploču možete da kreirate pomoću funkcije BLANK, a da testirate postojanje pomoću logičke funkcije ISBLANK. |
1 DAX formule ne podržavaju tipove podataka koji su manji od onih navedenih u tabeli.
2 Ako pokušate da uvezete podatke koji sadrže veoma velike numeričke vrednosti, uvoz možda neće uspeti uz sledeću grešku:
Greška baze podataka u memoriji: Kolona "<ime> kolone" tabele "<ime> tabele" sadrži vrednost "1,7976931348623157e+308", koja nije podržana. Operacija je otkazana.
Do ove greške dolazi zato što Power Pivot koristi tu vrednost da bi predstavio nule. Vrednosti na sledećoj listi su sinonimi za vrednost "nula":
| Vrednost |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1.7976931348623158e+308 |
| 2.2250738585072014E-308 |
Uklonite vrednost iz podataka i ponovo pokušajte da izvršite uvoz
Tip podataka tabele
DAX koristi tip podataka tabele u velikom broju funkcija, kao što su agregacije i izračunavanja vremenske inteligencije. Neke funkcije zahtevaju referencu na tabelu; Druge funkcije daju tabelu koja može da se koristi kao unos za druge funkcije. U nekim funkcijama koje zahtevaju tabelu kao unos, možete da navedete izraz koji daje tabelu; Za neke funkcije je potrebna referenca na osnovnu tabelu. Informacije o zahtevima određenih funkcija potražite u članku Referenca za DAX funkciju.
Implicitna i eksplicitna konverzija tipa podataka u DAX formulama
Svaka DAX funkcija ima određene zahteve u pogledu tipova podataka koji se koriste kao ulazi i izlazi. Na primer, neke funkcije zahtevaju cele brojeve za neke argumente i datume za druge; Druge funkcije zahtevaju tekst ili tabele.
Ako podaci u koloni koju navedete kao argument nisu kompatibilni sa tipom podataka koji funkcija zahteva, DAX će u mnogim slučajevima vratiti grešku. Međutim, kad god je to moguće, DAX će pokušavati da implicitno konvertuje podatke u traženi tip podataka. Na primer:
- Datum možete da otkucate kao nisku, a DAX će raščlaniti nisku i pokušati da je prebaci kao jedan od Windows formata datuma i vremena.
- Možete da dodate TRUE + 1 i dobijete rezultat 2 zato što se TRUE implicitno konvertuje u broj 1 i izvršava se operacija 1+1.
- Ako dodajete vrednosti u dve kolone, a jedna vrednost je predstavljena kao tekst ("12"), a druga kao broj (12), DAX implicitno konvertuje nisku u broj, a zatim vrši sabiranje za numerički rezultat. Sledeći izraz vraća 44: = "22" + 22
- Ako pokušate da spojite dva broja, Excel će ih predstaviti kao niske, a zatim spojiti. Sledeći izraz vraća "1234": = 12 & 34
Sledeća tabela rezimira konverzije implicitnih tipova podataka koje se izvršavaju u formulama. Excel vrši implicitne konverzije kad god je to moguće, u skladu sa zahtevima navedene operacije.
Tabela sa implicitnim konverzijama podataka
Tip konverzije koja se izvršava određuje operator koji prebacuje vrednosti koje su neophodne pre izvršavanja zahtevane operacije. Ove tabele navode operatore i ukazuju na konverziju koja se izvršava na svakom tipu podataka u koloni kada je uparen sa tipom podataka u redu preseka.
Napomena
Tekstualni tipovi podataka nisu uključeni u ove tabele. Kada je broj predstavljen kao u tekstualnom formatu, u nekim slučajevima Power Pivot će pokušati da odredi tip broja i predstavi ga kao broj.
Sabiranje (+)
| Operator (+) | CEO BROJ | CURRENCY | REAL | Datum/vreme |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | Datum/vreme |
| CURRENCY | CURRENCY | CURRENCY | REAL | Datum/vreme |
| REAL | REAL | REAL | REAL | Datum/vreme |
| Datum/vreme | Datum/vreme | Datum/vreme | Datum/vreme | Datum/vreme |
Na primer, ako se realan broj koristi u operaciji sabiranja u kombinaciji sa podacima valute, obe vrednosti se konvertuju u REAL, a rezultat se vraća kao REAL.
Oduzimanje (-)
U sledećoj tabeli zaglavlje reda je minuend (leva strana), a zaglavlje kolone je subtrahend (desna strana).
| Operator (-) | CEO BROJ | CURRENCY | REAL | Datum/vreme |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Datum/vreme | Datum/vreme | Datum/vreme | Datum/vreme | Datum/vreme |
Na primer, ako se datum koristi u operaciji oduzimanja sa bilo kojim drugim tipom podataka, obe vrednosti se konvertuju u datume, a povratna vrednost je takođe datum.
Napomena
Modeli podataka podržavaju i unarni operator - (negativan), ali ovaj operator ne menja tip podataka operanda.
Množenje (*)
| Operator (*) | CEO BROJ | CURRENCY | REAL | Datum/vreme |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | CEO BROJ |
| CURRENCY | CURRENCY | REAL | CURRENCY | CURRENCY |
| REAL | REAL | CURRENCY | REAL | REAL |
Na primer, ako se ceo broj kombinuje sa realnim brojem u operaciji množenja, oba broja se konvertuju u realne brojeve, a dobijena vrednost je takođe REAL.
Divizija (/)
U sledećoj tabeli zaglavlje reda je brojilac, a zaglavlje kolone je imenilac.
| Operator (/) (red/kolona) |
CEO BROJ | CURRENCY | REAL | Datum/vreme |
|---|---|---|---|---|
| CEO BROJ | REAL | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | REAL | CURRENCY | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Datum/vreme | REAL | REAL | REAL | REAL |
Na primer, ako se ceo broj kombinuje sa vrednošću valute u operaciji deljenja, obe vrednosti se konvertuju u realne brojeve, a rezultat je takođe realan broj.
Operatori za poređenje
U poređenju izraza, Bulove vrednosti se smatraju većim od vrednosti niske, a vrednosti niske se smatraju većim od numeričkih vrednosti ili vrednosti datuma/vremena; Smatra se da brojevi i vrednosti datuma/vremena imaju isti rang. Implicitne konverzije se ne izvršavaju za Bulove vrednosti ili vrednosti niske; Prazna ili prazna vrednost konvertuje se u 0/""/false u zavisnosti od tipa podataka druge upoređene vrednosti.
Sledeći DAX izrazi ilustruju ovo ponašanje:
=IF(FALSE()>"true","Expression is true", "Expression is false"), daje "Expression is true"
=IF("12"12,>"Izraz je tačan", "Izraz je netačan"), daje "Izraz je tačan".
=IF("12"=12,"Izraz je tačan", "Izraz je netačan"), daje "Izraz je netačan"
Konverzije se vrše implicitno za numeričke tipove ili tipove datum/vreme, kao što je opisano u sledećoj tabeli:
| Operator za poređenje | CEO BROJ | CURRENCY | REAL | Datum/vreme |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Datum/vreme | REAL | REAL | REAL | Datum/vreme |
Rukovanje prazninama, praznim niskama i vrednostima nule
U jeziku DAX, vrednost "null", prazna vrednost, prazna ćelija ili vrednost koja nedostaje predstavljeni su istim novim tipom vrednosti, "PRAZNO". Prazne ćelije možete da generišete i pomoću funkcije BLANK ili da testirate da li prazne ćelije koristite funkciju ISBLANK.
Način na koji se praznine obrađuju u operacijama, kao što su dodavanje ili spajanje, zavisi od pojedinačne funkcije. Sledeća tabela rezimira razlike između DAX i Microsoft Excel formula, u načinu na koji se prazne ćelije rukuju.
| Izraz | DAX | Excel |
|---|---|---|
| PRAZNO + PRAZNO | PRAZNO | 0 (nula) |
| PRAZNO +5 | 5 | 5 |
| PRAZNO * 5 | PRAZNO | 0 (nula) |
| 5/PRAZAN | Beskonačnost | Greška |
| 0/PRAZAN | NaN | Greška |
| PRAZNO/PRAZAN | PRAZNO | Greška |
| FALSE ILI PRAZNO | FALSE | FALSE |
| FALSE I PRAZNO | FALSE | FALSE |
| TRUE ILI PRAZNO | TRUE | TRUE |
| TRUE AND BLANK | FALSE | TRUE |
| PRAZNO ILI PRAZNO | PRAZNO | Greška |
| PRAZNO I PRAZNO | PRAZNO | Greška |
Detalje o tome kako određena funkcija ili operator rukuje prazninama potražite u pojedinačnim temama za svaku DAX funkciju, u odeljku Referenca za DAX funkciju.