Duomenų modelyje kiekvienas stulpelis turi susietą duomenų tipą, kuris nurodo, kokio tipo duomenis stulpelyje gali būti: sveikieji skaičiai, dešimtainiai skaičiai, tekstas, piniginiai duomenys, datos ir laikas ir t. t. Duomenų tipas taip pat nustato, kokio tipo operacijas galite atlikti su stulpeliu ir kiek atminties reikia reikšmėms stulpelyje išsaugoti.
Jei naudojate "Power Pivot" papildinį, galite pakeisti stulpelio duomenų tipą. Tai gali tekti padaryti, jei datos stulpelis buvo importuotas kaip eilutė, bet reikia, kad jis būtų kažkas kitas. Daugiau informacijos rasite Stulpelio duomenų tipo nustatymas "Power Pivot".
Šiame straipsnyje:
Duomenų tipų suvestinė
Šioje lentelėje pateikiami duomenų modelio palaikomi duomenų tipai. Kai importuojate duomenis arba naudojate reikšmę formulėje, net jei pradiniame duomenų šaltinyje yra kitas duomenų tipas, duomenys konvertuojami į vieną iš šių duomenų tipų. Reikšmės, gaunamos iš formulių, taip pat naudoja šiuos duomenų tipus.
| Duomenų tipas programoje "Excel" | DAX duomenų tipas | Aprašas |
|---|---|---|
| Sveikasis skaičius | 64 bitų (aštuonių baitų) sveikojo skaičiaus reikšmė 1, 2 | Skaičiai be dešimtainių vietų. Sveikieji skaičiai gali būti teigiami arba neigiami skaičiai, bet jie turi būti sveikieji skaičiai nuo -9,223,372,036,854,775,808 (-2^63) iki 9,223,372,036,854,775,807 (2^63-1). |
| Dešimtainis skaičius | 64 bitų (aštuonių baitų) realusis skaičius 1, 2 | Realieji skaičiai – tai skaičiai, kurie gali turėti dešimtaines skiltis. Realieji skaičiai apima platų reikšmių diapazoną: Neigiamos reikšmės nuo -1.79E +308 iki -2.23E -308 Nulis Teigiamos reikšmės nuo 2,23E -308 iki 1,79E + 308 Tačiau reikšminių skaitmenų skaičius ribojamas iki 15 skaitmenų po kablelio. |
| TEISINGA / KLAIDINGA | bulio logika | Reikšmė Teisinga arba Klaidinga. |
| Tekstas | Eilutė | "Unicode" simbolio duomenų eilutė. Gali būti eilutės, skaičiai arba datos, pateikiamos teksto formatu. Maksimalus eilutės ilgis yra 268 435 456 "Unicode" simboliai (256 dideli simboliai) arba 536 870 912 baitų. |
| Data | Data / laikas | Datos ir laikai patvirtintoje datos ir laiko išraiškoje. Visos galiojančios datos yra po 1900 m. sausio 1 d. |
| Valiuta | Valiuta | Valiutos duomenų tipas leidžia reikšmes nuo –922,337,203,685,477.5808 iki 922,337,203,685,477.5807 su keturiais fiksuoto tikslumo dešimtainiais skaitmenimis. |
| Netaikoma | Tušti šablonai | Tuščias yra DAX duomenų tipas, kuris nurodo ir pakeičia SQL nulius. Galite sukurti tuščią lauką naudodami funkciją BLANK ir patikrinti, ar yra tuščių laukų, naudodami loginę funkciją ISBLANK. |
1 DAX formulės nepalaiko mažesnių duomenų tipų, nei nurodyta lentelėje.
2 Jei bandysite importuoti duomenis su labai didelėmis skaitinėmis reikšmėmis, importavimas gali nepavykti dėl šios klaidos:
Atminties duomenų bazės klaida: lentelės "lentelės< pavadinimas>" stulpelio pavadinimo> stulpelyje yra reikšmė "1.7976931348623157e+308",< kuri nepalaikoma. Operacija atšaukta.
Ši klaida įvyksta, nes "PowerPivot" naudoja šią reikšmę nuliniams reikšmiams parodyti. Toliau pateiktos reikšmės yra nulinės reikšmės sinonimai:
| Reikšmė |
|---|
| 9223372036854775807 |
| -9223372036854775808 |
| 1,7976931348623158e+308 |
| 2.2250738585072014E-308 |
Pašalinkite reikšmę iš duomenų ir bandykite importuoti iš naujo.
Lentelės duomenų tipas
DAX naudoja lentelės duomenų tipą daugelyje funkcijų, pvz., agregavimuose ir laiko informacijos skaičiavimuose. Kai kurioms funkcijoms reikalinga nuoroda į lentelę; Kitos funkcijos pateikia lentelę, kuri vėliau gali būti naudojama kaip kitų funkcijų įvestis. Kai kuriose funkcijose, kurioms lentelė reikalinga kaip įvestis, galite nurodyti reiškinį, kuris įvertina lentelę; Kai kurioms funkcijoms būtina nuoroda į pagrindinę lentelę. Informacijos apie konkrečių funkcijų reikalavimus žr. DAX funkcijos nuoroda.
Netiesioginis ir tiesioginis duomenų tipo konvertavimas DAX formulėse
Kiekviena DAX funkcija turi konkrečius reikalavimus duomenų tipams, kurie naudojami kaip įvestys ir išvestys. Pavyzdžiui, kai kurios funkcijos reikalauja sveikųjų skaičių vieniems argumentams, o datų – kitoms; Kitoms funkcijoms reikalingas tekstas arba lentelės.
Jei stulpelio, kurį nurodote kaip argumentą, duomenys nesuderinami su funkcijai reikalingu duomenų tipu, DAX daugeliu atvejų pateiks klaidą. Tačiau, kai tik įmanoma, DAX bandys netiesiogiai konvertuoti duomenis į reikiamą duomenų tipą. Pavyzdžiui:
- Galite įvesti datą kaip eilutę, o DAX išanalizuos eilutę ir bandys ją pateikti kaip vieną iš "Windows" datos ir laiko formatų.
- Galite pridėti TRUE + 1 ir gauti rezultatą 2, nes TRUE netiesiogiai konvertuojama į skaičių 1 ir atliekama operacija 1+1.
- Jei įtrauksite reikšmes į du stulpelius ir viena reikšmė bus pateikta kaip tekstas ("12"), o kita – kaip skaičius (12), DAX netiesiogiai konvertuos eilutę į skaičių ir tada atliks sudėtį, kad gautų skaitinį rezultatą. Ši išraiška pateikia 44: = "22" + 22
- Jei bandysite sujungti du skaičius, "Excel" pateiks juos kaip eilutes ir tada sujungs. Ši išraiška pateikia "1234": = 12 & 34
Toliau pateiktoje lentelėje apibendrinami numanomi duomenų tipo konvertavimai, atliekami formulėse. Kai tik įmanoma, programa "Excel" atlieka netiesioginius konvertavimus, kaip to reikalauja nurodyta operacija.
Netiesioginių duomenų konvertavimų lentelė
Atliekamo konvertavimo tipą nustato operatorius, kuris prieš atlikdamas prašomą operaciją pateikia reikiamas reikšmes. Šiose lentelėse išvardijami operatoriai ir nurodomas konvertavimas, kuris atliekamas kiekvienam stulpelio duomenų tipui, kai jis suporuojamas su susikertančios eilutės duomenų tipu.
Pastaba
Teksto duomenų tipai į šias lenteles neįtraukti. Kai skaičius pateikiamas teksto formatu, kai kuriais atvejais "PowerPivot" bandys nustatyti skaičiaus tipą ir pateikti jį kaip skaičių.
Sudėtis (+)
| Operatorius (+) | INTEGER | CURRENCY | REAL | Data / laikas |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | Data / laikas |
| CURRENCY | CURRENCY | CURRENCY | REAL | Data / laikas |
| REAL | REAL | REAL | REAL | Data / laikas |
| Data / laikas | Data / laikas | Data / laikas | Data / laikas | Data / laikas |
Pvz., jei sudėties operacijoje kartu su valiutos duomenimis naudojamas realusis skaičius, abi reikšmės konvertuojamos į REAL, o rezultatas grąžinamas kaip REAL.
Atimtis (-)
Šioje lentelėje eilutės antraštė yra minuend (kairėje pusėje), o stulpelio antraštė yra subtrahend (dešinėje).
| Operatorius (-) | INTEGER | CURRENCY | REAL | Data / laikas |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Data / laikas | Data / laikas | Data / laikas | Data / laikas | Data / laikas |
Pavyzdžiui, jei data naudojama atimties operacijoje su bet kuriuo kitu duomenų tipu, abi reikšmės konvertuojamos į datas, o grąžinama reikšmė taip pat yra data.
Pastaba
Duomenų modeliai taip pat palaiko vienetinį operatorių - (neigiamą), tačiau šis operatorius nekeičia operando duomenų tipo.
Daugyba (*)
| Operatorius (*) | INTEGER | CURRENCY | REAL | Data / laikas |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | INTEGER |
| CURRENCY | CURRENCY | REAL | CURRENCY | CURRENCY |
| REAL | REAL | CURRENCY | REAL | REAL |
Pavyzdžiui, jei daugybos operacijos metu sveikasis skaičius sujungiamas su realiuoju skaičiumi, abu skaičiai konvertuojami į realiuosius skaičius, o grąžinama reikšmė taip pat yra REAL.
Kvadratas (/)
Šioje lentelėje eilutės antraštė yra skaitiklis, o stulpelio antraštė yra vardiklis.
| Operatorius (/) (Eilutė / stulpelis) |
INTEGER | CURRENCY | REAL | Data / laikas |
|---|---|---|---|---|
| INTEGER | REAL | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | REAL | CURRENCY | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Data / laikas | REAL | REAL | REAL | REAL |
Pavyzdžiui, jei atliekant dalybos operaciją sveikasis skaičius sujungiamas su valiutos reikšme, abi reikšmės konvertuojamos į realiuosius skaičius, o rezultatas taip pat yra realusis skaičius.
Lyginimo operatoriai
Palyginimo išraiškose Bulio logikos reikšmės laikomos didesnėmis už eilutės reikšmes, o eilutės reikšmės – didesnėmis už skaitines arba datos / laiko reikšmes; Laikoma, kad skaičiai ir datos / laiko reikšmės turi tą patį rangą. Neatliekami jokie numanomi Bulio logikos ar eilučių reikšmių konvertavimai; BLANK arba tuščia reikšmė konvertuojama į 0/""/false, atsižvelgiant į kitos lyginamos reikšmės duomenų tipą.
Toliau nurodytos DAX išraiškos iliustruoja šią elgseną:
=IF(FALSE()>"true","Expression is true", "Expression is false"), pateikia "Expression is true"
=IF("12">12,"Išraiška teisinga", "Išraiška klaidinga"), pateikia "Išraiška teisinga".
=IF("12"=12,"Išraiška teisinga", "Išraiška klaidinga"), pateikia "Išraiška klaidinga"
Netiesiogiai konvertuojami skaitiniai arba datos / laiko tipai, kaip aprašyta šioje lentelėje:
| Lyginimo operatorius | INTEGER | CURRENCY | REAL | Data / laikas |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Data / laikas | REAL | REAL | REAL | Data / laikas |
Tuščių, tuščių eilučių ir nulinių reikšmių tvarkymas
DAX neapibrėžta, tuščia reikšmė, tuščias langelis arba trūkstama reikšmė pateikiama naudojant tą patį naują reikšmės tipą BLANK. Taip pat galite generuoti tuščius langelius naudodami funkciją BLANK arba tikrinti, ar yra tuščių naudodami funkciją ISBLANK.
Kaip ruošiniai apdorojami operacijose, pvz., sudėjimo ar sujungimo, priklauso nuo konkrečios funkcijos. Šioje lentelėje apibendrinami skirtumai tarp DAX ir "Microsoft Excel" formulių, kaip tvarkomi tušti langeliai.
| Reiškinys | DAX | Excel |
|---|---|---|
| BLANK + BLANK | TUŠTI ŠABLONAI | 0 (nulis) |
| TUŠTI +5 | 5 | 5 |
| TUŠTI * 5 | TUŠTI ŠABLONAI | 0 (nulis) |
| 5/TUŠČIAS | Begalybė | Klaida |
| 0/TUŠČIAS | NaN | Klaida |
| TUŠČIA / TUŠČIA | TUŠTI ŠABLONAI | Klaida |
| FALSE OR BLANK | FALSE | FALSE |
| FALSE AND BLANK | FALSE | FALSE |
| TRUE OR BLANK | TRUE | TRUE |
| TRUE AND BLANK | FALSE (klaidinga) | TRUE |
| TUŠČIAS ARBA TUŠČIAS | TUŠTI ŠABLONAI | Klaida |
| TUŠTI IR TUŠTI | TUŠTI ŠABLONAI | Klaida |
Išsamios informacijos apie tai, kaip konkreti funkcija ar operatorius apdoroja tuščius langelius, ieškokite atskirose kiekvienos DAX funkcijos temose skyriuje DAX funkcijos nuoroda.