Duomenų filtravimas DAX formulėse

Pastaba:  Norėtume jums kuo greičiau pateikti naujausią žinyno turinį jūsų kalba. Š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. Gal galite šio puslapio apačioje mums pranešti, ar informacija buvo naudinga? Čia yra straipsnis anglų kalba , kuriuo galite pasinaudoti kaip patogia nuoroda.

Šiame skyriuje aprašoma, kaip sukurti duomenų analizės išraiškos (DAX) formulių filtrus. Galite sukurti formules, apriboti reikšmes iš šaltinio duomenų, naudojamų skaičiuojant filtrus. Tai darydami nurodykite lentelę kaip duomenų, formulės, ir tada nustatyti filtro išraiška. Filtro išraiškos, kurias nurodote naudojamas užklausos duomenis ir pateikti tik šaltinio duomenų pogrupį. Taikomas filtras dinamiškai kaskart atnaujinti formulę, priklausomai nuo dabartinio konteksto duomenų rezultatus.

Šiame straipsnyje:

Filtro kūrimas formulėje naudojamoje lentelėje

Dublikatų šalinimo filtrai

Kaip filtrus veikia kontekstas

Filtrų šalinimas

Visų filtrų nepaisymas naudojant funkciją ALL

Konkrečių filtrų nepaisymas naudojant funkciją ALLEXCEPT

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(
     FILTER ('ResellerSales_USD', 'ResellerSales_USD'[Quantity] > 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 funkciją FILTER, kitas filtruojant naudojamas funkcijas ir daugiau pavyzdžių rasite Filtravimo funkcijos (DAX).

    Pastaba: Filtro išraiškos veikia pagal kontekstą, kuriame jis naudojamas. Pvz., jei naudojate filtrą matas, ir priemonė naudojama "PivotTable" arba PivotChart, grąžintas duomenų pogrupis gali turėti įtakos papildomų filtrų arba duomenų filtrus, kad vartotojas turi pritaikytas "PivotTable". Daugiau informacijos apie kontekste, 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 skirtingų reikšmių grąžinimo funkcijas: funkcija DISTINCT ir funkcija 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 įtraukiate DAX formulės "PivotTable" arba PivotChart, gali turėti įtakos formulės rezultatą kontekste. Jei dirbate Power Pivot lentelės kontekste yra dabartinės eilutės ir jos reikšmės. Jei dirbate "PivotTable" arba PivotChart, kontekste reiškia rinkinį arba duomenų, apibrėžiamas pagal operacijas, pvz., pjaustymo arba filtravimą. "PivotTable" arba PivotChart dizaino taip pat nustato savo kontekste. Pavyzdžiui, jei norite sukurti "PivotTable", kurioje pardavimai pagal regioną ir metus, tik taikoma šių regionų ir metų duomenys rodomi "PivotTable". Todėl visas priemones, kurias įtraukiate į "PivotTable" yra apskaičiuojamos atsižvelgiant į stulpelių ir eilučių antraštes ir filtrų priemonė formulės.

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. Turėkite omenyje faktą, kad jei formulė yra naudojama matavimo priemonėje, gali būti, kad „PivotTable“ naudoja sluoksniavimo priemonę kaip konkretaus gaminio filtrą su eilutėse pateiktu gaminio pavadinimu. 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.

  • Apskaičiuojant sumą atsižvelgiama į kontekstą, o tai reiškia, ką įtraukiant formulę į apskaičiuotą stulpelį taikomas eilutės kontekstas, o įtraukiant formulę į „PivotTable“ kaip matavimo priemonę, taikomi visi filtrai, kurie yra taikomi „PivotTable“ (filtro kontekste).

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

Daugiau informacijos ir išsamių pavyzdžių rasite 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. Daugiau informacijos ir išsamių funkcijos ALLEXCEPT naudojimo „PivotTable“ pavyzdžių rasite skyriuje Funkcija ALLEXCEPT.

Puslapio viršus

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ų atsiliepimus!

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

×