Filtrarea datelor în formulele DAX

Notă:  Dorim să vă oferim cel mai recent conținut de ajutor, cât mai rapid posibil, în limba dvs. Această pagină a fost tradusă automatizat și poate conține erori gramaticale sau inexactități. Scopul nostru este ca acest conținut să vă fie util. Vă rugăm să ne spuneți dacă informațiile v-au fost utile, în partea de jos a acestei pagini. Aici se află articolul în limba engleză , ca să îl puteți consulta cu ușurință.

Această secțiune descrie modul de creare a filtrelor în cadrul formulelor Data Analysis Expressions (DAX). Puteți să creați filtrelor în cadrul formulelor pentru a restricționa valorile din sursa de date care sunt utilizate în calcule. Puteți face acest lucru, specificând un tabel ca o intrare în formulă, apoi definirea unei expresii de filtru. Expresia de filtru vă oferă este utilizat pentru datele de interogare și a reveni doar un subset de date sursă. Se aplică filtrul dinamic de fiecare dată când actualizați rezultatul formulei, în funcție de contextul curent de date.

În acest articol

Crearea unui filtru într-un tabel utilizat într-o formulă

Filtre care elimină dubluri

Cum influențează contextul filtrele

Eliminarea filtrelor

Înlocuirea tuturor filtrelor cu funcția ALL

Înlocuirea filtrelor specifice cu funcția ALLEXCEPT

Crearea unui filtru într-un tabel utilizat într-o formulă

Puteți să aplicați filtre în formule care iau tabele drept intrare. Î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. Apoi acel subset este trecut prin altă funcție, pentru operații precum agregări personalizate.

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 vinde fiecare reseller. Însă doriți să afișați cantitatea de vânzări doar pentru acei reselleri care au vândut mai multe unități din produse cu valoare ridicată. Formula următoare, bazată pe registrul de lucru eșantion DAX, afișează un exemplu al modului în care puteți să creați acest calcul utilizând un filtru:

= SUMX (
filtru (ResellerSales_USD, 'ResellerSales_USD [cantitate] > 5 & &
'ResellerSales_USD' [ProductStandardCost_USD] > 100),
'ResellerSales_USD' [SalesAmt]
)

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

  • A doua parte a formulei, FILTER(table, expression),spune SUMX ce date de utilizat. 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 ce rândurile din tabel sunt utilizate.

    Expresia de filtru are două părți: prima parte numele tabelului în care se aplică filtrul. A doua parte definește o expresie să o utilizați ca starea de filtrare. În acest caz, filtrați pe reselleri cine a vândut mai mult de 5 unități și produse cu cost mai mult de 100 lei. Operatorul, & &, este un operator și logică, care indică faptul că ambele părți ale condiția trebuie să fie adevărate pentru rândul care să aparțină la subsetul filtrate.

  • A treia parte a formulei spune funcției SUMX ce valori să fie adunate. În acest caz utilizați doar cantitatea de vânzări.

    Notă că funcții, cum ar fi un filtru, care returnează un tabel, întoarce tabel sau rânduri direct, dar nu întotdeauna sunt încorporate într-o altă funcție. Pentru mai multe informații despre filtrare și alte funcții utilizate pentru a filtra, inclusiv exemple mai multe, consultați Funcțiile de filtrare (DAX).

    Notă: Expresia de filtru este afectată de contextul în care este utilizat. De exemplu, dacă utilizați un filtru într-o măsură și măsura este utilizată într-un raport PivotTable sau PivotChart, subset de date care se returnează pot fi afectate de filtre suplimentare sau slicere care utilizatorul are aplicate în raportul PivotTable. Pentru mai multe informații despre contextul, consultați secțiunea contextul în formulele DAX.

Filtre care elimină dubluri

În plus față de filtrare pentru valori specifice, poate returna un set unic de valori din alt tabel sau coloană. Acest lucru poate fi util atunci când doriți să contorizați numărul de valori unice dintr-o coloană sau o listă de valori unice pentru celelalte operațiuni. DAX oferă două funcții pentru returnarea de valori distincte: funcția DISTINCT și funcția VALUES.

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

  • Funcția valori și returnează o listă de valori unice, dar, de asemenea, returnează membrului necunoscut. Acest lucru este util atunci când utilizați valorile din două tabele care sunt asociate cu o relație și o valoare este lipsă dintr-un tabel și prezentare în alta. Pentru mai multe informații despre membrului necunoscut, consultați secțiunea contextul în formulele DAX.

Ambele funcții returnează o coloană întreagă de valori; astfel, utilizați funcțiile pentru a obține o listă de valori care apoi este trecută prin altă funcție. De exemplu, puteți să utilizați formula următoare pentru a obține o listă de produse distincte vândute de un anumit reseller, utilizând cheia unică de produs, apoi să numărați produsele din acea listă utilizând funcția COUNTROWS:

=COUNTROWS(distinct('ResellerSales_USD'[ProductKey]))

Începutul paginii

Cum influențează contextul filtrele

Atunci când adăugați o formulă DAX la un raport PivotTable sau PivotChart, rezultatul formulei pot fi afectate de context. Dacă lucrați într-un tabel Power Pivot , contextul este rândul curent și valorile sale. Dacă lucrați într-un raport PivotTable sau PivotChart, contextul înseamnă set sau subset de date care este definit de operațiuni, cum ar fi tăiat sau de filtrare. Proiectare raport PivotTable sau PivotChart, de asemenea, impune contextul proprie. De exemplu, dacă creați un raport PivotTable care grupează vânzărilor după regiune și year, doar datele pe care se aplică la acele regiuni și ani apare în raportul PivotTable. Prin urmare, orice măsuri pe care le adăugați la raportul PivotTable sunt calculate în contextul titlurile de coloane și rânduri, plus toate filtrele din formula de măsură.

Pentru mai multe informații, consultați secțiunea contextul în formulele DAX.

Începutul paginii

Eliminarea filtrelor

Atunci când lucrați cu formule complexe, probabil doriți să știți exact care sunt filtrele curente sau să modificați partea filtru a formulei. DAX furnizează mai multe funcții care vă permit să eliminați filtrele și să controlați ce coloane sunt reținute ca parte a contextului filtrului curent. Această secțiune furnizează o prezentare generală a modului în care aceste funcții influențează rezultatele dintr-o formulă.

Înlocuirea tuturor filtrelor cu funcția ALL

Puteți folosi ALL pentru a suprascrie toate filtrele care erau aplicate anterior și returna toate rândurile din tabelul funcției care efectuează operațiunea agregate sau alte. Dacă utilizați una sau mai multe coloane, în loc de un tabel, ca argumente la ALL, funcția ALL returnează toate rândurile, ignorând toate filtrele de context.

Notă: Dacă sunteți familiarizat cu terminologia bazelor de date relaționale, puteți să considerați ALL ca generator al unirii naturale externe la stânga pentru toate tabelele.

De exemplu, să presupunem că aveți tabele Vânzări și produse și doriți să creați o formulă care să calculeze suma vânzărilor pentru produsul curent împărțită după vânzările pentru toate produsele. Trebuie să luați în considerare faptul că, dacă formula este utilizată într-o măsură, utilizatorul de PivotTable poate utiliza un slicer pentru a filtra după un anumit produs, cu numele de produs în rânduri. Astfel, pentru a obține adevărata valoare a numitorului indiferent de filtre sau slicere, trebuie să adăugați funcția ALL pentru a înlocui toate filtrele. Formula următoare este un exemplu de utilizare a funcției ALL pentru a înlocui efectele filtrelor anterioare:

= SUM (vânzări [cantitate]) / SUMX (vânzări [cantitate], filtru (vânzări, ALL(Products)))

  • Prima parte a formulei, SUM (cantitate[vânzări]), calculează numărătorul.

  • Suma ia în considerare contextul curent, ceea ce înseamnă că dacă adăugați formula într-o coloană calculată se aplică contextul de rând, iar dacă adăugați formula într-un PivotTable ca măsură, se aplică toate filtrele aplicate în PivotTable (contextul de filtru).

  • A doua parte a formulei, calculează numitorul. Funcția ALL ignoră orice filtre care pot fi aplicate la tabelul Products .

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

Înlocuirea filtrelor specifice cu funcția ALLEXCEPT

Funcția ALLEXCEPT ignoră, de asemenea, filtre existente, dar aveți posibilitatea să specificați că unele filtre existente ar trebui să fie păstrate. Coloanele denumiți ca argumente pentru funcția ALLEXCEPT specificați ce coloane vor continua să fi filtrate. Dacă doriți să Suprascrieți filtre de la cele mai multe coloane, dar nu toate, ALLEXCEPT este mai convenabil decât toate. Funcția ALLEXCEPT este deosebit de utile atunci când creați rapoartele PivotTable care pot fi filtrate în mai multe coloane diferite și doriți să controlați valorile care sunt utilizate în formulă. Pentru mai multe informații, inclusiv un exemplu detaliate despre cum să utilizați ALLEXCEPT într-un raport PivotTable, consultați Funcția ALLEXCEPT.

Începutul paginii

Extindeți-vă competențele Office
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×