Applies ToExcel za Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016 Excel 2013

U ovom se odjeljku opisuje kako stvoriti filtre u formulama izraza za analizu podataka (DAX). Možete stvoriti filtre u formulama da biste ograničili vrijednosti iz izvorišnih podataka koji se koriste u izračunima. To možete učiniti tako da navedete tablicu kao unos u formulu, a zatim definirate izraz filtra. Izraz filtra koji navedite koristi se za slanje upita podacima i vraćanje samo podskupa izvorišnih podataka. Filtar se primjenjuje dinamički svaki put kada ažurirate rezultate formule, ovisno o trenutnom kontekstu podataka.

Sadržaj članka

Stvaranje filtra na tablici koja se koristi u formuli

Filtre možete primijeniti u formulama koje unose tablicu. Umjesto unosa naziva tablice koristite funkciju FILTER da biste definirali podskup redaka iz navedene tablice. Taj se podskup zatim prosljeđuje drugoj funkciji za operacije kao što su prilagođene agregacije.

Pretpostavimo, primjerice, da imate tablicu podataka koja sadrži informacije o narudžbi o prodavačima i želite izračunati koliko je prodavač prodan. No iznos prodaje želite prikazati samo za one prodavače koji su prodali više jedinica proizvoda veće vrijednosti. Sljedeća formula, utemeljena na oglednoj dax radnoj knjizi, prikazuje jedan primjer stvaranja tog izračuna pomoću filtra:

=SUMX(      FILTER ('ResellerSales_USD', 'ResellerSales_USD'[Količina] > 5 &&      "ResellerSales_USD'[ProductStandardCost_USD] > 100),      'ResellerSales_USD'[SalesAmt]      )

  • Prvi dio formule određuje jednu od Power Pivot agregacije, koja uzima tablicu kao argument. SUMX izračunava zbroj iznad tablice.

  • U drugom dijelu formule FILTER(table, expression),koji SUMX koristiti. SUMX tablicu ili izraz koji rezultira tablicom. Ovdje umjesto korištenja svih podataka u tablici koristite funkciju FILTER da biste odredili koji će se reci iz tablice koristiti.

    Izraz filtra ima dva dijela: prvi dio naziva tablicu na koju se primjenjuje filtar. Drugi dio definira izraz koji će se koristiti kao uvjet filtra. U ovom slučaju filtrirate prodavače koji su prodali više od 5 jedinica i proizvoda koji koštaju više od 100 USD. Operator, &&, logički je operator AND, koji označava da oba dijela uvjeta moraju biti istinita da bi redak pripadao filtriranom podskupu.

  • Treći dio formule govori funkciji SUMX vrijednosti koje treba zbrajanje. U tom slučaju koristite samo iznos prodaje.

    Imajte na umu da funkcije kao što je FILTER, koje vraćaju tablicu, nikad ne vraćaju tablicu ili retke izravno, ali su uvijek ugrađene u drugu funkciju. Dodatne informacije o funkcijama FILTER i drugim funkcijama koje se koriste za filtriranje, uključujući dodatne primjere, potražite u članku Funkcije filtra (DAX).

    Napomena: Na izraz filtra utječe kontekst u kojem se koristi. Ako, primjerice, koristite filtar u mjeri, a mjera se koristi u zaokretnoj tablici ili zaokretnom grafikonu, na podskup vraćenih podataka mogu utjecati dodatni filtri ili rezači koje je korisnik primijenio u zaokretnoj tablici. Dodatne informacije o kontekstu potražite u članku Kontekst u DAX formulama.

Filtri koji uklanjaju duplikate

Osim filtriranja određenih vrijednosti, možete vratiti jedinstveni skup vrijednosti iz druge tablice ili stupca. To može biti korisno kada želite prebrojiti jedinstvene vrijednosti u stupcu ili koristiti popis jedinstvenih vrijednosti za druge operacije. DAX pruža dvije funkcije za vraćanje zasebnih vrijednosti: funkcija DISTINCT ifunkcija VALUES.

  • Funkcija DISTINCT pregledava jedan stupac koji navedete kao argument funkcije i vraća novi stupac koji sadrži samo različite vrijednosti.

  • Funkcija VALUES vraća i popis jedinstvenih vrijednosti, ali vraća i nepoznatog člana. To je korisno kada koristite vrijednosti iz dvije tablice koje su pridružene odnosu, a vrijednost nedostaje u jednoj tablici, a u drugoj. Dodatne informacije o nepoznatom članu potražite u članku Kontekst u DAX formulama.

Obje funkcije vraćaju cijeli stupac vrijednosti; stoga koristite funkcije da biste dobili popis vrijednosti koje se zatim prosljeđuju drugoj funkciji. Na primjer, pomoću sljedeće formule možete dobiti popis različitih proizvoda koje prodaje određeni prodavač pomoću jedinstvenog ključa proizvoda, a zatim prebrojati proizvode na tom popisu pomoću funkcije COUNTROWS:

=COUNTROWS(DISTINCT('ResellerSales_USD'[Ključ proizvoda]))

Vrh stranice

Kako kontekst utječe na filtre

Kada u zaokretnu tablicu ili zaokretni grafikon dodate DAX formulu, kontekst može utjecati na rezultate formule. Ako radite u tablici Power Pivot, kontekst je trenutni redak i njezine vrijednosti. Ako radite u zaokretnoj tablici ili zaokretnom grafikonu, kontekst znači skup ili podskup podataka definiran operacijama kao što su rezanje ili filtriranje. Dizajn zaokretne tablice ili zaokretnog grafikona nameće i vlastiti kontekst. Ako, primjerice, stvorite zaokretnu tablicu koja grupira prodaju po regiji i godini, u zaokretnoj tablici prikazuju se samo podaci koji se odnose na ta područja i godine. Stoga se sve mjere koje dodate u zaokretnu tablicu izračunavaju u kontekstu zaglavlja stupaca i redaka te filtara u formuli mjere.

Dodatne informacije potražite u članku Kontekst u DAX formulama.

Vrh stranice

Uklanjanje filtara

Kada radite sa složenim formulama, možda ćete htjeti točno znati koji su trenutni filtri ili možda želite izmijeniti dio formule filtra. DAX nudi nekoliko funkcija koje omogućuju uklanjanje filtara i kontrolu nad stupcima koji se zadržavaju kao dio trenutnog konteksta filtra. Ovaj odjeljak sadrži pregled načina na koji te funkcije utječu na rezultate u formuli.

Nadjačavanje svih filtara pomoću funkcije ALL

Pomoću funkcije ALL nadjačati sve prethodno primijenjene filtre i vratiti sve retke u tablici funkciji koja izvodi agregacijske ili druge operacije. Ako koristite jedan ili više stupaca, a ne tablicu, kao argumente za ALL, funkcija ALL vraća sve retke, zanemarujući kontekstne filtre.

Napomena: Ako ste upoznati s terminologijom relacijske baze podataka, možete ALL kao generiranje prirodnog lijevog vanjskog spoja svih tablica.

Pretpostavimo, primjerice, da imate tablice, Prodaja i Proizvodi i želite stvoriti formulu koja će izračunati zbroj prodaje za trenutni proizvod podijeljen s prodaju za sve proizvode. Morate uzeti u obzir činjenicu da, ako se formula koristi u mjeri, korisnik zaokretne tablice možda koristi rezač da bi filtrirao određeni proizvod s nazivom proizvoda u recima. Stoga, da biste dobili vrijednost nazivnika bez obzira na filtre ili rezače, morate dodati funkciju ALL da biste nadjačali filtre. Sljedeća formula jedan je od primjera kako koristiti ALL za nadjačavanje efekata prethodnih filtara:

=SUM (Prodaja[Iznos])/SUMX(Prodaja[Iznos], FILTER(Prodaja, ALL(Proizvodi)))

  • Prvi dio formule SUM (Prodaja[Iznos]), izračunava brojnik.

  • Zbroj uzima u obzir trenutni kontekst, što znači da ako formulu dodate u izračunati stupac, primijenit će se kontekst retka i ako formulu dodate u zaokretnu tablicu kao mjeru, primjenjuju se svi filtri primijenjeni u zaokretnoj tablici (kontekst filtra).

  • Drugi dio formule izračunava nazivnik. Funkcija ALL nadjačava filtre koji se mogu primijeniti na Products tablicu.

Dodatne informacije, uključujući detaljne primjere, potražite u članku Funkcija ALL.

Nadjačavanje specifičnih filtara pomoću funkcije ALLEXCEPT

Funkcija ALLEXCEPT nadjačava i postojeće filtre, ali možete odrediti da neke postojeće filtre treba sačuvati. Stupci koje nazivate argumentima funkcije ALLEXCEPT određuju stupce koji će se i dalje filtrirati. Ako želite nadjačati filtre iz većine stupaca, ali ne i sve, ALLEXCEPT je praktičniji od SVIH. Funkcija ALLEXCEPT osobito je korisna kada stvarate zaokretne tablice koje se mogu filtrirati na mnogo različitih stupaca i želite upravljati vrijednostima koje se koriste u formuli. Dodatne informacije, uključujući detaljan primjer korištenja funkcije ALLEXCEPT u zaokretnoj tablici potražite u članku Funkcija ALLEXCEPT.

Vrh stranice

Potrebna vam je dodatna pomoć?

Želite dodatne mogućnosti?

Istražite pogodnosti pretplate, pregledajte tečajeve za obuku, saznajte kako zaštititi uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na njih, pošaljete povratne informacije i čujete se sa stručnjacima s bogatim znanjem.