Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Această secțiune descrie cum să creați filtre în cadrul formulelor DAX (Data Analysis Expressions). Puteți crea filtre în cadrul formulelor, pentru a restricționa valorile din datele sursă care sunt utilizate în calcule. Puteți face acest lucru specificând un tabel ca intrare pentru formulă, apoi definind o expresie de filtru. Expresia filtru pe care o furnizați este utilizată pentru a interoga datele și a returna doar un subset al datelor sursă. Filtrul se aplică dinamic de fiecare dată când actualizați rezultatele formulei, în funcție de contextul curent al datelor.

În acest articol

Creating a Filter on a Table used in a Formula

Puteți aplica filtre în formule care preiau ca intrare un tabel. În loc să introduceți un nume de tabel, utilizați funcția FILTER pentru a defini un subset de rânduri din tabelul specificat. Acel subset va fi transmis apoi altei funcții, pentru operațiuni cum ar fi agregări particularizate.

De exemplu, să presupunem că aveți un tabel de date care conține informații despre comenzi despre reselleri și doriți să calculați cât de mult a fost vândut fiecare reseller. Cu toate acestea, doriți să afișați volumul de vânzări doar pentru acei reselleri care au vândut mai multe unități de produse cu valori mai mari. Următoarea formulă, bazată pe registrul de lucru eșantion DAX, vă arată un exemplu de creare a acestui calcul utilizând un filtru:

=SUMX(
     FILTER ('ResellerSales_USD', 'ResellerSales_USD'[Cantitate] > 5 &&
     'ResellerSales_USD'[ProductStandardCost_USD] > 100),
     'ResellerSales_USD'[SalesAmt]
     )

  • Prima parte a formulei specifică una dintre funcțiile Power Pivot de agregare, care preia un tabel ca argument. SUMX calculează o sumă peste un tabel.

  • A doua parte a formulei, FILTER(table, expression),spune SUMX ce date să utilizați. SUMX necesită un tabel sau o expresie care are ca rezultat un tabel. Aici, în loc să utilizați toate datele dintr-un tabel, utilizați funcția FILTER pentru a specifica care dintre rândurile din tabel sunt utilizate.

    Expresia filtru are două părți: prima parte de nume a tabelului la care se aplică filtrul. A doua parte definește o expresie de utilizat ca condiție de filtrare. În acest caz, filtrați după reselleri care au vândut mai mult de 5 unități și produse care costă mai mult de 100 LEI. Operatorul, &&, este un operator AND logic, care indică faptul că ambele părți ale condiției trebuie să fie adevărate pentru ca rândul să aparțină subsetului filtrat.

  • A treia parte a formulei spune funcției SUMX ce valori ar trebui însumate. În acest caz, utilizați doar volumul vânzărilor.

    Rețineți că funcții precum FILTER, care returnează un tabel, nu returnează niciodată tabelul sau rândurile în mod direct, dar sunt întotdeauna încorporate într-o altă funcție. Pentru mai multe informații despre FILTER și alte funcții utilizate pentru filtrare, inclusiv mai multe exemple, consultați Filtrarea funcțiilor (DAX).

    Notă: Expresia filtru este afectată de contextul în care se utilizează. De exemplu, dacă utilizați un filtru într-o măsură, iar măsura este utilizată într-un raport PivotTable sau PivotChart, subsetul de date returnat poate fi afectat de filtrele sau slicerele suplimentare aplicate de utilizator în raportul PivotTable. Pentru mai multe informații despre context, consultați Contextul în formulele DAX.

Filtre care elimină dublurile

Pe lângă filtrarea pentru anumite valori, puteți returna un set unic de valori din alt tabel sau din altă coloană. Acest lucru poate fi util atunci când doriți să contorizăm numărul de valori unice dintr-o coloană sau să utilizați o listă de valori unice pentru alte operațiuni. DAX oferă două funcții pentru a returna valori distincte: Funcția DISTINCT și funcția VALUES.

  • Funcția DISTINCT examinează o singură coloană pe care o specificați ca argument pentru funcție și returnează o coloană nouă care conține doar valorile distincte.

  • Funcția VALUES returnează, de asemenea, o listă de valori unice, dar returnează și membrul Necunoscut. Acest lucru este util atunci când utilizați valori din două tabele care sunt legate printr-o relație, iar o valoare lipsește într-un tabel și prezentă în celălalt. Pentru mai multe informații despre membrul necunoscut, consultați Contextul în formule DAX.

Ambele funcții returnează o coloană întreagă de valori; Prin urmare, utilizați funcțiile pentru a obține o listă de valori care sunt apoi transmise altei funcții. De exemplu, puteți utiliza următoarea formulă pentru a obține o listă cu produsele distincte vândute de un anumit reseller, utilizând cheia de produs unică, apoi puteți număra produsele din acea listă utilizând funcția COUNTROWS:

=COUNTROWS(DISTINCT('ResellerSales_USD'[Cheie ProductKey]))

Începutul paginii

Cum afectează filtrele contextuale

Atunci când adăugați o formulă DAX la un raport PivotTable PivotChart formule, rezultatele formulei pot fi afectate de context. Dacă lucrați într-un Power Pivot tabel, contextul este rândul curent și valorile sale. Dacă lucrați într-un raport PivotTable sau PivotChart, contextul înseamnă setul sau subsetul de date care sunt definite de operațiuni cum ar fi nivelarea sau filtrarea. Proiectarea raportului PivotTable sau PivotChart asemenea, impune propriul context. De exemplu, dacă creați un raport PivotTable care grupează vânzările după regiune și an, în raportul PivotTable se afișează doar datele care se aplică la acele regiuni și ani. Prin urmare, orice măsuri pe care le adăugați la raportul PivotTable sunt calculate în contextul titlurilor de coloană și rând, plus orice filtre din formula de măsură.

Pentru mai multe informații, consultați Contextul în formulele DAX.

Începutul paginii

Eliminarea filtrelor

Atunci când lucrați cu formule complexe, poate doriți să știți exact care sunt filtrele curente sau poate doriți să modificați partea de filtrare a formulei. DAX oferă mai multe funcții care vă permit să eliminați filtre și pentru a controla ce coloane sunt păstrate ca parte a contextului curent al filtrului. Această secțiune oferă o prezentare generală a modului în care aceste funcții afectează rezultatele într-o formulă.

Înlocuirea tuturor filtrelor cu funcția ALL

Puteți utiliza funcția ALL pentru a înlocui orice filtre care au fost aplicate anterior și a returna toate rândurile din tabel funcției care efectuează operațiunea agregată sau de alt tip. Dacă utilizați una sau mai multe coloane, în loc de un tabel, ca argumente pentru ALL, funcția ALL returnează toate rândurile, ignorând orice filtru de context.

Notă: Dacă sunteți familiarizat cu terminologia relațională a bazelor de date, vă puteți gândi la ALL generează asocierea externă la stânga naturală a tuturor tabelelor.

De exemplu, să presupunem că aveți tabelele, Vânzări și Produse și doriți să creați o formulă care va calcula suma vânzărilor pentru produsul curent împărțite la vânzările pentru toate produsele. Trebuie să luați în considerare faptul că, dacă formula este utilizată într-o măsură, utilizatorul raportului PivotTable poate utiliza un slicer pentru a filtra după un anumit produs, cu numele produsului pe rânduri. Prin urmare, pentru a obține valoarea reală a numitorului, indiferent de filtre sau slicere, trebuie să adăugați funcția ALL pentru a înlocui orice filtre. Următoarea formulă este un exemplu de utilizare a ALL pentru a înlocui efectele filtrelor anterioare:

=SUM (Vânzări[Volum])/SUMX(Vânzări[Volum], FILTER(Vânzări, ALL(Produse)))

  • Prima parte a formulei, SUM (Vânzări[Volum]), calculează numărulător.

  • Suma ține cont de contextul curent, ceea ce înseamnă că, dacă adăugați formula într-o coloană calculată, se aplică contextul de rând și, dacă adăugați formula într-un PivotTable ca măsură, se aplică orice filtre aplicate în raportul PivotTable (contextul de filtrare).

  • A doua parte a formulei calculează numitorul. Funcția ALL suprascrie toate filtrele care pot fi aplicate Products tabel.

Pentru mai multe informații, inclusiv exemple detaliate, consultați Funcția ALL.

Înlocuirea filtrelor specifice cu funcția ALLEXCEPT

Funcția ALLEXCEPT suprascrie și filtrele existente, dar puteți să specificați ca unele dintre filtrele existente să fie păstrate. Coloanele pe care le numiți ca argumente pentru funcția ALLEXCEPT specifică ce coloane vor continua să fie filtrate. Dacă doriți să înlocuiți filtrele din majoritatea coloanelor, dar nu pe toate, ALLEXCEPT este mai convenabilă decât ALL. Funcția ALLEXCEPT este utilă în special atunci când creați rapoarte PivotTable care pot fi filtrate în mai multe coloane diferite și doriți să controlați valorile utilizate în formulă. Pentru mai multe informații, inclusiv un exemplu detaliat despre cum să utilizați ALLEXCEPT într-un raport PivotTable, consultați Funcția ALLEXCEPT.

Începutul paginii

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×