CROSSFILTER
gjelder:beregnet kolonne
beregnet tabell
måle
visualobjektberegning
Angir kryssfiltreringsretningen som skal brukes i en beregning for en relasjon som finnes mellom to kolonner.
Syntaks
CROSSFILTER(<columnName1>, <columnName2>, <direction>)
Parametere
Vilkår | Definisjon |
---|---|
columnName1 |
Navnet på en eksisterende kolonne, ved hjelp av standard DAX syntaks og fullstendig kvalifisert, som vanligvis representerer den mange siden av relasjonen som skal brukes. hvis argumentene er gitt i omvendt rekkefølge, vil funksjonen bytte dem før du bruker dem. Dette argumentet kan ikke være et uttrykk. |
columnName2 |
Navnet på en eksisterende kolonne, ved hjelp av standard DAX syntaks og fullstendig kvalifisert, som vanligvis representerer den ene siden eller oppslagssiden av relasjonen som skal brukes. hvis argumentene er gitt i omvendt rekkefølge, vil funksjonen bytte dem før du bruker dem. Dette argumentet kan ikke være et uttrykk. |
Direction |
Kryssfiltreringsretningen som skal brukes. Må være ett av følgende:None – Ingen kryssfiltrering forekommer langs denne relasjonen.Both – Filtre på hver side filtrerer den andre siden.OneWay – Filtre på den ene siden eller oppslagssiden av en relasjon filtrerer den andre siden. Dette alternativet kan ikke brukes med en én-til-én-relasjon. Ikke bruk dette alternativet på en mange-til-mange-relasjon fordi det er uklart hvilken side som er oppslagssiden. bruk OneWay_LeftFiltersRight eller OneWay_RightFiltersLeft i stedet.OneWay_LeftFiltersRight – Filtre på siden av columnName1 filtrerer siden av columnName2 . Dette alternativet kan ikke brukes med en én-til-én- eller mange-til-én-relasjon.OneWay_RightFiltersLeft – Filtre på siden av columnName2 filtrerer siden av columnName1 . Dette alternativet kan ikke brukes med en én-til-én- eller mange-til-én-relasjon. |
Returverdi
Funksjonen returnerer ingen verdi. funksjonen angir bare kryssfiltreringsretningen for den angitte relasjonen, så lenge spørringen varer.
Merknader
Når det gjelder en 1:1-relasjon, er det ingen forskjell mellom én og begge retninger.
CROSSFILTER kan bare brukes i funksjoner som tar et filter som argument, for eksempel: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD og TOTALYTD funksjoner.
CROSSFILTER bruker eksisterende relasjoner i modellen, og identifiserer relasjoner etter sluttpunktkolonnene.
I CROSSFILTERer ikke innstillingen for kryssfiltrering av en relasjon viktig. det vil eksempel: Om relasjonen er satt til å filtrere én, eller begge retninger i modellen, påvirker ikke bruken av funksjonen. CROSSFILTER overstyrer alle eksisterende kryssfiltreringsinnstillinger.
En feil returneres hvis noen av kolonnene som kalles et argument, ikke er en del av en relasjon, eller argumentene tilhører forskjellige relasjoner.
Hvis CALCULATE uttrykk er nestet, og mer enn ett CALCULATE uttrykk inneholder en CROSSFILTER-funksjon, er den innerste CROSSFILTER den som råder i tilfelle konflikt eller tvetydighet.
Denne funksjonen støttes ikke for bruk i DirectQuery-modus når den brukes i beregnede kolonner eller regler for sikkerhet på radnivå (RLS).
Eksempel
I det følgende modelldiagrammet har både DimProduct og DimDate en enkeltretningsrelasjon med FactInternetSales.
Som standard kan vi ikke hente antall produkter som selges etter år:
Det finnes to måter å få antall produkter etter år på:
Aktiver toveis kryssfiltrering på relasjonen. Dette endrer hvordan filtre fungerer for alle data mellom disse to tabellene.
Bruk CROSSFILTER-funksjonen til å endre hvordan relasjonene fungerer bare for dette målet.
Når du bruker DAX, kan vi bruke CROSSFILTER-funksjonen til å endre hvordan kryssfiltreringsretningen fungerer mellom to kolonner definert av en relasjon. I dette tilfellet ser DAX uttrykket slik ut:
BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both))
Ved å bruke CROSSFILTER-funksjonen i vårt måluttrykk får vi de forventede resultatene: