Lezen in het Engels

Delen via


CROSSFILTER

Van toepassing op:berekende kolomberekende tabelMeasureVisuele berekening

Hiermee geeft u de kruislingse filterrichting op die moet worden gebruikt in een berekening voor een relatie tussen twee kolommen.

Syntaxis

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

Parameters

Term Definitie
columnName1 De naam van een bestaande kolom, met behulp van de standaard-DAX syntaxis and volledig gekwalificeerde, die meestal de vele kant van de relatie vertegenwoordigt die moet worden gebruikt; if de argumenten in omgekeerde volgorde worden gegeven, wisselt de functie deze om voordat deze worden gebruikt. Dit argument kan geen expressie zijn.
columnName2 De naam van een bestaande kolom, waarbij standaard DAX syntaxis wordt gebruikt and volledig gekwalificeerde, die meestal de ene zijde or opzoekzijde van de relatie vertegenwoordigt die moet worden gebruikt; if de argumenten in omgekeerde volgorde worden gegeven, wisselt de functie deze om voordat deze worden gebruikt. Dit argument kan geen expressie zijn.
Direction De kruis-filter richting die moet worden gebruikt. Dit moet een van de volgende zijn:

None : er vindt geen kruislings filteren plaats in deze relatie.

Both - Filters aan beide zijden filters de andere kant.

OneWay - Filters aan de ene kant or de opzoekzijde van een relatie filter de andere kant. Deze optie kan niet worden gebruikt met een een-op-een-relatie. Gebruik deze optie niet voor een veel-op-veel-relatie omdat het onduidelijk is welke kant de opzoekzijde is; gebruik in plaats daarvan OneWay_LeftFiltersRight or OneWay_RightFiltersLeft.

OneWay_LeftFiltersRight - Filters aan de zijkant van columnName1filter de zijkant van columnName2. Deze optie kan niet worden gebruikt met een een-op-een-or veel-op-een-relatie.

OneWay_RightFiltersLeft - Filters aan de zijkant van columnName2filter de zijkant van columnName1. Deze optie kan niet worden gebruikt met een een-op-een-or veel-op-een-relatie.

value retourneren

De functie retourneert geen value; de functie stelt alleen de richting voor kruislings filteren voor de aangegeven relatie in voor de duration van de query.

Opmerkingen

  • In het geval van een 1:1-relatie is er geen verschil tussen de ene and beide richtingen.

  • CROSSFILTER kunnen alleen worden gebruikt in functies die een filter als argument gebruiken, bijvoorbeeld: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD functies.

  • CROSSFILTER bestaande relaties in het model gebruikt, waarbij relaties worden geïdentificeerd door hun eindpuntkolommen.

  • In CROSSFILTERis de instelling voor kruislings filteren van een relatie not belangrijk; Of de relatie nu is ingesteld op filter, or beide richtingen in het model not invloed heeft op het gebruik van de functie. CROSSFILTER overschrijft alle bestaande instelling voor kruislings filteren.

  • Een error wordt geretourneerd if een van de kolommen met de naam een argument is not deel van een relatie or de argumenten behoren tot verschillende relaties.

  • If CALCULATE expressies zijn genest, and meer dan één CALCULATE expressie contains een CROSSFILTER functie, dan is de binnenste CROSSFILTER de expressie die heerst in het geval van een conflict or dubbelzinnigheid.

  • Deze functie wordt not ondersteund voor gebruik in de DirectQuery-modus wanneer deze wordt gebruikt in berekende kolommen or regels voor beveiliging op rijniveau (RLS).

Voorbeeld

In het volgende modeldiagram hebben beide DimProduct and DimDate één richtingsrelatie met FactInternetSales.

CROSSFILTER_Examp_DiagView

Standaard kunnen we de Count van producten die door yearworden verkocht, niet ophalen:

CROSSFILTER_Examp_PivotTable1

Er zijn twee manieren om de count van producten op te halen door year:

  • Schakel kruislings filteren in twee richtingen in voor de relatie. Hierdoor wordt de werking van filters voor all gegevens tussen deze twee tabellen gewijzigd.

  • Gebruik de functie CROSSFILTER om de werking van de relaties voor alleen deze measurete wijzigen.

Wanneer u DAXgebruikt, kunnen we de functie CROSSFILTER gebruiken om te wijzigen hoe de kruis-filter richting zich gedraagt tussen twee kolommen die zijn gedefinieerd door een relatie. In dit geval ziet de DAX-expressie er als volgt uit:

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

Met behulp van de functie CROSSFILTER in onze measure-expressie krijgen we de verwachte resultaten:

CROSSFILTER_Examp_PivotTable2