Într-un model de date, fiecare coloană are un tip de date asociat care specifică tipul de date pe care îl poate conține coloana: numere întregi, numere zecimale, text, date monetare, date și ore și așa mai departe. De asemenea, tipul de date determină ce tipuri de operațiuni puteți face în coloană și câtă memorie este nevoie pentru a stoca valorile din coloană.
Dacă utilizați programul de completare Power Pivot, puteți modifica tipul de date al unei coloane. Poate fi necesar să faceți acest lucru dacă o coloană de date calendaristice a fost importată ca șir, dar trebuie să fie altceva. Pentru mai multe informații, consultați Setarea tipului de date al unei coloane în Power Pivot.
În acest articol
Rezumatul tipurilor de date
Următorul tabel listează tipurile de date acceptate într-un model de date. Când importați date sau când utilizați o valoare într-o formulă, chiar dacă sursa de date inițială conține un alt tip de date, datele sunt convertite într-unul dintre aceste tipuri de date. Valorile care rezultă din formule utilizează, de asemenea, aceste tipuri de date.
Tip de date în Excel |
Tip de date în DAX |
Descriere |
---|---|---|
Număr întreg |
O valoare de număr întreg de 64 de biți (opt octeți) 1, 2 |
Numere care nu conțin zecimale. Numerele întregi pot fi numere pozitive sau negative, însă trebuie să fie numere întregi cuprinse între -9.223.372.036.854.775.808 (-2^63) și 9.223.372.036.854.775.807 (2^63-1). |
Număr zecimal |
Nu număr real de 64 de biți (opt octeți) 1, 2 |
Numerele reale sunt numere care pot conține zecimale. Numerele reale acoperă o gamă largă de valori: Valori negative de la -1,79E +308 la -2,23E -308 Zero Valori pozitive de la 2,23E -308 la 1,79E + 308 Totuși, numărul de cifre importante este limitat la 15 cifre zecimale. |
TRUE/FALSE |
Boolean |
Fie valoarea True, fie valoarea False. |
Text |
Șir |
Un șir de date cu caractere Unicode. Pot fi șiruri, numere sau date reprezentate în format text. Lungimea maximă a șirului este 268.435.456 de caractere Unicode (256 de megacaractere) sau 536.870.912 octeți. |
Dată calendaristică |
Dată/oră |
Date și ore într-o reprezentare dată-oră acceptată. Datele calendaristice valide sunt toate datele după 1 ianuarie 1900. |
Monedă |
Monedă |
Tipul de date monedă permite valori cuprinse între -922.337.203.685.477,5808 și 922.337.203.685.477,5807 cu patru cifre zecimale cu precizie fixă. |
Nu se aplică |
Valoare goală |
O valoare goală este un tip de date din DAX ce reprezintă și înlocuiește valorile null din SQL. Puteți crea o valoare goală utilizând funcția BLANK și puteți testa valorile goale utilizând funcția logică ISBLANK. |
1 Formulele DAX nu acceptă tipuri de date mai mici decât cele listate în tabel.
2 Dacă încercați să importați date care au valori numerice foarte mari, este posibil ca importul să nu reușească, cu următoarea eroare:
Eroare la baza de date din memorie: Coloana „<nume coloană>” a tabelului „<nume tabel>” conține valoarea „1,7976931348623157e+308”, care nu este acceptată. Operațiunea a fost revocată.
Această eroare apare deoarece Power Pivot utilizează valoarea respectivă pentru a reprezenta valorile nule. Valorile din următoarea listă sunt sinonime pentru valoarea nulă:
Valoare |
|
---|---|
9223372036854775807 |
|
-9223372036854775808 |
|
1,7976931348623158e+308 |
|
2,2250738585072014e-308 |
Eliminați valoarea din datele dvs. și încercați să importați din nou.
Tipul de date tabel
DAX utilizează un tip de date tabel în multe funcții, cum ar fi agregările și calculele Time Intelligence. Unele funcții necesită o referință la un tabel; alte funcții returnează un tabel ce poate fi utilizat apoi ca intrare pentru alte funcții. În anumite funcții ce necesită un tabel ca intrare, puteți specifica o expresie ce se evaluează la un tabel; pentru anumite funcții, este necesară o referință la un tabel de bază. Pentru informații despre cerințele anumitor funcții, consultați Referința funcțiilor DAX.
Conversia tipurilor de date implicite și explicite în formulele DAX
Fiecare funcție DAX are cerințe specifice, cum ar fi tipurile de date care sunt utilizate ca intrări și ieșiri. De exemplu, anumite funcții necesită numere întregi pentru anumite argumente și date calendaristice pentru altele; alte funcții necesită text sau tabele.
Dacă datele din coloana pe care o specificați ca argument sunt incompatibile cu tipul de date solicitat de funcție, DAX, în multe cazuri, va returna o eroare. Totuși, ori de câte ori este posibil, DAX va încerca să convertească în mod implicit datele la tipul de date necesar. De exemplu:
-
Puteți introduce o dată calendaristică drept șir, iar DAX va analiza șirul și va încerca să îi facă conversia într-unul dintre formatele dată și oră Windows.
-
Puteți adăuga TRUE + 1 și puteți obține rezultatul 2, deoarece valoarea TRUE este convertită în mod implicit la numărul 1, efectuându-se operațiunea 1+1.
-
Dacă adăugați valori în două coloane, iar o valoare se întâmplă să fie reprezentată ca text („12”) și cealaltă ca număr (12), DAX va converti în mod implicit șirul la un număr, apoi efectuează adunarea pentru un rezultat numeric. Următoarea expresie returnează 44: = „22” + 22
-
Dacă încercați să concatenați două numere, aplicația Excel le va prezenta ca șiruri, apoi le va concatena. Următoarea expresie returnează „1234”: = 12 & 34
Următorul tabel centralizează conversiile implicite ale tipurilor de date care sunt efectuate în formule. Aplicația Excel efectuează conversii implicite ori de câte ori este posibil, după cum este solicitat de operațiunea specificată.
Tabel de conversii implicite de date
Tipul de conversie efectuat este determinat de operator, care face conversia valorilor de care are nevoie înainte de a efectua operațiunea solicitată. Aceste tabele listează operatorii și prezintă conversia ce este efectuată asupra fiecărui tip de date din coloană când sunt asociați tipului de date din rândul cu care se intersectează.
Notă: Tipurile de date text nu sunt incluse în aceste tabele. Când nu număr este reprezentat în format text, în unele cazuri, Power Pivot va încerca să determine tipul de număr și să îl reprezinte ca număr.
Adunare (+)
Operator (+) |
INTEGER |
CURRENCY |
REAL |
Dată/oră |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
Dată/oră |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
Dată/oră |
REAL |
REAL |
REAL |
REAL |
Dată/oră |
Dată/oră |
Dată/oră |
Dată/oră |
Dată/oră |
Dată/oră |
De exemplu, dacă un număr real este utilizat într-o operație de adunare în combinație cu datele de tip monedă, ambele valori sunt convertite la REAL, iar rezultatul este returnat ca REAL.
Scădere (-)
În următorul tabel, antetul de rând este descăzut (în partea stângă) și antetul de coloană este scăzător (în partea dreaptă).
Operator (-) |
INTEGER |
CURRENCY |
REAL |
Dată/oră |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Dată/oră |
Dată/oră |
Dată/oră |
Dată/oră |
Dată/oră |
De exemplu, dacă o dată calendaristică este utilizată într-o operație de scădere cu orice alt tip de date, ambele valori sunt convertite în date calendaristice, iar valoarea returnată este, de asemenea, o dată calendaristică.
Notă: Modelele de date acceptă, de asemenea, operatorul unar, - (negativ), dar acest operator nu modifică tipul de date al operandului.
Înmulțire (*)
Operator (*) |
INTEGER |
CURRENCY |
REAL |
Dată/oră |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
INTEGER |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
CURRENCY |
REAL |
REAL |
CURRENCY |
REAL |
REAL |
De exemplu, dacă un număr întreg este combinat cu un număr real într-o operație de înmulțire, ambele numere sunt convertite în numere reale, iar valoarea returnată este, de asemenea, valoarea REAL.
Împărțire (/)
În următorul tabel, antetul de rând este numărătorul și antetul de coloană este numitorul.
Operator (/) (Rând/coloană) |
INTEGER |
CURRENCY |
REAL |
Dată/oră |
---|---|---|---|---|
INTEGER |
REAL |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Dată/oră |
REAL |
REAL |
REAL |
REAL |
De exemplu, dacă un număr întreg este combinat cu o valoare de tip monedă într-o operație de împărțire, ambele valori sunt convertite în numere reale, iar rezultatul este, de asemenea, un număr real.
Operatori de comparare
În expresiile de comparare, valorile booleene sunt considerate mai mari decât valorile de tip șir, iar valorile de tip șir sunt considerate mai mari decât valorile numerice sau de tip dată/oră; numerele și valorile de tip dată/oră sunt considerate a fi de același nivel. Nu sunt efectuate conversii implicite pentru valorile booleene sau de tip șir; BLANK sau valorile goale sunt convertite la 0/""/false în funcție de tipul de date al celeilalte valori comparate.
Următoarele expresii DAX ilustrează acest comportament:
=IF(FALSE()>"adevărat";"Expresia este adevărată"; "Expresia este falsă") returnează "Expresia este adevărată"
=IF("12">12;"Expresia este adevărată"; "Expresia este falsă") returnează "Expresia este adevărată".
=IF("12"=12;"Expresia este adevărată"; "Expresia este falsă") returnează "Expresia este falsă"
Conversiile sunt efectuate în mod implicit pentru tipurile numerice sau dată/oră așa cum se descrie în următorul tabel:
Operator de comparare |
INTEGER |
CURRENCY |
REAL |
Dată/oră |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Dată/oră |
REAL |
REAL |
REAL |
Dată/oră |
Utilizarea șirurilor necompletate, a șirurilor goale și a valorilor zero
În DAX, o valoare null, o valoare necompletată, o celulă goală sau o valoare lipsă sunt toate reprezentate de același nou tip de valoare, o valoare BLANK. Puteți genera, de asemenea, valori goale utilizând funcția BLANK sau puteți testa valorile goale utilizând funcția ISBLANK.
Modul în care valorile goale sunt utilizate în operații, cum ar fi adunarea sau concatenarea, depinde de funcția individuală. Următorul tabel rezumă diferențele dintre formulele DAX și Microsoft Excel, în ceea ce privește modul de utilizarea a valorilor goale.
Expresie |
DAX |
Excel |
---|---|---|
BLANK + BLANK |
BLANK |
0 (zero) |
BLANK +5 |
5 |
5 |
BLANK * 5 |
BLANK |
0 (zero) |
5/BLANK |
Infinit |
Eroare |
0/BLANK |
NaN |
Eroare |
BLANK/BLANK |
BLANK |
Eroare |
FALSE OR BLANK |
FALSE |
FALSE |
FALSE AND BLANK |
FALSE |
FALSE |
TRUE OR BLANK |
TRUE |
TRUE |
TRUE AND BLANK |
FALSE |
TRUE |
BLANK OR BLANK |
BLANK |
Eroare |
BLANK AND BLANK |
BLANK |
Eroare |
Pentru detalii despre modul în care o anumită funcție sau un anumit operator gestionează spațiile libere, consultați subiectele individuale pentru fiecare funcție DAX, în secțiunea, Referința funcției DAX.