Scenariile DAX în PowerPivot

Se aplică la
Excel pentru Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Această secțiune oferă linkuri către exemple care demonstrează utilizarea formulelor DAX în următoarele scenarii.

  • Efectuarea de calcule complexe
  • Lucrul cu textul și datele
  • Valori condiționale și testarea erorilor
  • Utilizarea funcțiilor de tip "time intelligence"
  • Ierarhizarea și compararea valorilor

În acest articol

Introducere

Vizitați Wiki al Centrului de resurse DAX, unde puteți găsi tot felul de informații despre DAX, inclusiv bloguri, eșantioane, cărți albe și videoclipuri furnizate de profesioniști de renume din domeniu și de Microsoft.

Scenarii: Efectuarea de calcule complexe

Formulele DAX pot efectua calcule complexe care implică agregări particularizate, filtrare și utilizarea valorilor condiționale. Această secțiune oferă exemple de pornire cu calcule particularizate.

Crearea calculelor particularizate pentru un raport PivotTable

CALCULATE și CALCULATETABLE sunt funcții puternice, flexibile, utile pentru definirea câmpurilor calculate. Aceste funcții vă permit să modificați contextul în care va fi efectuat calculul. De asemenea, puteți particulariza tipul de agregare sau de operațiune matematică de efectuat. Vedeți următoarele subiecte pentru exemple.

Aplicarea unui filtru la o formulă

În majoritatea locurilor în care o funcție DAX preia un tabel ca argument, de obicei puteți trece un tabel filtrat, fie utilizând funcția FILTER în locul numelui tabelului, fie specificând o expresie de filtru ca unul dintre argumentele funcției. Următoarele subiecte oferă exemple de creare a filtrelor și modul în care afectează filtrele rezultatele formulelor. Pentru mai multe informații, consultați Filtrarea datelor în formulele DAX.

Funcția FILTER vă permite să specificați criteriile de filtrare utilizând o expresie, în timp ce celelalte funcții sunt proiectate special pentru a filtra valorile necompletate.

Eliminarea selectivă a filtrelor pentru a crea un raport dinamic

Prin crearea de filtre dinamice în formule, puteți răspunde cu ușurință la întrebări cum ar fi cele care urmează:

  • Care a fost contribuția vânzărilor produsului curent la vânzările totale ale anului?
  • Cât de mult a contribuit această divizie la profitul total pentru toți anii de operare, în comparație cu alte divizii?

Formulele pe care le utilizați într-un raport PivotTable pot fi afectate de contextul PivotTable, dar puteți modifica selectiv contextul, adăugând sau eliminând filtre. Exemplul din subiectul ALL vă arată cum să faceți acest lucru. Pentru a găsi raportul dintre vânzările unui anumit reseller și vânzările pentru toți resellerii, creați o măsură care calculează valoarea pentru contextul curent împărțită la valoarea pentru contextul ALL.

Subiectul ALLEXCEPT oferă un exemplu de golire selectivă a filtrelor dintr-o formulă. Ambele exemple vă ajută să parcurgeți modul în care rezultatele se modifică în funcție de proiectarea raportului PivotTable.

Pentru alte exemple de calcul al rapoartelor și procentelor, consultați următoarele subiecte:

Utilizarea unei valori dintr-o buclă externă

În plus față de utilizarea valorilor din contextul curent în calcule, DAX poate utiliza o valoare dintr-o buclă anterioară în crearea unui set de calcule asociate. Următorul subiect oferă o prezentare generală a modului de construire a unei formule care face referire la o valoare dintr-o buclă externă. Funcția EARLIER acceptă până la două niveluri de bucle imbricate.

Pentru a afla mai multe despre contextul rândurilor și tabelele asociate și cum se utilizează acest concept în formule, consultați Contextul în formulele DAX.

Scenarii: lucrul cu textul și datele

Această secțiune oferă linkuri către subiecte de referință DAX, care conțin exemple de scenarii comune care implică lucrul cu textul, extragerea și compunerea valorilor dată și oră sau crearea valorilor pe baza unei condiții.

Crearea unei coloane cheie prin concatenare

Power Pivot nu permite chei compuse; Prin urmare, dacă aveți chei compuse în sursa de date, poate fi necesar să le combinați într-o singură coloană cheie. Următorul subiect oferă un exemplu de creare a unei coloane calculate pe baza unei chei compuse.

Compunerea unei date pe baza părților de dată extrase dintr-o dată text

Power Pivot utilizează un tip de date dată/oră SQL Server pentru a lucra cu date; Prin urmare, dacă datele externe conțin date care sunt formatate diferit, de exemplu, dacă datele sunt scrise într-un format de dată regională care nu este recunoscut de motorul de date Power Pivot sau dacă datele utilizează chei surogat de numere întregi, poate fi necesar să utilizați o formulă DAX pentru a extrage părțile de dată și apoi să compuneți părțile într-o reprezentare validă dată/oră.

De exemplu, dacă aveți o coloană de date care au fost reprezentate ca un întreg și apoi importate ca un șir text, puteți efectua conversia șirului la o valoare dată/oră utilizând următoarea formulă:

=DATE(RIGHT([Valoare1],4),LEFT([Valoare1],2),MID([Valoare1],2))

Valoare1 Rezultat
01032009 1/3/2009
12132008 12/13/2008
06252007 6/25/2007

Următoarele subiecte oferă mai multe informații despre funcțiile utilizate pentru a extrage și a compune date.

Definirea unui format de dată sau de număr particularizat

Dacă datele conțin date sau numere care nu sunt reprezentate într-unul dintre formatele de text standard Windows, puteți defini un format particularizat pentru a vă asigura că valorile sunt tratate corect. Aceste formate sunt utilizate la conversia valorilor la șiruri sau din șiruri. Următoarele subiecte furnizează, de asemenea, o listă detaliată a formatelor predefinite disponibile pentru lucrul cu date și numere.

Modificarea tipurilor de date utilizând o formulă

În Power Pivot, tipul de date al rezultatului este determinat de coloanele sursă și nu puteți specifica în mod explicit tipul de date al rezultatului, deoarece tipul optim de date este determinat de Power Pivot. Cu toate acestea, puteți utiliza conversiile implicite ale tipurilor de date efectuate de Power Pivot pentru a manipula tipul de date de ieșire. 

  • Pentru a efectua conversia unei date sau a unui număr-număr într-un număr, înmulțiți cu 1,0. De exemplu, următoarea formulă calculează data curentă minus 3 zile și are ca rezultat valoarea întreg corespunzătoare.
    =(TODAY()-3)*1.0
  • Pentru a efectua conversia unei valori de tip dată, număr sau monedă într-un șir, concatenați valoarea cu un șir gol. De exemplu, următoarea formulă returnează data de azi ca șir.
    =""& TODAY()

Următoarele funcții pot fi utilizate, de asemenea, pentru a asigura că se returnează un anumit tip de date:

Conversia numerelor reale la întregi

Scenariu: valori condiționate și testarea erorilor

La fel ca Excel, DAX are funcții care vă permit să testați valorile din date și să returnați o altă valoare pe baza unei condiții. De exemplu, puteți crea o coloană calculată care să eticheteze resellerii ca preferenți sau valoare , în funcție de cantitatea anuală de vânzări. Funcțiile care testează valori sunt utile și pentru verificarea zonei sau tipului de valori, pentru a împiedica erorile de date neașteptate de la calculele întrerupte.

Crearea unei valori pe baza unei condiții

Puteți utiliza condiții IF imbricate pentru a testa valori și a genera valori noi condiționat. Următoarele subiecte conțin câteva exemple simple de procesare condiționată și valori condiționale:

Testarea erorilor dintr-o formulă

Spre deosebire de Excel, nu puteți avea valori valide într-un rând al unei coloane calculate și valori nevalide în alt rând. Mai exact, dacă există o eroare în orice parte a unei coloane Power Pivot, întreaga coloană este semnalizată cu o eroare, astfel încât trebuie să corectați întotdeauna erorile din formule care au ca rezultat valori nevalide.

De exemplu, în cazul în care creați o formulă care împarte la zero, este posibil să obțineți rezultatul infinit sau o eroare. Unele formule nu vor reuși nici dacă funcția întâlnește o valoare necompletată atunci când așteaptă o valoare numerică. În timp ce dezvoltați modelul de date, cel mai bine este să permiteți apariția erorilor, pentru a face clic pe mesaj și a depana problema. Însă, când publicați registre de lucru, ar trebui să încorporați tratarea erorilor pentru a împiedica valorile neașteptate să determine nereușita calculelor.

Pentru a evita returnarea erorilor într-o coloană calculată, utilizați o combinație de funcții logice și de informații pentru a testa erorile și a returna întotdeauna valori valide. Următoarele subiecte oferă câteva exemple simple de cum să faceți acest lucru în DAX:

Scenarii: Utilizarea funcțiilor de tip "time intelligence"

Funcțiile DAX time intelligence includ funcții care vă ajută să regăsiți date sau intervale de date din datele dvs. Apoi puteți utiliza acele date sau intervale de date pentru a calcula valori din perioade similare. Funcțiile time intelligence includ, de asemenea, funcții care funcționează cu intervale de date standard, pentru a vă permite să comparați valorile din luni, ani sau trimestre. De asemenea, puteți crea o formulă care compară valorile pentru prima și ultima dată a unei perioade specificate.

Pentru o listă a tuturor funcțiilor Time Intelligence, consultați Funcțiile Time Intelligence (DAX). Pentru sfaturi despre cum să utilizați datele și orele în mod eficient într-o analiză Power Pivot, consultați Datele calendaristice în Power Pivot.

Calculați vânzările cumulate

Următoarele subiecte conțin exemple pentru calcularea soldurilor de închidere și de deschidere. Exemplele vă permit să creați solduri parțiale pentru intervale diferite, cum ar fi zile, luni, trimestre sau ani.

Compararea valorilor în timp

Următoarele subiecte conțin exemple de comparare a sumelor din perioade de timp diferite. Perioadele de timp implicite acceptate de DAX sunt lunile, trimestrele și anii.

Calcularea unei valori într-un interval de date particularizat

Consultați următoarele subiecte pentru exemple despre cum să regăsiți intervale de date particularizate, cum ar fi primele 15 zile de la începerea unei promoții de vânzări.

Dacă utilizați funcțiile de time intelligence pentru a regăsi un set particularizat de date, puteți utiliza acel set de date ca intrare pentru o funcție care efectuează calcule, pentru a crea agregate particularizate pe perioade de timp. Consultați următorul subiect pentru un exemplu de procedură:

  • Funcția PARALLELPERIOD

    Notă

    Dacă nu trebuie să specificați un interval de date particularizat, dar lucrați cu unități de contabilitate standard, cum ar fi luni, trimestre sau ani, vă recomandăm să efectuați calcule utilizând funcțiile time intelligence proiectate pentru acest scop, cum ar fi TOTALQTD, TOTALMTD, TOTALQTD etc.

Scenarii: Ierarhizarea și compararea valorilor

Pentru a afișa numai primele n de elemente dintr-o coloană sau dintr-un raport PivotTable, aveți mai multe opțiuni:

  • Puteți utiliza caracteristicile din Excel pentru a crea un filtru Top. De asemenea, puteți selecta un număr de valori superioare sau inferioare într-un raport PivotTable. Prima parte a acestei secțiuni descrie cum să filtrați pentru a obține primele 10 elemente dintr-un raport PivotTable. Pentru mai multe informații, consultați documentația Excel.
  • Puteți să creați o formulă care ierarhizează dinamic valorile, apoi să filtrați după valorile de ierarhizare sau să utilizați valoarea de ierarhizare ca un slicer. A doua parte a acestei secțiuni descrie cum să creați această formulă și să utilizați apoi acea ierarhizare într-un slicer.

Există avantaje și dezavantaje pentru fiecare metodă.

  • Filtrul Excel Top este simplu de utilizat, dar filtrul este doar pentru afișare. Dacă datele subiacente raportului PivotTable se modifică, trebuie să reîmprospătați manual raportul PivotTable pentru a vedea modificările. Dacă trebuie să lucrați dinamic cu clasamentele, puteți utiliza DAX pentru a crea o formulă care compară valorile cu alte valori dintr-o coloană.
  • Formula DAX este mai puternică; mai mult, adăugând valoarea de ierarhizare la un slicer, puteți face clic pe slicer pentru a modifica numărul de valori de top afișate. Cu toate acestea, calculele sunt costisitoare din punct de vedere computațional și această metodă poate să nu fie potrivită pentru tabelele cu multe rânduri.

Afișarea numai a primelor zece elemente dintr-un raport PivotTable

Pentru a afișa valorile superioare sau inferioare dintr-un raport PivotTable
  1. În raportul PivotTable, faceți clic pe săgeata în jos din titlul Etichete de rând .
  2. Selectați Filtre >de valoriPrimele 10.
  3. În caseta de dialog Numele> coloanei Filtrare <primele 10, alegeți coloana de clasificat și numărul de valori, după cum urmează:
    1. Selectați Sus pentru a vedea celulele cu cele mai mari valori sau Jos pentru a vedea celulele cu cele mai mici valori.
    2. Tastați numărul de valori superioare sau inferioare pe care doriți să le vedeți. Valoarea implicită este 10.
    3. Selectați cum doriți să se afișeze valorile:
NumeDescriereElementeSelectați această opțiune pentru a filtra raportul PivotTable astfel încât să afișeze numai lista cu elementele superioare sau ultimele după valorile lor. ProcentBifați această opțiune pentru a filtra raportul PivotTable astfel încât să afișeze numai elementele care se însumează la procentul specificat. SumăSelectați această opțiune pentru a afișa suma valorilor pentru elementele superioare sau finale.
  1. Selectați coloana care conține valorile pe care doriți să le clasificați.
  2. Faceți clic pe OK.

Ordonarea dinamică a elementelor, utilizând o formulă

Următorul subiect conține un exemplu de utilizare DAX pentru a crea o ierarhizare stocată într-o coloană calculată. Deoarece formulele DAX sunt calculate dinamic, puteți fi întotdeauna sigur că ierarhizarea este corectă, chiar dacă datele subiacente s-au modificat. De asemenea, deoarece formula este utilizată într-o coloană calculată, puteți să utilizați ierarhizarea într-un slicer și apoi să selectați primele 5, primele 10 sau chiar primele 100 de valori.