Filtriranje podatkov v formulah jezika DAX

V tem razdelku je opisano, kako ustvarite filtre v formulah za analizo podatkov (DAX). V formulah lahko ustvarite filtre, če želite omejiti vrednosti iz izvornih podatkov, ki se uporabljajo v izračunih. To naredite tako, da določite tabelo kot vnos v formulo in nato definirate izraz filtra. Izraz filtra, ki ga navedete, se uporablja za poizvedovanje po podatkih in vračanje le podmnožice izvornih podatkov. Filter je uporabljen dinamično vsakič, ko posodobite rezultate formule, odvisno od trenutnega konteksta podatkov.

V tem članku

Ustvarjanje filtra v tabeli, ki se uporablja v formuli

Filtre lahko uporabite v formulah, ki v tabeli vnašajo kot vnos. Namesto da vnesete ime tabele, uporabite funkcijo FILTER, da določite podnabor vrstic iz navedene tabele. Ta podnabor se nato prenese na drugo funkcijo za operacije, kot so na primer združevanja po meri.

Recimo, da imate tabelo s podatki, ki vsebuje informacije o naročilu za prodajalce, in želite izračunati količino prodanega prodajalca. Vendar pa želite prikazati znesek prodaje le za tiste prodajalce, ki so prodali več enot izdelkov z višjo vrednostjo. Naslednja formula, ki temelji na vzorčnem delovnem zvezku DAX, prikazuje en primer, kako lahko ustvarite ta izračun z uporabo filtra:

= SUMX (
     FILTER ("ResellerSales_USD", "ResellerSales_USD" [količina] > 5 &&
     "ResellerSales_USD" [ProductStandardCost_USD] > 100),
     » ResellerSales_USD «[SalesAmt]
     )

  • Prvi del formule določa eno od funkcij združevanja Power Pivot, ki je tabela kot argument. SUMX izračuna vsoto nad tabelo.

  • Drugi del formule FILTER(table, expression),pove, SUMX katere podatke uporabiti. SUMX zahteva tabelo ali izraz, ki je rezultat tabele. Namesto, da bi uporabili vse podatke v tabeli, uporabite funkcijo FILTER , da določite, kateri od vrstic iz tabele je uporabljen.

    Izraz filtra ima dva dela: prvi del imena tabele, v katero se uporablja filter. Drugi del določa izraz, ki ga želite uporabiti kot pogoj filtra. V tem primeru filtrirate preprodajalce, ki so prodali več kot 5 enot in izdelkov, ki stanejo več kot $100. Operator, &&, je logično in operator, kar pomeni, da morata biti oba dela pogoja True za vrstico, ki pripada filtrirani podskupini.

  • Tretji del formule prikazuje funkcijo SUMX , katere vrednosti je treba povzeti. V tem primeru uporabljate le znesek prodaje.

    Upoštevajte, da funkcije, kot je FILTER, ki vrnejo tabelo, nikoli ne vrnejo tabele ali vrstic neposredno, vendar so vedno vdelane v drugo funkcijo. Če želite več informacij o FILTRIRAnju in drugih funkcijah, ki se uporabljajo za filtriranje, vključno z več primeri, glejte funkcije filtra (Dax).

    Opomba: Izraz» filter «vpliva na kontekst, v katerem je uporabljen. Če na primer uporabite filter v merilu in je merilo uporabljen v vrtilni tabeli ali vrtilnem grafikonu, lahko dodatni filtri ali razčlenjevalniki, ki jih je uporabnik uporabil v vrtilni tabeli, vplivajo na podnabor podatkov, ki so vrnjeni. Če želite več informacij o kontekstu, glejte kontekst v formulah Dax.

Filtri, ki odstranjujejo dvojnike

Poleg filtriranja za določene vrednosti lahko vrnete Enolični nabor vrednosti iz druge tabele ali stolpca. To je lahko uporabno, če želite prešteti število enoličnih vrednosti v stolpcu ali pa uporabiti seznam enoličnih vrednosti za druge operacije. DAX zagotavlja dve funkciji za vračanje razlikovalnih vrednosti: funkcija DISTINCT funkcija in Values.

  • Funkcija DISTINCT preuči en stolpec, ki ga določite kot argument funkcije, in vrne nov stolpec, ki vsebuje le razlikovalne vrednosti.

  • Funkcija VALUes vrne tudi seznam enoličnih vrednosti, vendar vrne tudi neznanega člana. To je uporabno, če uporabite vrednosti iz dveh tabel, ki se združijo z relacijo, in vrednost manjka v eni tabeli in je predstavljena v drugi. Če želite več informacij o neznanem članu, glejte kontekst v formulah jezika Dax.

Obe funkciji vrneta celoten stolpec z vrednostmi; zato uporabite funkcije, da pridobite seznam vrednosti, ki so nato posredovane v drugo funkcijo. To formulo lahko na primer uporabite, če želite dobiti seznam ločenih izdelkov, ki jih proda določen preprodajalec, in sicer z enoličnim ključem izdelka, nato pa preštejte izdelke na tem seznamu s funkcijo COUNTROWS:

= COUNTROWS (DISTINCT ("ResellerSales_USD" [ProductKey]))

Na vrh strani

Kako kontekst vpliva na filtre

Ko dodate formulo DAX v vrtilno tabelo ali vrtilni grafikon, lahko kontekst vpliva na rezultate formule. Če delate v tabeli Power Pivot, je kontekst Trenutna vrstica in njene vrednosti. Če delate v vrtilni tabeli ali vrtilnem grafikonu, kontekst pomeni nabor ali podnabor podatkov, ki so definirani s postopki, kot so rezanje ali filtriranje. Načrt vrtilne tabele ali vrtilnega grafikona tudi nalaga svoj kontekst. Če na primer ustvarite vrtilno tabelo, ki združuje prodajo po regiji in letu, se v vrtilni tabeli prikaže le podatki, ki veljajo za te regije in leta. Zato so vsi ukrepi, ki jih dodate v vrtilno tabelo, izračunani v kontekstu glav stolpcev in vrstic ter vseh filtrov v formuli ukrepa.

Če želite več informacij, glejte kontekst v formulah Dax.

Na vrh strani

Odstranjevanje filtrov

Ko delate z zapletenimi formulami, boste morda želeli natančno vedeti, kaj so trenutni filtri, ali pa boste morda želeli spremeniti filtrirni del formule. DAX ponuja več funkcij, s katerimi lahko odstranite filtre in nadzorujete, kateri stolpci so ohranjeni kot del trenutnega konteksta filtra. V tem razdelku je prikazan pregled, kako te funkcije vplivajo na rezultate v formuli.

Preglasitev vseh filtrov s funkcijo ALL

Funkcijo ALL lahko uporabite, če želite preglasiti vse filtre, ki so bili prej uporabljeni, in vrniti vse vrstice v tabeli v funkcijo, ki izvaja združevalno ali drugo operacijo. Če uporabite enega ali več stolpcev namesto tabele kot argumente za ALL, funkcija ALL vrne vse vrstice in prezre morebitne kontekstne filtre.

Opomba: Če poznate terminologijo relacijske zbirke podatkov, si lahko zamislite ALL kot ustvarjanje naravnega levega zunanjega združevanja vseh tabel.

Recimo, da imate tabele, prodajo in izdelke in želite ustvariti formulo, ki bo izračuna vsoto prodaje za trenutni izdelek, deljen s prodajo za vse izdelke. Upoštevati morate dejstvo, da lahko uporabnik vrtilne tabele, če je formula uporabljen v ukrepu, uporabi razčlenjevalnik za filtriranje določenega izdelka z imenom izdelka v vrsticah. Če želite torej pridobiti pravo vrednost imenovalca ne glede na filtre ali razčlenjevalnike, morate dodati funkcijo ALL, da preglasite vse filtre. Naslednja formula je en primer, kako uporabiti vse, če želite preglasiti učinke prejšnjih filtrov:

= SUM (prodaja [znesek])/SUMX (prodaja [znesek], FILTER (prodaja, vse (izdelki)))

  • Prvi del formule, SUM (prodaja [znesek]), izračuna števec.

  • Vsota upošteva trenutni kontekst, kar pomeni, da če formulo dodate v izračunani stolpec, se uporabi kontekst vrstice in če formulo dodate v vrtilno tabelo kot merilo, se uporabijo vsi filtri, ki so uporabljeni v vrtilni tabeli (kontekst filtra).

  • Drugi del formule izračuna imenovalec. Funkcija ALL preglasi vse filtre, ki bi jih morda uporabili za tabelo Products .

Če želite več informacij, vključno s podrobnimi primeri, glejte funkcija All.

Preglasitev določenih filtrov s funkcijo ALLEXCEPT

Funkcija ALLEXCEPT tudi preglasi obstoječe filtre, vendar lahko določite, da naj se ohranijo nekateri obstoječi filtri. Stolpci, ki jih poimenujete kot argumente v funkciji ALLEXCEPT, določajo, kateri stolpci bodo še naprej filtrirani. Če želite preglasiti filtre iz večine stolpcev, ne pa vseh, je ALLEXCEPT bolj udoben kot vse. Funkcija ALLEXCEPT je še posebej uporabna, ko ustvarjate vrtilne tabele, ki so morda filtrirane v različnih stolpcih, in želite nadzorovati vrednosti, ki so uporabljene v formuli. Če želite več informacij, vključno s podrobnim primerom uporabe ALLEXCEPT v vrtilni tabeli, glejte funkcija ALLEXCEPT.

Na vrh strani

Opomba:  Ta stran je bila prevedena z avtomatizacijo in lahko vsebuje slovnične napake ali nepravilnosti. Želimo, da bi bila ta vsebina za vas uporabna. Ali nam lahko sporočite, če so bile te informacije uporabne? Tukaj je referenčni članek v angleščini.

Ali potrebujete dodatno pomoč?

Razširite poznavanje Officea
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije.

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×