Tipurile de date din modelele de date

Într-un model de date, fiecare coloană conține un tip de date asociat care specifică tipul de date pe care coloana îl poate accepta: numere întregi, numere zecimale, text, date financiare, date și ore etc. Tipul de date determină și ce tipuri de operațiuni puteți efectua pe coloană și cantitatea de memorie utilizată pentru a stoca valorile în 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, însă dvs. aveți nevoie ca aceasta să fie de alt tip. Pentru informații suplimentare, 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 bază de date în memorie: Coloana "<nume> coloană" din tabelul "<nume> tabel" conține o valoare, "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 legate de cerințele pentru anumite funcții, consultați secțiunea 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. Atunci când un 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ă

Începutul paginii

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 referitoare la modul în care o anumită funcție sau un anumit operator utilizează valorile goale, consultați subiectele pentru fiecare funcție DAX, din secțiunea, Referința funcțiilor DAX.

Începutul paginii