Šajā sadaļā aprakstīts, kā izveidot filtrus datu analīzes izteiksmju (Data Analysis Expressions — DAX) formulās. Varat izveidot filtrus formulās, lai ierobežotu vērtības no avota datiem, kas tiek izmantoti aprēķinos. To var izdarīt, norādot tabulu kā formulas ievadi un pēc tam definējot filtra izteiksmi. Jūsu nodrošinātā filtra izteiksme tiek izmantota, lai vaicātu datus un atgrieztu tikai avota datu apakškopu. Filtrs tiek lietots dinamiski katru reizi, kad atjaunināt formulas rezultātus, atkarībā no datu pašreizējā konteksta.

Šajā rakstā

Filtra izveide formulā izmantotajā tabulā

Formulās, kurās kā ievade tiek ievadīta, var lietot filtrus. Tā vietā, lai ievadītu tabulas nosaukumu, izmantojiet funkciju FILTER, lai definētu rindu apakškopu no norādītās tabulas. Pēc tam šī apakškopa tiek nodota citai funkcijai, piemēram, pielāgotiem apkopojumiem.

Piemēram, pieņemsim, ka jums ir datu tabula, kurā ir informācija par pasūtījumiem par tālākpārdevējiem, un vēlaties aprēķināt katra tālākpārdevēja pārdoto preču daudzumu. Taču vēlaties parādīt pārdošanas apjomu tikai tiem tālākpārdevējiem, kuri pārdeva vairākas jūsu augstākas vērtības produktu vienības. Tālāk redzamajā formulā, kuras pamatā ir DAX parauga darbgrāmata, ir viens piemērs, kā varat izveidot šo aprēķinu, izmantojot filtru:

=SUMX(
     FILTER ('ResellerSales_USD', 'ResellerSales_USD'[Daudzums] > 5 &&
     'ResellerSales_USD'[ProductStandardCost_USD] > 100),
     'ResellerSales_USD'[Pārdošanas_pasūtījums]
     )

  • Pirmā formulas daļa norāda vienu no apkopošanas Power Pivot funkcijām, kas kā argumentu izmanto tabulu. Funkcija SUMX aprēķina tabulas summu.

  • Formulas otrā daļa norāda FILTER(table, expression),kurus SUMX izmantot. SUMX ir nepieciešama tabula vai izteiksme, kuras rezultāts ir tabula. Šeit, tā vietā, lai izmantotu visus tabulas datus, izmantojiet funkciju FILTER lai norādītu, kuras tabulas rindas tiek izmantotas.

    Filtra izteiksmei ir divas daļas: pirmā daļa nosauks tabulu, kurai tiek lietots filtrs. Otrā daļa definē izteiksmi, ko izmantot kā filtra nosacījumu. Šajā gadījumā jūs filtrējam tālākpārdevējus, kuri pārdeva vairāk nekā 5 vienības, un produktus, kuru cena pārsniedz 100 EUR. Operators, && ir loģiskais operators AND, kas norāda, ka abām nosacījuma daļām jābūt patiesām, lai rinda piederēt filtrētajai apakškopai.

  • Trešajā formulas daļā funkcijai SUMX , kuras vērtības ir summētas. Šajā gadījumā izmantojat tikai pārdošanas apjomu.

    Ņemiet vērā, ka tādas funkcijas kā FILTER, kas atgriež tabulu, neatgriež tabulu vai rindas tieši, bet vienmēr tiek iegultas citā funkcijā. Papildinformāciju par filter and other functions used for filtering, including more examples, see Filter Functions (DAX).

    Piezīme.: Filtra izteiksmi ietekmē konteksts, kurā tā tiek izmantota. Piemēram, ja mērvienībā izmantojat filtru un mērs tiek izmantots rakurstabulā vai rakursdiagramma, atgriezto datu apakškopu var ietekmēt papildu filtri vai datu griezumi, ko lietotājs ir lietots rakurstabulā. Papildinformāciju par kontekstu skatiet rakstā DAX formulu konteksts.

Filtri, kas noņem dublikātus

Papildus noteiktu vērtību filtrēšanai varat atgriezt unikālu vērtību kopu no citas tabulas vai kolonnas. Tas var būt noderīgi, ja vēlaties saskaitīt kolonnas unikālo vērtību skaitu vai izmantot unikālo vērtību sarakstu citām operācijām. DAX nodrošina divas funkcijas atšķirīgu vērtību atgriešanai: Funkcija DISTINCT un Funkcija VALUES.

  • Funkcija DISTINCT pārbauda atsevišķu kolonnu, kuru norādāt kā funkcijas argumentu, un atgriež jaunu kolonnu, kurā ir tikai noteiktas vērtības.

  • Funkcija VALUES atgriež arī unikālo vērtību sarakstu, bet arī atgriež nezināmo dalībnieku. Tas ir noderīgi, ja izmantojat vērtības no divām tabulām, kuras ir apvienotas ar relāciju, un vērtība nav vienā tabulā un atrodas otrā tabulā. Papildinformāciju par nezināmo dalībnieku skatiet rakstā DAX formulu konteksts.

Abas šīs funkcijas atgriež visu vērtību kolonnu; tāpēc izmantojiet šīs funkcijas, lai iegūtu sarakstu ar vērtībām, kas pēc tam tiek nodotas citai funkcijai. Piemēram, varat izmantot tālāk norādīto formulu, lai iegūtu konkrēta tālākpārdevēja pārdoto atsevišķo produktu sarakstu, izmantojot unikālo produkta atslēgu, un pēc tam saskaitīt šajā sarakstā norādītos produktus, izmantojot funkciju COUNTROWS:

=COUNTROWS(DISTINCT('ResellerSales_USD'[Produkta_atslēga]))

Uz lapas sākumu

Kā konteksts ietekmē filtrus

Pievienojot DAX formulu rakurstabulai vai rakursdiagramma, formulas rezultātus var ietekmēt konteksts. Ja strādājat tabulas Power Pivot, konteksts ir pašreizējā rinda un tās vērtības. Ja strādājat rakurstabulā vai rakursdiagramma, konteksts nozīmē datu kopu vai apakškopu, kas ir definēta, izmantojot operācijas, piemēram, slīprakstu vai filtrēšanu. Rakurstabulas vai rakurstabulas rakursdiagramma pats savs konteksts. Piemēram, ja izveidojat rakurstabulu, kurā tirdzniecības dati ir sagrupēti pēc reģiona un gada, rakurstabulā tiek rādīti tikai dati, kas attiecas uz šiem reģioniem un gadiem. Tāpēc visi mēri, kurus pievienojat rakurstabulai, tiek aprēķināti atbilstoši kolonnu un rindu virsrakstiem, kā arī visiem mērvienību formulas filtriem.

Papildinformāciju skatiet rakstā DAX formulu konteksts.

Uz lapas sākumu

Filtru noņemšana

Strādājot ar sarežģītām formulām, iespējams, vēlēsities precīzi uzzināt, kādi ir pašreizējie filtri, vai, iespējams, vēlēsities modificēt formulas filtra daļu. DAX nodrošina vairākas funkcijas, kas ļauj noņemt filtrus un noteikt, kuras kolonnas tiek saglabātas kā daļa no pašreizējā filtra konteksta. Šajā sadaļā sniegts pārskats par to, kā šīs funkcijas ietekmē rezultātus formulā.

Visu filtru ignorēšana ar funkciju ALL

Funkciju ALL izmantot, lai ignorētu visus iepriekš lietotos filtrus un atgrieztu visas tabulas rindas uz funkciju, kas veic apkopošanu vai citu darbību. Ja izmantojat vienu vai vairākas kolonnas, nevis tabulu, kā ALLargumentus, funkcija ALL atgriež visas rindas, ignorējot kontekstfiltrus.

Piezīme.: Ja pārzināt relāciju datu bāzu terminoloģiju, varat uzskatīt, ka ALL par visu tabulu dabisku kreiso ārējo savienojumu.

Piemēram, pieņemsim, ka jums ir tabulas Pārdošana un Produkti, un jūs vēlaties izveidot formulu, ar kuru tiks aprēķināta pašreizējā produkta pārdošanas summa, dalot to ar visu produktu pārdošanas datiem. Ir jāņem vērā, ka gadījumā, ja formula tiek izmantota mērvienībā, rakurstabulas lietotājs, iespējams, izmanto datu griezumu, lai filtrētu noteiktu produktu, ar produkta nosaukumu rindās. Tāpēc, lai iegūtu saucēja patiesu vērtību neatkarīgi no filtriem vai datu griezumiem, ir jāpievieno funkcija ALL, lai ignorētu visus filtrus. Šī formula ir viens no piemēriem, kā izmantot ALL, lai ignorētu iepriekšējo filtru efektus:

=SUM (Pārdošana[Summa])/SUMX(Pārdošana[Summa], FILTER(Pārdošana, ALL(Produkti)))

  • Formulas SUM (Pārdošana[Summa]) pirmā daļa aprēķina skaitītāju.

  • Summa ņem vērā pašreizējo kontekstu, kas nozīmē, ka, ja formulu pievienojat aprēķinātajā kolonnā, tiek lietots rindas konteksts, un, ja pievienosit formulu rakurstabulā kā mērvienību, tiks lietoti visi rakurstabulā lietotie filtri (filtra konteksts).

  • Formulas otrā daļa aprēķina saucēju. Funkcija ALL ignorē visus filtrus, kas var tikt lietoti Products tabulā.

Papildinformāciju, tostarp detalizētus piemērus, skatiet rakstā Funkcija ALL.

Noteiktu filtru ignorēšana ar funkciju ALLEXCEPT

Funkcija ALLEXCEPT arī ignorē esošos filtrus, taču varat norādīt, ka daži no esošajiem filtriem ir jāsaglabā. Kolonnas, kurām jūs nosauksiet kā funkcijas ALLEXCEPT argumentus, norāda, kuras kolonnas turpinās filtrēt. Ja vēlaties ignorēt filtrus no lielākās daļa kolonnu, bet ne visas, ALLEXCEPT ir ērtāka nekā ALL. Funkcija ALLEXCEPT ir īpaši noderīga, ja veidojat rakurstabulas, kuras var filtrēt pēc daudzām dažādām kolonnām, un vēlaties kontrolēt formulā izmantotās vērtības. Lai iegūtu papildinformāciju, tostarp detalizētu piemēru par to, kā izmantot ALLEXCEPT rakurstabulā, skatiet rakstu Funkcija ALLEXCEPT.

Uz lapas sākumu

Vai nepieciešama papildu palīdzība?

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Microsoft Insider

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar tulkojuma kvalitāti?
Kas ietekmēja jūsu pieredzi?

Paldies par jūsu atsauksmēm!

×