Duomenų filtravimas DAX formulėse

Svarbu :  Šis straipsnis išverstas naudojant mašininį vertimą, žr. atsakomybės atsisakymą. Su šio straipsnio versija anglų kalba galite susipažinti čia .

Šiame skyriuje aprašoma, kaip sukurti duomenų analizės išraiškų (DAX) formulių filtrus. Galite sukurti formules, apriboti reikšmes iš šaltinio duomenų, naudojamų skaičiavimai filtrus. Tai darydami nurodykite lentelę kaip įvesties į formulę, ir tada nustatyti filtro išraiška. Filtro išraiškos, kurias nurodote naudojama užklausos duomenis ir pateikti tik šaltinio duomenų pogrupį. Taikomas filtras dinamiškai kiekvieną kartą, kai atnaujinsite 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šką veikia jo naudojimo kontekstas. Pavyzdžiui, jei filtrą naudojate su matavimo priemonėmis, o matavimo priemonę naudojate „PivotTable“ arba „PivotChart, grąžinamų duomenų antrinį rinkinį gali veikti papildomi filtrai arba sluoksniavimo priemonės, kurias vartotojas pritaikė „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 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ėje, 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 kuriate "PivotTable", grupių pardavimo pagal regioną ir metai, tik taikoma šių regionų ir metų duomenys rodomi "PivotTable". Todėl visos priemonės, 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

Pastaba : Mašininio vertimo atsakomybės atsisakymas: Šis straipsnis išverstas naudojant kompiuterinę sistemą be žmogaus įsikišimo. „Microsoft“ pateikia šiuos mašininius vertimus norėdama padėti anglų kalbos nesuprantantiems vartotojams perskaityti turinį apie „Microsoft“ produktus, paslaugas ir technologijas. Šis straipsnis išverstas mašininio vertimo būdu, todėl jame gali būti žodyno, sintaksės ar gramatikos klaidų.

Tobulinkite savo į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ų.

×