Sdílet prostřednictvím


CROSSFILTER

platí pro:počítaný sloupecPočítaná tabulkaMeasure vizuálu

Určuje směr křížového filtrování, který se má použít ve výpočtu relace, která existuje mezi dvěma sloupci.

Syntax

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

Parametry

Semestr Definice
columnName1 Název existujícího sloupce, který používá standardní syntaxi DAXand plně kvalifikovaný, který obvykle představuje mnoho stran relace, která se má použít; if argumenty jsou uvedeny v obráceném pořadí, funkce je před použitím prohodí. Tento argument nemůže být výraz.
columnName2 Název existujícího sloupce, který používá standardní syntaxi DAXand plně kvalifikovaný, který obvykle představuje stranu jedné strany or vyhledávání relace; if argumenty jsou uvedeny v obráceném pořadí, funkce je před použitím prohodí. Tento argument nemůže být výraz.
Direction Křížovýfilter směr, který se má použít. Musí to být jedna z těchto věcí:

None – v této relaci nedojde k žádnému křížovému filtrování.

Both – Filters na obou stranách filters druhé straně.

OneWay – Filters na jedné straně or na straně vyhledávání relace filter druhé straně. Tuto možnost nelze použít s relací 1:1 . Tuto možnost nepoužívejte u relace M:N, protože není jasné, která strana je vyhledávací stranou; místo toho použijte OneWay_LeftFiltersRight or OneWay_RightFiltersLeft.

OneWay_LeftFiltersRight - Filters na straně columnName1filter strany columnName2. Tuto možnost nelze použít s relací 1:1 or relací M:1.

OneWay_RightFiltersLeft - Filters na straně columnName2filter strany columnName1. Tuto možnost nelze použít s relací 1:1 or relací M:1.

Vrácení value

Funkce nevrací žádné value; funkce nastaví směr křížového filtrování pouze pro označenou relaci pro duration dotazu.

Poznámky

  • V případě relace 1:1 neexistuje žádný rozdíl mezi jedním and oběma směry.

  • CROSSFILTER lze použít pouze ve funkcích, které jako argument přebírají filter, například: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTDandTOTALYTD funkce.

  • CROSSFILTER používá existující relace v modelu a identifikuje relace podle sloupců koncového bodu.

  • V CROSSFILTERje nastavení křížového filtrování relace not důležité; to znamená, jestli je relace nastavená na filter jednu, or obou směrech v modelu not ovlivňuje použití funkce. CROSSFILTER přepíše všechna existující nastavení křížového filtrování.

  • Vrátí errorif některý ze sloupců pojmenovaných jako argument je not součástí relace or argumenty patří do různých relací.

  • If CALCULATE výrazy jsou vnořené, and více než jeden výraz CALCULATEcontains funkci CROSSFILTER, pak nejvnitřnější CROSSFILTER je ten, který převládá v případě konfliktní or nejednoznačnosti.

  • Tato funkce je not podporována pro použití v režimu DirectQuery při použití v počítaných sloupcích or pravidla zabezpečení na úrovni řádků (RLS).

Příklad

V následujícím diagramu modelu mají oba DimProduct and DimDate jeden směr s FactInternetSales.

CROSSFILTER_Examp_DiagView

Ve výchozím nastavení nemůžeme získat Count produktů prodaných year:

CROSSFILTER_Examp_PivotTable1

Existují dva způsoby, jak získat count produktů year:

  • Zapněte obousměrné křížové filtrování relace. Tím se změní způsob fungování filters pro all data mezi těmito dvěma tabulkami.

  • Pomocí funkce CROSSFILTER můžete změnit způsob fungování relací pouze pro tuto measure.

Při použití DAXmůžeme pomocí funkce CROSSFILTER změnit způsob chování směru křížovéhofilter mezi dvěma sloupci definovanými relací. V tomto případě výraz DAX vypadá takto:

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

Pomocí funkce CROSSFILTER ve výrazu measure získáme očekávané výsledky:

CROSSFILTER_Examp_PivotTable2