Jaa


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 TRUEorFALSE. 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