CALCULATETABLE
Koskee seuraavia:Laskettu sarakeLaskettu taulukkoMeasureVisuaalinen laskutoimitus
Laskee taulukkolausekkeen muokatussa filter kontekstissa.
Muistiinpano
Saatavilla on myös CALCULATE funktio. Se suorittaa täsmälleen samat toiminnot, except se muokkaa filter kontekstia, sitä käytetään lausekkeessa, joka palauttaa skalaarisen value.
Syntaksi
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
Parametrit
Termi | Määritelmä |
---|---|
expression |
Laskettava taulukkolauseke. |
filter1, filter2,… |
(Valinnainen) Ehtolausekkeet or taulukkolausekkeita, jotka määrittävät filters, orfilter muokkausfunktioita. |
first-parametrina käytettävän lausekkeen on oltava mallitaulukko, or taulukon palauttavan funktion.
Filters voivat olla:
- Totuusarvofilter lausekkeet
- Taulukon filter lausekkeet
- muokkausfunktioiden Filter
Kun filterson useita, ne arvioidaan käyttämällä ANDloogista operaattoria. Tämä tarkoittaa sitä, all ehtojen on oltava TRUE
samalla time.
Totuusarvofilter lausekkeet
Ehtolausekefilter on lauseke, joka antaa tulokseksi TRUE
orFALSE
. Niiden on noudatettava useita sääntöjä:
- Ne voivat viitata vain yhteen sarakkeeseen.
- Ne eivät voi viitata mittareihin.
- Ne eivät voi käyttää sisäkkäistä CALCULATE funktiota.
syyskuun 2021 julkaisusta alkaen Power BI Desktopissa ovat myös seuraavat:
- Ne eivät voi käyttää funktioita, jotka skannaavat or palauttavat taulukon, ellei niitä välitetä argumentteina koostamisfunktioihin.
- Ne voivat sisältää koostamisfunktion, joka palauttaa skalaariarvoisen value.
Taulukon filter lauseke
Taulukkolauseke filter käyttää taulukko-objektia filter. Se voi olla viittaus mallitaulukkoon, mutta todennäköisempää on, että se on funktio, joka palauttaa taulukko-objektin. voit käyttää FILTER-funktiota monimutkaisten filter ehtojen käyttämiseen, mukaan lukien ne, joita totuusarvolauseke ei voi määrittää filter lausekkeessa.
Filter muokkausfunktiot
Filter muokkausfunktioiden avulla voit tehdä muutakin kuin vain lisätä filters. Niiden avulla voit hallita paremmin filter kontekstia.
Funktio | Tarkoitus |
---|---|
REMOVEFILTERS | Poista allfilters, orfilters yhdestä or useammasta taulukon sarakkeesta or yksittäisen taulukon all sarakkeista. |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | Poista filters yhdestä or useammasta sarakkeesta yhden taulukon all sarakkeista or. |
KEEPFILTERS | Lisää filter poistamatta samojen sarakkeiden aiemmin luotuja filters. |
USERELATIONSHIP | Ota passiivinen yhteys related sarakkeiden välille, jolloin aktiivinen yhteys poistetaan automaattisesti käytöstä. |
CROSSFILTER | Muokkaa filter suuntaa (molemmista yksittäiseen, or yksittäisestä molempiin) or poistaa suhteen käytöstä. |
1ALL-funktio and sen variantit toimivat niin kuin molemmat filter muokkaajat and taulukko-objekteja palauttavina funktioina. If työkalu tukee REMOVEFILTERS funktiota, on parempi käyttää sitä filterspoistamiseen.
Palauta value
taulukon values.
Huomautuksia
Kun filter lausekkeita annetaan, CALCULATETABLE-funktio muokkaa filter kontekstia lausekkeen evaluate. Kullekin filter-lausekkeelle on kaksi mahdollista vakiotulosta, kun filter-lauseke not rivitetään KEEPFILTERS-funktioon:
- If sarakkeet (or taulukot) eivät ole filter kontekstissa, filter kontekstiin lisätään uusia filters lausekkeen evaluate.
- If sarakkeet (or taulukot) ovat jo filter kontekstissa, uusi filters korvaa olemassa olevat filtersCALCULATETABLE-lausekkeen evaluate.
Tätä funktiota not tueta DirectQuery-tilassa, kun sitä käytetään lasketuissa sarakkeissa or rivitason suojauksen (RLS) säännöissä.
Esimerkki
Seuraavassa esimerkissä käytetään CALCULATETABLE-funktiota vuoden 2006 Internet-myynnin sum. Tätä value käytetään myöhemmin Internet-myynnin suhteen calculate verrattuna vuoden yearall myyntiin.
Seuraava kaava:
= SUMX(
CALCULATETABLE(
'InternetSales_USD',
'DateTime'[CalendarYear] = 2006
),
[SalesAmount_USD]
)
Tuloksena on seuraava taulukko:
Riviotsikot | Internet SalesAmount_USD | CalculateTable 2006 Internet-myynti | Internet-myynnin osuus vuonna 2006 |
---|---|---|---|
2005 | 2 627 031,40 dollaria | 5 681 440,58 dollaria | 0.46 |
2006 | 5 681 440,58 dollaria | 5 681 440,58 dollaria | 1.00 |
2007 | 8 705 066,67 dollaria | 5 681 440,58 dollaria | 1.53 |
2008 | 9 041 288,80 dollaria | 5 681 440,58 dollaria | 1.59 |
Loppusumma | 26 054 827,45 dollaria | 5 681 440,58 dollaria | 4.59 |