Datu filtrēšana DAX formulās

Svarīgi! :  Šis raksts ir mašīntulkots, skatiet atrunu. Lūdzu, skatiet šī raksta versiju angļu valodā šeit jūsu informācijai.

Šajā sadaļā ir aprakstītas filtru izveidošanu 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 tabulas kā formula ievadi un pēc tam definējot filtra izteiksmē. Esat norādījis filtra izteiksme tiek izmantota, lai datu vaicājumu un atgrieztos tikai avota datu apakškopu. Filtru dinamiski ikreiz, kad atjaunināt formulas rezultātus, atkarībā no jūsu datiem pašreizējā kontekstā.

Šajā rakstā

Filtra izveide formulā izmantotā tabulā

Filtri, kas noņem dublikātus

Kā konteksts ietekmē filtrus

Filtru noņemšana

Visu filtru ignorēšana, izmantojot funkciju ALL

Specifisku filtru ignorēšana, izmantojot funkciju ALLEXCEPT

Filtra izveide formulā izmantotā tabulā

Filtrus var lietot formulās, kas tabulu izmanto kā ievadi. Varat nevis ievadīt tabulas nosaukumu, bet izmantot funkciju FILTER, lai definētu rindu apakškopu no norādītās tabulas. Šī apakškopa pēc tam tiek nodota citai funkcijai, tādām darbībām kā pielāgoti apkopojumi.

Piemēram, pieņemsim, ka jums ir datu tabula, kurā ir pasūtījumu informācija par tālākpārdevējiem, un jūs vēlaties aprēķināt, cik daudz katrs tālākpārdevējs ir pārdevis. Tomēr jūs vēlaties parādīt tirdzniecības apjomu tikai tiem tālākpārdevējiem, kuri ir pārdevuši vairākas jūsu augstākas vērtības produktu vienības. Tālāk norādītajā formulā, ņemot vērā DAX parauga darbgrāmatu, ir parādīts viens piemērs par to, kā varat izveidot šo aprēķinu, izmantojot filtru:

= SUMX (
filtru (ResellerSales_USD, 'ResellerSales_USD [daudzums] > 5 & &
'ResellerSales_USD' [ProductStandardCost_USD] > 100),
'ResellerSales_USD' [SalesAmt]
)

  • Pirmā formulas daļa norāda kādu no Power Pivot apkopojuma funkcijas, kas atver tabulu kā arguments. SUMX aprēķina summas virs tabulas.

  • Formula otrā daļa FILTER(table, expression),stāsta SUMX kuras datus, kas jāizmanto. SUMX nepieciešams tabulai vai izteiksme, kas iegūstot tabulu. Šeit, nevis izmantojot visus datus tabulas, izmantojiet FILTER funkciju, lai norādītu, kuras rindas no tabulas tiek izmantotas.

    Filtra izteiksmē ir divas daļas: pirmā daļa nosaukumi tabulas, kurai tiek lietots filtrs. Otrā daļa definē izteiksme, kas izmantojama kā filtra nosacījuma. Šajā gadījumā filtrējat par tālākpārdošanas, kuri pārdeva vairāk nekā 5 vienības un produkti, kas maksā vairāk nekā 100 $. Operators, & &, ir loģiskās un operators, kas norāda, ka gan nosacījums daļām jābūt patiesām rindas jāpieder filtrētā apakškopa.

  • Trešā formulas daļa norāda funkcijai SUMX, kuras vērtības ir jāsummē. Šajā gadījumā jūs izmantojat apgrozījuma summu.

    Ņemiet vērā: tādas funkcijas kā FILTER, kas atgriež tabulu, nekad neatgriež tabulu vai rindas tieši, bet tās vienmēr tiek iegultas citā funkcijā. Papildinformāciju par FILTER un citām funkcijā, kas tiek izmantotas filtrēšanai, tostarp citus piemērus, skatiet rakstā Filtrēšanas funkcijas (DAX).

    Piezīme : Filtra izteiksmi ietekmē konteksts , kādā tas tiek izmantots. Piemēram, ja izmantojat filtru mērījumu, un mērījums tiek izmantots rakurstabulā vai rakursdiagrammā, atgriezto datu apakškopu var ietekmēt papildfiltri vai datu griezumi, kurus lietotājs ir lietojis rakurstabulā. Papildinformāciju par kontekstu skatiet rakstā Konteksts DAX formulās.

Filtri, kas noņem dublikātus

Papildus specifisku 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 unikālās vērtībās kolonnās vai izmantot unikālu vērtību sarakstu citām darbībām. DAX nodrošina divas funkcijas atsevišķu vērtību atgriešanai: funkciju DISTINCT un funkciju VALUES.

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

  • Funkcija VALUES arī atgriež sarakstu ar unikālām vērtībām, bet arī atgriež nezināmo elementu. Tas ir noderīgi, ja izmantojat vērtības no divām tabulām, kas ir savienoti ar relācija un vērtība ir trūkstošu vienā tabulā un prezentēt otrā. Lai iegūtu papildinformāciju par nezināmo elementu, skatiet rakstu konteksts DAX formulās.

Abas šīs funkcijas atgriež veselu vērtību kolonnu, tāpēc izmantojiet divas funkcijas, lai iegūtu vērtību sarakstu, kas pēc tam tiek nodots citai funkcijai. Piemēram, varat izmantot tālāk norādīto formulu, lai iegūtu atsevišķu produktu sarakstu, ko tirgo noteikts tālākpārdevējs, izmantojot unikālo produktu atslēgu, un pēc tam saskaitītu produktus šajā sarakstā, izmantojot funkciju COUNTROWS:

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

Uz lapas sākumu

Kā konteksts ietekmē filtrus

Pievienojot DAX formulas rakurstabulas vai rakursdiagrammas, formulas rezultātu var ietekmēt atbilstoši kontekstam. Ja strādājat Power Pivot tabulā, kontekstā ir pašreizējās rindas un kolonnas vērtības. Ja strādājat PivotTable vai PivotChart, kontekstā nozīmē, ka kopu vai datu apakškopu, kas definē operācijas, piemēram, griežas vai filtrēšana. Rakurstabulas vai rakursdiagrammas noformējuma arī rada savas kontekstā. Piemēram, ja izveidojat rakurstabulu, kas sagrupēti pa reģioniem un gada pārdošanas, tikai dati, kas attiecas uz šiem reģioniem un gadu rakurstabulā nav redzama. Tāpēc pasākumiem, ko pievienojat rakurstabulas tiek aprēķinātas kontekstā kolonnu un rindu virsraksti, kā arī filtri mērs formulas.

Papildinformāciju skatiet rakstā Konteksts DAX formulās.

Uz lapas sākumu

Filtru noņemšana

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

Visu filtru ignorēšana, izmantojot funkciju ALL

Izmantojiet funkciju ALL , lai ignorētu filtrus, kas iepriekš tika lietota un atgriež visas rindas tabulā funkcijas, kas tiek izmantots apkopošanas vai citu darbību veikšanai. Ja izmantojat vienu vai vairākas kolonnas, nevis tabulas, kā ALLargumentus, ALL funkcija atgriež visas rindas, ignorējot konteksta filtri.

Piezīme : Ja pārzināt relāciju datu bāzu terminoloģiju, varat uzskatīt ALL par visu tabulu naturālā kreisā ārējā savienojuma ģenerēšanu.

Piemēram, pieņemsim, ka jums ir tabulas — Apgrozījums un Produkti — un vēlaties izveidot formulu, kas aprēķinās apgrozījuma summu pašreizējam produktam, dalot to ar visu produktu apgrozījumu. Jāņem vērā: ja formula tiek izmantota mērījumā, rakurstabulas lietotājs var lietot datu griezumu, lai filtrētu konkrētu produktu, ar produkta nosaukumu rindās. Tāpēc, lai iegūtu patieso saucēja vērtību neatkarīgi no filtriem vai datu griezumiem, ir jāpievieno funkcija ALL, lai ignorētu filtrus. Tālāk esošā formula ir viens piemērs, kā lietot funkciju ALL, lai ignorētu iepriekšējo filtru efektus:

= SUM (apgrozījums [summa]) / SUMX (pārdošana [summa] filtru (pārdošanas, ALL(Products)))

  • Pirmā formulas daļa, SUM (Apgrozījums[Summa]), aprēķina skaitītāju.

  • Summa ņem vērā pašreizējo kontekstu, kas nozīmē: ja pievienojat formulu aprēķinātā kolonnā, tiek lietots rindas konteksts, bet, ja pievienojat formulu rakurstabulā kā mērījumu, tiek lietoti visi rakurstabulā (filtrētajā kontekstā) lietotie filtri.

  • Otrā daļa formula aprēķina saucējs. Funkcija ALL ignorē filtri, kas var tikt lietotas Products tabulas.

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

Specifisku filtru ignorēšana, izmantojot funkciju ALLEXCEPT

Funkcija ALLEXCEPT arī ignorē esošos filtrus, bet varat norādīt, ka daži esošie filtri ir jāsaglabā. Kolonnas, kuras nosaucat kā funkcijas ALLEXCEPT argumentus, norāda, kuras kolonnas joprojām tiks filtrētas. Ja vēlaties ignorēt filtrus no lielākās daļas kolonnu, bet ne visām, funkcija ALLEXCEPT ir ērtāka nekā ALL. Funkcija ALLEXCEPT ir īpaši noderīga, ja veidojat rakurstabulas, kas var tikt filtrētas daudzās atšķirīgās kolonnās, un vēlaties kontrolēt vērtības, kas tiek izmantotas formulā. Papildinformāciju, tostarp detalizētu piemēru par to, kā lietot funkciju ALLEXCEPT rakurstabulā, skatiet rakstā Funkcija ALLEXCEPT.

Uz lapas sākumu

Piezīme : Mašīntulkošanas atruna. Šo rakstu ir tulkojusi datorsistēma bez cilvēka iejaukšanās. Microsoft piedāvā šos mašīntulkojumus, lai palīdzētu angliski nerunājošajiem lietotājiem izmanot saturu par Microsoft produktiem, pakalpojumiem un tehnoloģijām. Tā kā šis raksts ir mašīntulkots, tajā var būt leksikas, sintakses un gramatikas kļūdas.

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

Vai šī informācija bija noderīga?

Paldies par jūsu atsauksmēm!

Paldies par atsauksmēm! Šķiet, ka varētu būt noderīgi sazināties ar kādu no mūsu Office atbalsta aģentiem.

×