Duomenų filtravimas DAX formulėse

Šiame skyriuje aprašoma, kaip kurti filtrus duomenų analizės išraiškų (DAX) formulėse. Formulėse galite kurti filtrus, kad apribotumėte iš skaičiavimų metu naudojamų pirminių duomenų gaunamas reikšmes. Tai atliksite kaip formulės įvestį nurodydami lentelę ir apibrėždami filtro išraišką. Jūsų pateikta filtro išraiška naudojama teikiant duomenų užklausą ir grąžinant tik pirminių duomenų antrinį rinkinį. Filtras dinamiškai taikomas kiekvieną kartą naujinant formulės rezultatus, atsižvelgiant į jūsų duomenų dabartinį kontekstą.

Šiame straipsnyje:

Filtro kūrimas formulėje naudojamoje lentelėje

Galite taikyti filtrus formulėse, kurios į lentelę reaguoja kaip į įvestį. Užuot įvedę lentelės pavadinimą, naudokite funkciją FILTER, kad iš nurodytos lentelės apibrėžtumėte antrinį antrinį eilučių rinkinį. Tada tas rinkinys perduodamas kitoms funkcijoms taikyti ir veiksmams, pvz., pasirinktiniams grupavimams, atlikti.

Pvz., įsivaizduokite, kad turite lentelę su duomenimis, kuriuose saugoma užsakymo informacija apie perpardavėjus, ir norite apskaičiuoti, kiek pardavė kiekvienas perpardavėjas. Bet pardavimų kiekį norite rodyti tik tiems perpardavėjams, kurie pardavė kelis jūsų didesnės vertės gaminių vienetus. Toliau pateikiama formulė, pagrįsta DAX pavyzdžio darbaknyge, rodo vieną šio skaičiavimo naudojant filtrą sukūrimo pavyzdį:

= SUMX (
     FILTRUOTI ("ResellerSales_USD", "ResellerSales_USD" [kiekis] > 5
&&      "ResellerSales_USD" [ProductStandardCost_USD] > 100),
     "ResellerSales_USD" [SalesAmt]
     )

  • Pirmoje formulės dalyje nurodoma viena iš „Power Pivot“ grupavimo funkcijų, į lentelę reaguojanti kaip į argumentą. SUMX apskaičiuoja visos lentelės sumą.

  • Antroji formulės dalis FILTER(table, expression),nurodoSUMX SUMX, kuriuos duomenis naudoti. „SUMX“ reikalinga lentelė arba išraiška, kurios rezultatas yra lentelė. Užuot naudodami visus lentelėje pateiktus duomenis, naudojate funkciją FILTER, kad nurodytumėte naudojamas lentelės eilutes.

    Filtro išraišką sudaro dvi dalys: pirmoji dalis įvardija lentelę, kuriai taikomas filtras. Antroji dalis apibrėžia išraišką, naudotiną kaip filtro sąlyga. Šiuo atveju filtruojate perpardavėjus, pardavusius daugiau nei 5 vienetus gaminių, kainuojančių daugiau nei 100 EUR. Operatorius && yra loginis IR operatorius, nurodantis, kad abi sąlygos dalys turi būti teisingos, jei norite, kad eilutė būtų priskirta antriniam rinkiniui, kuriam buvo pritaikytas filtras.

  • Trečia formulės dalis nurodo funkciją SUMX , kurios vertes reikia susumuoti. Šiuo atveju naudojate tik pardavimų kiekį.

    Atminkite, kad tokios lentelę grąžinančios funkcijos, pvz., FILTER, lentelės arba eilučių niekada negrąžina tiesiogiai, bet visada įdedama į kitą funkciją. Daugiau informacijos apie FILTRĄ ir kitas filtravimo funkcijas, įskaitant daugiau pavyzdžių, rasite filtravimo funkcijos (DAX).

    Pastaba: Filtro išraišką veikia jo naudojimo kontekstas. Pavyzdžiui, jei naudojate matavimo priemonės filtrą ir matas naudojamas "PivotTable" arba "PivotChart", grąžintinų duomenų pogrupyje gali turėti papildomų filtrų arba duomenų filtrų, kuriuos vartotojas taikė "PivotTable". Daugiau informacijos apie kontekstą rasite DAX formulių kontekstas.

Dublikatų šalinimo filtrai

Be filtravimo siekiant gauti tam tikras reikšmes, galite grąžinti unikalų reikšmių rinkinį iš vienos lentelės arba stulpelio. Tai gali būti naudinga norint suskaičiuoti unikalių reikšmių skaičių stulpelyje arba norint panaudoti unikalių reikšmių sąrašą atliekant kitas operacijas. DAX pateikia dvi funkcijas, skirtas skirtingoms reikšmėms grįžti: funkcija DISTINCT ir values.

  • Funkcija DISTINCT tiria vieną stulpelį, kurį nurodote kaip funkcijos argumentą, ir grąžina naują stulpelį, kuriame pateikiamos tik skirtingos reikšmės.

  • Funkcija VALUES taip pat grąžina unikalių reikšmių sąrašą ir Nežinomąjį narį. Tai naudinga, kai naudojate dviejose pagal santykį sujungtose lentelėse pateikiamas reikšmes ir kai vienoje iš jų trūksta reikšmės, o kitoje reikšmė yra. Daugiau informacijos apie nežinomąjį narį rasite skyriuje DAX formulių kontekstas.

Abi šios funkcijos grąžina visą reikšmių stulpelį; todėl naudojate funkcijas, kad gautumėte reikšmių sąrašą, kuris perduodamas kitai funkcijai. Pvz., galite naudoti toliau pateikiamą formulę, kad naudodami unikalų gaminio raktą gautumėte konkretaus perpardavėjo parduodamų skirtingų gaminių sąrašą ir tada naudodami funkciją COUNTROWS apskaičiuotumėte į tą sąrašą įtrauktų gaminių skaičių:

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

Puslapio viršus

Kaip filtrus veikia kontekstas

Kai DAX formulę įtraukiate į „PivotTable“ arba „PivotChart“, formulės rezultatus gali paveikti kontekstas. Jei dirbate su „Power Pivot“ lentele, kontekstą sudaro dabartinė eilutė ir jos reikšmės. Jei dirbate naudodami „PivotTable“ arba „PivotChart“, kontekstas reiškia duomenų, kuriuos apibrėžia tokios operacijos kaip sluoksniavimas arba filtravimas, rinkinys arba antrinis rinkinys. Savitą kontekstą primeta ir „PivotTable“ arba „PivotChart“ dizainas. Pvz., jei kuriate „PivotTable“ kurioje pardavimai sugrupuojami pagal regioną ir metus, „PivotTable“ rodomi tik tiems regionams ir metams taikomi duomenys. Todėl bet kokios priemonės, kurias įtraukiate į "PivotTable", apskaičiuojamos pagal stulpelių ir eilučių antraštes ir bet kokius matavimo formulės filtrus.

Daugiau informacijos žr. DAX formulių kontekstas.

Puslapio viršus

Filtrų šalinimas

Dirbant su sudėtingomis formulėmis rekomenduojame tiksliai žinoti, kokie filtrai taikomi dabar, arba modifikuoti formulės filtro dalį. DAX pateikia kelias funkcijas, leidžiančias šalinti filtrus ir valdyti, kurie stulpeliai išlaikomi kaip dabartinio filtro konteksto dalis. Šiame skyriuje pateikiama šių funkcijų poveikio formulės rezultatams apžvalga.

Visų filtrų nepaisymas naudojant funkciją ALL

Galite naudoti funkciją ALL, kad nepaisytumėte visų anksčiau pritaikytų filtrų ir grąžintumėte visas lentelės eilutes funkcijai, atliekančiai sveikojo skaičiaus ar kurią nors kitą operaciją. Jei naudojate vieną ar daugiau stulpelių, vietoje lentelės kaip ALL argumentus funkcija ALL grąžina visas eilutes ir nepaiso visų konteksto filtrų.

Pastaba: Jei esate susipažinęs su santykinių duomenų bazių terminija, funkciją ALL galite suvokti kaip generuojančią visų lentelių natūralią kairiąją išorinę sujungimo liniją.

Pvz., įsivaizduokite, kad naudojate lenteles Pardavimai ir Gaminiai ir norite kurti formulę, apskaičiuojančią dabartinio gaminio sumą, padalytą iš visų gaminių pardavimų skaičiaus. Turite atsižvelgti į tai, kad, jei formulė naudojama priemonei, "PivotTable" vartotojas gali naudoti duomenų filtrą, skirtą konkrečiam produktui filtruoti, su produkto pavadinimu eilutėse. Todėl norėdami gauti tikrąją vardiklio reikšmę nepriklausomai nuo bet kokių filtrų arba sluoksniavimo priemonių, turite įtraukti funkciją ALL, kad nepaisytumėte filtrų. Toliau pateikta formulė – pavyzdys, kaip naudoti ALL formulę norint nepaisyti anksčiau naudotų filtrų:

=SUM (Sales[Amount])/SUMX(Sales[Amount], FILTER(Sales, ALL(Products)))

  • Pirmoje formulės SUM (Sales[Amount]) dalyje apskaičiuojamas skaitiklis.

  • Suma atsižvelgia į dabartinį kontekstą, o tai reiškia, kad įtraukus formulę į apskaičiuojamąjį stulpelį, taikoma eilutės kontekstas, o jei formulę įtraukiate į "PivotTable" kaip Matą, taikomi visi "PivotTable" taikomi filtrai (filtravimo kontekstas).

  • Antroje formulės dalyje apskaičiuojamas vardiklis. Funkcija ALL nepaiso visų filtrų, kurie gali būti taikomi lentelei Products.

Daugiau informacijos, įskaitant išsamius pavyzdžius, ieškokite funkcija All.

Konkrečių filtrų nepaisymas naudojant funkciją ALLEXCEPT

Funkcija ALLEXCEPT taip pat nepaiso esamų filtrų, bet galite nurodyti išsaugoti kai kuriuos esamus filtrus. Stulpeliai, kuriuos įvardijate kaip funkcijos ALLEXCEPT argumentus, nurodo, kurių stulpelių filtravimas bus tęsiamas. Jei norite nepaisyti daugelio, bet ne visų stulpelių filtrų, funkcija ALLEXCEPT yra patogesnė nei funkcija ALL. Funkcija ALLEXCEPT itin naudinga kuriant „PivotTables“, kurios gali būti filtruojamos daugelyje skirtingų stulpelių, o jūs norite valdyti formulėje naudojamas reikšmes. Jei reikia daugiau informacijos, įskaitant išsamų pavyzdį, kaip naudoti "ALLIF", išskyrus "PivotTable", žiūrėkite " allif" funkciją.

Puslapio viršus

Pastaba:  Šis puslapis išverstas automatiškai, todėl gali būti gramatikos klaidų ar netikslumų. Mūsų tikslas – padaryti, kad šis turinys būtų jums naudingas. Prašome mus informuoti, ar radote reikiamos informacijos. Čia yra straipsnis anglų kalba, kuriuo galite pasinaudoti kaip nuoroda.

Reikia daugiau pagalbos?

Tobulinkite savo „Office“ įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×