Share via


CROSSFILTER

Gælder for:Beregnet tabel beregningaf målingsvisualisering for en beregnet kolonne

Angiver den tværgående filtreringsretning, der skal bruges i en beregning for en relation, der findes mellem to kolonner.

Syntaks

CROSSFILTER(<columnName1>, <columnName2>, <direction>)  

Parametre

Begreb Definition
columnName1 Navnet på en eksisterende kolonne, der bruger DAX-standardsyntaksen og er fuldt kvalificeret, og som normalt repræsenterer mange-siden af den relation, der skal bruges. hvis argumenterne er angivet i omvendt rækkefølge, bytter funktionen dem, før de bruges. Dette argument må ikke være et udtryk.
columnName2 Navnet på en eksisterende kolonne, der bruger DAX-standardsyntaksen og er fuldt kvalificeret, og som normalt repræsenterer den ene side eller opslagssiden for den relation, der skal bruges. hvis argumenterne er angivet i omvendt rækkefølge, bytter funktionen dem, før de bruges. Dette argument må ikke være et udtryk.
Retningslinjer Den tværgående filterretning, der skal bruges. Skal være en af følgende:

Ingen – der forekommer ingen krydsfiltrering langs denne relation.

Begge – Filtre på begge sider filtrerer den anden side.

OneWay – Filtre på den ene side eller opslagssiden for en relation filtrerer den anden side. Denne indstilling kan ikke bruges sammen med en en til en-relation . Brug ikke denne indstilling på en mange til mange-relation, fordi det er uklart, hvilken side der er opslagssiden. brug i stedet OneWay_LeftFiltersRight eller OneWay_RightFiltersLeft.

OneWay_LeftFiltersRight – Filtre på siden af <columnName1> filtrerer siden af <columnName2>. Denne indstilling kan ikke bruges sammen med en en til en- eller mange til en-relation.

OneWay_RightFiltersLeft – Filtre på siden af <columnName2> filtrerer siden af <columnName1>. Denne indstilling kan ikke bruges sammen med en en til en- eller mange til en-relation.

Returværdi

Funktionen returnerer ingen værdi. Funktionen angiver kun krydsfiltreringsretningen for den angivne relation i forespørgslens varighed.

Bemærkninger

  • I tilfælde af en 1:1-relation er der ingen forskel mellem den ene og begge retninger.

  • CROSSFILTER kan kun bruges i funktioner, der bruger et filter som argument, f.eks.: funktionerne CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD og TOTALYTD.

  • CROSSFILTER bruger eksisterende relationer i modellen og identificerer relationer efter deres slutpunktkolonner.

  • I CROSSFILTER er indstillingen for krydsfiltrering af en relation ikke vigtig. Dvs. om relationen er indstillet til at filtrere en eller begge retninger i modellen, påvirker ikke brugen af funktionen. CROSSFILTER tilsidesætter alle eksisterende indstillinger for krydsfiltrering.

  • Der returneres en fejl, hvis en af kolonnerne, der er navngivet som et argument, ikke er en del af en relation, eller argumenterne tilhører forskellige relationer.

  • Hvis CALCULATE-udtryk er indlejret, og mere end ét CALCULATE-udtryk indeholder en CROSSFILTER-funktion, er det inderste CROSSFILTER det, der gælder i tilfælde af en konflikt eller flertydighed.

  • Denne funktion understøttes ikke til brug i DirectQuery-tilstand, når den bruges i beregnede kolonner eller RLS-regler (row-level security).

Eksempel

I følgende modeldiagram har både DimProduct og DimDate en enkelt retningsrelation med FactInternetSales.

CROSSFILTER_Examp_DiagView

Vi kan som standard ikke hente antallet af produkter, der er solgt efter år:

CROSSFILTER_Examp_PivotTable1

Der er to måder at få antallet af produkter efter år:

  • Slå tovejskrydsfiltrering til for relationen. Dette ændrer den måde, filtre fungerer på for alle data mellem disse to tabeller.

  • Brug funktionen CROSSFILTER til at ændre, hvordan relationerne kun fungerer for denne måling.

Når du bruger DAX, kan vi bruge funktionen CROSSFILTER til at ændre, hvordan den tværgående filterretning fungerer mellem to kolonner, der er defineret af en relation. I dette tilfælde ser DAX-udtrykket sådan ud:

BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both))

Ved at bruge funktionen CROSSFILTER i vores målingsudtryk får vi de forventede resultater:

CROSSFILTER_Examp_PivotTable2