CROSSFILTER
Koskee seuraavia:Laskettu sarake
Laskettu taulukko
Mittayksikkö
Visuaalinen laskenta -
Määrittää ristiinsuodatuksen suunnan, jota käytetään kahden sarakkeen välisen suhteen laskennassa.
Syntaksi
CROSSFILTER(<columnName1>, <columnName2>, <direction>)
Parametrit
Termi | Määritelmä |
---|---|
columnName1 |
Olemassa olevan sarakkeen nimi, jossa käytetään vakiomuotoista DAX syntaksia, joka on täydellinen ja joka edustaa yleensä käytettävän suhteen monta-puolta. jos argumentit annetaan käänteisessä järjestyksessä, funktio vaihtaa ne ennen niiden käyttämistä. Tämä argumentti ei voi olla lauseke. |
columnName2 |
Olemassa olevan sarakkeen nimi, jossa käytetään vakiomuotoista DAX -syntaksia, joka on täydellinen ja joka edustaa yleensä käytettävän suhteen yksi- tai haku-puolta. jos argumentit annetaan käänteisessä järjestyksessä, funktio vaihtaa ne ennen niiden käyttämistä. Tämä argumentti ei voi olla lauseke. |
Direction |
Käytettävä ristiinsuodatussuunta. On oltava jokin seuraavista:None – Ristiinsuodatusta ei tapahdu tämän suhteen yhteydessä.Both – kummankin puolen suodattimet suodattavat toista puolta.OneWay – Suhteen toisella puolella tai hakupuolella olevat suodattimet suodattavat toista puolta. Tätä asetusta ei voi käyttää yksi yhteen -suhteessa. Älä käytä tätä vaihtoehtoa monta moneen -suhteessa, koska on epäselvää, kumpi puoli on hakupuoli. käytä sen sijaan OneWay_LeftFiltersRight- tai OneWay_RightFiltersLeft -OneWay_RightFiltersLeft.OneWay_LeftFiltersRight – columnName1 puolella olevat suodattimet suodattavat columnName2 reunan. Tätä asetusta ei voi käyttää yksi yhteen- tai monta yhteen -suhteessa.OneWay_RightFiltersLeft – columnName2 puolella olevat suodattimet suodattavat columnName1 reunan. Tätä asetusta ei voi käyttää yksi yhteen- tai monta yhteen -suhteessa. |
Palautusarvo
Funktio ei palauta arvoa. funktio määrittää vain ristiinsuodatuksen suunnan ilmaistulle suhteelle kyselyn keston ajan.
Huomautuksia
Jos kyseessä on 1:1-suhde, yksi- ja molemmat-suunnilla ei ole eroa.
CROSSFILTER voi käyttää vain funktioissa, joissa suodatinta käytetään argumenttina, esimerkiksi seuraavat funktiot: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD ja TOTALYTD funktiot.
CROSSFILTER käyttää mallin olemassa olevia suhteita ja tunnistaa suhteita niiden lopetuspisteen sarakkeiden mukaan.
CROSSFILTERsuhteen ristiinsuodatuksen asetus ei ole tärkeä. Toisin sanoen se, onko suhde määritetty suodattamaan yksi vai molempiin suuntiin mallissa, ei vaikuta funktion käyttöön. CROSSFILTER ohittaa olemassa olevat ristiinsuodatuksen asetukset.
Palautetaan virhe, jos jokin argumentiksi nimetty sarake ei ole osa suhdetta tai jos argumentit kuuluvat eri suhteisiin.
Jos CALCULATE on sisäkkäin ja useampi kuin yksi CALCULATE -lauseke sisältää CROSSFILTER-funktion, sisintä CROSSFILTER on se, joka vallitsee ristiriita- tai moniselitteisyystapauksissa.
Tätä funktiota ei tueta DirectQuery-tilassa lasketuissa sarakkeissa tai rivitason suojauksen (RLS) säännöissä käytettäväksi.
Esimerkki
Seuraavassa mallikaaviossa sekä DimProduct- että DimDate-tuotteilla on yksisuuntainen suhde FactInternetSales-kohteen kanssa.
Oletusarvon mukaan ei voida noutaa tuotteiden määrää vuoden mukaan:
Tuotteiden määrän voi saada vuoden mukaan kahdella tavalla:
Ota suhteelle käyttöön kaksisuuntainen ristiinsuodatus. Tämä muuttaa suodattimien toimintaa kaikille näiden kahden taulukon välisille tiedoille.
CROSSFILTER-funktiolla voit muuttaa sitä, miten yhteydet toimivat juuri tämän mittarin kanssa.
Kun käytät DAX, voimme muuttaa CROSSFILTER-funktiolla, miten ristiinsuodatussuunta toimii kahden suhteen määrittämän sarakkeen välillä. Tässä tapauksessa DAX lauseke näyttää tältä:
BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both))
Käyttämällä CROSSFILTER-funktiota mittarilausekkeessa saamme odotetut tulokset: