Datu filtrēšana DAX formulās

Piezīme.:  Mēs vēlamies sniegt jums visjaunāko palīdzības saturu jūsu valodā, cik vien ātri to varam. Šī lapa ir tulkota automatizēti, un tajā var būt gramatiskas kļūdas un neprecizitātes. Mūsu nolūks ir šo saturu padarīt jums noderīgu. Vai lapas lejasdaļā varat mums pavēstīt, vai informācija jums noderēja? Ērtai atsaucei šeit ir šis raksts angļu valodā .

Š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ā.

Tēmas š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 uz 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 nosacījums gan 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ā, ka filtru, piemēram, funkcijas, kas atgriež tabulu, nekad tieši atgrieztu tabulas vai rindas, bet vienmēr ir iegulti citu funkciju. Lai iegūtu papildinformāciju par filtru un citas funkcijas, ko izmanto filtrēšana, ieskaitot vairāk piemēru skatiet Filtra funkcijas (DAX).

    Piezīme.: Filtra izteiksme tiek mainīts atbilstoši kontekstam, tiek izmantota. Piemēram, ja izmantojat filtru izmēru un mērs tiek izmantota rakurstabulas vai rakursdiagrammas, datu apakškopu, kas tiek atgriezta var ietekmēt papildu filtrus vai datu griezumi, kas lietotājam ir lietotas rakurstabulā. Lai iegūtu papildinformāciju par kontekstu, skatiet rakstā konteksts DAX formulās.

Filtri, kas noņem dublikātus

Papildus filtrēšanas noteiktas vērtības, var atgriezt unikālo atļauju kopu vērtības no citas tabulas vai kolonnas. Tas var būt noderīgi, ja vēlaties, lai saskaitītu unikālās vērtības kolonnā vai izmantot unikālo vērtību saraksts citas darbības. DAX nodrošina divas funkcijas atgriež atsevišķas vērtības: funkcija DISTINCT un funkcija 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.

Lai iegūtu papildinformāciju, skatiet rakstu 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 ignorēt 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ājs.

  • 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.

Lai iegūtu 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, taču varat norādīt dažus esošos filtrus jāsaglabā. Kolonnu nosaukumus kā argumenti funkcija ALLEXCEPT norādīt, kuras kolonnas joprojām tiek filtrēta. Ja vēlaties ignorēt filtrus no lielākā daļa kolonnās, bet ne visas, ALLEXCEPT ir ērtāk nekā visi. Funkcija ALLEXCEPT ir īpaši noderīgs, ja veidojat rakurstabulas, var filtrēt daudz dažādās kolonnās, un vēlaties, lai kontrolētu vērtības, kas tiek izmantotas formulas. Lai iegūtu papildinformāciju, tostarp detalizēta ALLEXCEPT rakurstabulā lietošanu skatiet rakstā Funkcija ALLEXCEPTpiemērs.

Uz lapas sākumu

Paplašiniet savas Office 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.

×