Condividi tramite


CROSSFILTER

Si applica a:colonna calcolatatabella calcolataMeasurecalcolo visivo

Specifica la direzione di filtro incrociato da utilizzare in un calcolo per una relazione esistente tra due colonne.

Sintassi

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

Parametri

Termine Definizione
columnName1 Nome di una colonna esistente, utilizzando la sintassi DAX standard and completo, che in genere rappresenta il lato molti della relazione da utilizzare; if gli argomenti vengono specificati in ordine inverso, la funzione li scambierà prima di usarli. Questo argomento non può essere un'espressione.
columnName2 Nome di una colonna esistente, utilizzando la sintassi standard DAXand completo, che in genere rappresenta il lato uno or lato di ricerca della relazione da utilizzare; if gli argomenti vengono forniti in ordine inverso, la funzione li scambierà prima di usarli. Questo argomento non può essere un'espressione.
Direction Direzionefilter incrociata da utilizzare. Deve essere uno dei seguenti:

None: non si verifica alcun filtro incrociato lungo questa relazione.

Both : Filters su entrambi i lati filters l'altro lato.

OneWay: Filters da un lato or lato di ricerca di una relazione filter'altro lato. Questa opzione non può essere usata con una relazione uno-a-uno. Non usare questa opzione in una relazione molti-a-molti perché non è chiaro quale lato è il lato di ricerca; usare invece OneWay_LeftFiltersRight or OneWay_RightFiltersLeft.

OneWay_LeftFiltersRight : Filters sul lato di columnName1filter lato di columnName2. Questa opzione non può essere usata con una relazione uno-a-uno or molti-a-uno.

OneWay_RightFiltersLeft : Filters sul lato di columnName2filter lato di columnName1. Questa opzione non può essere usata con una relazione uno-a-uno or molti-a-uno.

Restituisce value

La funzione non restituisce alcun value; la funzione imposta solo la direzione del filtro incrociato per la relazione indicata, per il duration della query.

Osservazioni

  • Nel caso di una relazione 1:1, non esiste alcuna differenza tra quella and entrambe le direzioni.

  • CROSSFILTER può essere usato solo nelle funzioni che accettano un filter come argomento, ad esempio: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD .

  • CROSSFILTER usa le relazioni esistenti nel modello, identificando le relazioni in base alle colonne del punto finale.

  • In CROSSFILTERl'impostazione di filtro incrociato di una relazione è not importante; ovvero se la relazione è impostata su filter una, or entrambe le direzioni nel modello not influiscono sull'utilizzo della funzione. CROSSFILTER sostituirà qualsiasi impostazione di filtro incrociato esistente.

  • Viene restituito un errorif qualsiasi colonna denominata come argomento è not parte di una relazione or gli argomenti appartengono a relazioni diverse.

  • If CALCULATE espressioni sono annidate, and più espressioni CALCULATEcontains una funzione di CROSSFILTER, quindi la CROSSFILTER più interna è quella che prevale in caso di conflitto or ambiguità.

  • Questa funzione è not supportata per l'uso in modalità DirectQuery quando viene usata nelle colonne calcolate or regole di sicurezza a livello di riga.

Esempio

Nel diagramma del modello seguente, sia DimProduct and DimDate hanno una singola relazione di direzione con FactInternetSales.

CROSSFILTER_Examp_DiagView

Per impostazione predefinita, non è possibile ottenere la Count di Prodotti venduti da year:

CROSSFILTER_Examp_PivotTable1

Esistono due modi per ottenere il count di prodotti year:

  • Attivare il filtro incrociato bidirezionale sulla relazione. In questo modo filters funzionano per all dati tra queste due tabelle.

  • Usare la funzione CROSSFILTER per modificare il funzionamento delle relazioni solo per questo measure.

Quando si usa DAX, è possibile usare la funzione CROSSFILTER per modificare il comportamento della direzione trafilter tra due colonne definite da una relazione. In questo caso, l'espressione DAX è simile alla seguente:

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

Usando la funzione CROSSFILTER nell'espressione measure, si ottengono i risultati previsti:

CROSSFILTER_Examp_PivotTable2