Filtriranje podatkov v formulah jezika DAX

Pomembno : Besedilo članka je prevedeno strojno. Glejte zavrnitev odgovornosti. Angleško različico tega članka najdete tukaj .

V tem razdelku je opisano, kako ustvariti filtre v okviru formul Data Analysis Expressions (DAX). Ustvarite lahko filtre v formulah, če želite omejiti vrednosti iz vira podatkov, ki so uporabljene v izračunih. To naredite tako, da določite tabelo kot vnos za formulo, in nato določite izraz filtra. Izraz filtra, ki jih posredujete, ki se uporablja za poizvedbo podatkov in se vrniti le podmnožico vira podatkov. Filter, bo 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

Filtri, ki odstranjujejo dvojnike

Kako kontekst vpliva na filtre

Odstranjevanje filtrov

Prepis vseh filtrov s funkcijo ALL

Prepis določenih filtrov s funkcijo ALLEXCEPT

Ustvarjanje filtra v tabeli, ki se uporablja v formuli

Filtre lahko uporabite v formulah, ki črpajo iz tabele. Namesto da vnesete ime tabele, uporabite funkcijo FILTER in določite podmnožico vrstic iz določene tabele. Podmnožica se nato prenese v drugo funkcijo za izvajanje drugih postopkov, na primer zbiranje po meri.

Če imate na primer tabelo s podatki, ki vsebujejo informacije o naročilih prodajalcev, želite pa izračunati, koliko je vsak prodajalec prodal. Vendar želite prikazati količino prodanega blaga le za tiste prodajalce, ki so prodali več enot vaših izdelkov z višjo vrednostjo. Ta formula, ki temelji na vzorčnem delovnem zvezku DAX, prikazuje en primer, kako lahko z uporabo filtra ustvarite ta izračun:

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

  • Prvi del formule, ki določa enega od Power Pivot združevalne funkcije, ki vzame tabelo kot argument. SUMX izračuna vsote nad tabelo.

  • Drugi del formule, FILTER(table, expression),pove SUMX kateri podatkov. SUMX zahteva tabelo ali izraz, ki je rezultat v tabeli. Tukaj, namesto vse podatke v tabeli, uporabite funkcijo FILTER določite, kateri od vrstic iz tabele se uporabljajo.

    Izraz filter je sestavljena iz dveh delov: prvi del imena tabele, ki se uporablja filter. Drugi del definira izraz, ki ga želite uporabiti kot pogoj filtra. V tem primeru filtrirate na prodajalcev, ki je prodal več kot 5 enote in izdelki, ki stanejo več kot $100. Operator, & &, je logično in operator, ki označuje, da morajo biti obeh delih pogoj velja za vrstico katero filtrirani podmnožici.

  • Tretji del formule določa za funkcijo SUMX , katere vrednosti je treba sešteti. V tem primeru uporabljate le količino prodanega blaga.

    Funkcije, na primer FILTER, ki vrnejo tabelo, nikoli ne vrnejo tabele ali vrstic neposredno, temveč so vedno vdelane v drugo funkcijo. Če želite več informacij o funkciji FILTER in drugih funkcijah, ki se uporabljajo za filtriranje, vključno z več primeri, glejte Funkcije za filtriranje (DAX).

    Opomba : Na izraz filtra vpliva kontekst, za katerega se filter uporablja. Če uporabite filter na primer v meri, mera pa je uporabljena v vrtilni tabeli ali vrtilnem grafikonu, lahko na vrnjeno podmnožico podatkov vplivajo dodatni filtri ali razčlenjevalniki, ki jih je uporabnik uporabil v vrtilni tabeli. Če želite več informacij o kontekstu, glejte Kontekst v formulah DAX.

Filtri, ki odstranjujejo dvojnike

Poleg filtriranja določenih vrednosti, lahko vrnete enolični nabor vrednosti iz druge tabele ali stolpca. To vam je lahko v pomoč, ko želite prešteti število enoličnih vrednosti v stolpcu ali uporabiti seznam enoličnih vrednosti za druge operacije. DAX zagotavlja dve funkciji, ki vrneta razlikovalne vrednosti: Funkcija DISTINCT in funkcija 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 tudi vrne seznam enoličnih vrednosti, vendar tudi vrne neznanega člana. To je uporabno, če uporabljate vrednosti iz dveh tabel, ki so združeni po relacije in vrednost, ki je prikazan v eno tabelo in v drugih. Če želite več informacij o neznanega člana, glejte kontekst v formulah jezika DAX.

Obe funkciji vrneta celoten stolpec vrednosti, zato uporabite funkciji, če želite pridobiti seznam vrednosti, ki se nato prenese v drugo funkcijo. Če želite pridobiti seznam posebnih izdelkov, ki jih je z enoličnim ključem izdelka prodal določeni prodajalec in nato s funkcijo COUNTROWS te izdelke na seznamu prešteti, lahko uporabite na primer to formulo:

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

Na vrh strani

Kako kontekst vpliva na filtre

Ko dodate formulo DAX vrtilne tabele ali vrtilnega grafikona, lahko kontekst vpliva rezultate formule. Če delate v tabeli Power Pivot , kontekst je trenutne vrstice in vrednosti. Če delate v vrtilne tabele ali vrtilnega grafikona, kontekstu pomeni, da nastavite ali podmnožico podatkov, ki je določeno s operacij, kot so rezanje ali filtriranje. Načrt za vrtilne tabele ali vrtilnega grafikona uvaja tudi svoje kontekst. Na primer, če ustvarite vrtilno tabelo, ki združuje prodaje po regijah in leto, le podatke, ki velja za te regije in leta se prikaže v vrtilni tabeli. Zato so mere, ki jih dodate v vrtilno tabelo izračuna v kontekstu glave stolpcev in vrstic in uporabljenih filtrov v formuli mero.

Če želite več informacij, glejte Kontekst v formulah DAX.

Na vrh strani

Odstranjevanje filtrov

Ko delate z zapletenimi formulami, boste morda želeli vedeti natančno, kateri filtri so trenutno uporabljeni, ali pa boste želeli spremeniti del formule, kjer je naveden filter. DAX zagotavlja več funkcij, ki omogočajo odstranjevanje filtrov in nadzor nad stolpci, ki se ohranijo kot del trenutnega konteksta filtra. V tem razdelku je pregled nad tem, kako te funkcije vplivajo na rezultate v formuli.

Prepis vseh filtrov s funkcijo ALL

Prepišejo filtre, ki so bile prej uporabljali funkcijo ALL in vrne vse vrstice v tabeli funkcije, ki se izvaja postopek združevanja ali druge. Če uporabljate eno ali več stolpcev, namesto tabele, kot argumenta za ALL, vrne funkcija ALL vse vrstice, prezre vse kontekstne filtre.

Opomba : Če vam je znana terminologija relacijskih zbirk podatkov, lahko gledate na funkcijo ALL kot ustvarjanje naravnega levega zunanjega združevanja vseh tabel.

Če imate na primer tabeli »Prodaja« in »Izdelki« in želite ustvariti formulo, ki bo izračunala vsoto prodaje za trenutni izdelek in jo delila s prodajo vseh izdelkov. Če je formula uporabljena v meri, uporablja uporabnik vrtilne tabele morda razčlenjevalnik za filtriranje določenega izdelka z imenom tega izdelka v vrsticah. Če želite torej pridobiti vrednost »TRUE« za imenovalca, ne glede na filtre ali razčlenjevalnike, morate dodati funkcijo ALL, da prepišete vse filtre. Če želite s funkcijo ALL prepisati učinke prejšnjih filtrov, predstavlja ta funkcija en primer:

= SUM (prodaja [količina]) / SUMX (prodaja [količina] FILTER (prodaja, ALL(Products)))

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

  • Vsota upošteva trenutni kontekst, kar pomeni, če dodate formulo v izračunani stolpec, je uporabljen kontekst vrstice, če pa formulo dodate v vrtilno tabelo kot merilo, bodo uporabljeni vsi filtri v vrtilni tabeli (kontekst filtra).

  • Drugi del formule, izračuna delitelj. Funkcija ALL prepiše filtre, ki bi lahko uporabljali Products tabelo.

Če želite več informacij, vključno s podrobnimi primeri, glejte Funkcija ALL.

Prepis določenih filtrov s funkcijo ALLEXCEPT

Tudi funkcija ALLEXCEPT prepiše obstoječe filtre, vendar lahko določite, naj se nekateri obstoječi filtri ohranijo. Stolpci, ki jih imenujete kot argumenti funkcije ALLEXCEPT, določajo, za katere stolpce se bo še naprej izvajalo filtriranje. Če želite prepisati filtre iz večine stolpcev, vendar ne vseh, je funkcija ALLEXCEPT bolj primerna kot funkcija ALL. Funkcija ALLEXCEPT je predvsem uporabna, ko ustvarjate vrtilne tabele, v kateri bo filtriranih več različnih stolpcev, in ko želite nadzorovati vrednosti, ki so uporabljene v formuli. Če želite več informacij, vključno s podrobnim primerom, o uporabi funkcije ALLEXCEPT v vrtilni tabeli, glejte Funkcija ALLEXCEPT.

Na vrh strani

Opomba : Strojni prevod – zavrnitev odgovornosti: Ta članek je bil preveden z računalniškim programom brez človeškega posredovanja. Microsoft skuša s strojno prevedenimi članki vsebino o Microsoftovih izdelkih, storitvah in tehnologijah približati osebam, ki ne razumejo angleščine. Ker je bil članek strojno preveden, so lahko v njem jezikovne, slovnične in pravopisne napake.

Razširite svoja znanja
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.

×