Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Rivi- ja suodatinkontekstin ymmärtäminen | DAX-mittareiden Kirjoittaminen
Excel-tietomallinnus

Rivi- ja suodatinkontekstin ymmärtäminen

Pyyhkäise näyttääksesi valikon

Jokainen DAX-laskenta suoritetaan kontekstissa — määritelmä siitä, mitkä rivit ovat merkityksellisiä arviointihetkellä. Ilman kontekstin ymmärtämistä on mahdotonta ennustaa, mitä mittari palauttaa, tai selvittää, miksi se palauttaa väärän arvon.

Rivikonteksti

Rivikonteksti on konteksti, joka on olemassa lasketussa sarakkeessa. Kun Power Pivot arvioi laskettua saraketta, se käsittelee jokaisen rivin erikseen — DAX tietää tarkalleen, millä rivillä se on, ja käyttää laskennassa vain kyseisen rivin arvoja.

Mitä se on? Tietoisuus nykyisestä rivistä. Kaava voi viitata mihin tahansa saman taulun sarakkeeseen ja saa arvon juuri kyseiseltä riviltä — ei summaa tai keskiarvoa, vaan tarkan soluarvon.

Note
Huomio

Rivikontekstia ei ole olemassa mittareille. Kun mittari arvioidaan, ei ole nykyistä riviä — on vain joukko aktiivisia suodattimia. Tämän vuoksi rivitason tunnisteen kirjoittaminen mittarina aiheuttaa virheen: mittarilla ei ole riviä, jota arvioida.

Suodatuskonteksti

Suodatuskonteksti on konteksti, joka on olemassa, kun mittari arvioidaan. Se on koko joukko aktiivisia suodattimia tietomallissa sillä hetkellä, kun mittari lasketaan — määräytyy kaiken perusteella, mitä pivot-taulukko kyseisestä solusta tietää.

Jokaisella pivot-taulukon solulla on oma ainutlaatuinen yhdistelmä aktiivisia suodattimia.

Tyhjä solu ei tarkoita virhettä — se tarkoittaa, että kyseisen solun suodatuskonteksti palauttaa nolla vastaavaa riviä. Nykyisellä aktiivisten suodattimien yhdistelmällä ei yksinkertaisesti ole dataa.

Suodatuskontekstin neljä lähdettä

Suodatuskonteksti kertyy samanaikaisesti neljästä toisistaan riippumattomasta lähteestä. Jokainen niistä rajaa tietojoukkoa edelleen:

  1. Rivien otsikot: jokainen arvo rivialueella asettaa suodattimen omalle rivilleen. Region = North ja Region = South luovat eri suodatuskontekstit — jokainen North-rivin solu näkee vain North-myyntitiedot;
  2. Sarakkeiden otsikot: jokainen arvo sarakealueella lisää toisen suodatusulottuvuuden. Yhdistettynä rivien otsikoihin jokainen solu sijaitsee nyt kahden itsenäisen suodattimen leikkauspisteessä;
  3. Viipaleet (slicers): viipaleen valinta asettaa suodattimen kaikkiin pivot-taulukon soluihin samanaikaisesti. Esimerkiksi tammikuun valinta kuukausiviipaleesta rajoittaa kaikki solut tammikuun tietoihin riippumatta niiden rivistä tai sarakkeesta;
  4. Pivot-taulukon suodattimet: suodattimet, jotka asetetaan suoraan pivot-taulukon suodatinalueelle, vaikuttavat myös jokaisen solun suodatuskontekstiin, ja ne kasaantuvat mahdollisten rivien, sarakkeiden ja viipaleiden suodattimien päälle.

Tehtävä

Vaihe 1 — Rivikontekstin kokeilu

  • Avaa työkirja. Siirry Power Pivot → Hallinta → Tietonäkymä → Sales-välilehdelle.

  • Tarkastele Order Size -laskettua saraketta. Se sisältää joko Large tai Small jokaisella rivillä kyseisen rivin Quantity-arvon perusteella.

  • Lisää nyt toinen laskettu sarake Sales-tauluun seuraavalla kaavalla:

= Sales[Quantity] * Sales[UnitPrice]

  • Nimeä se Row Revenue.

  • Selaa saraketta ja varmista, että jokaisella rivillä näkyy eri arvo, eli kyseisen rivin Quantity- ja UnitPrice-arvojen tulo.

Vaihe 2 — Vastaa seuraaviin kysymyksiin

  1. Minkä tyyppistä kontekstia käytetään, kun DAX laskee Row Revenue -arvon jokaiselle riville?
  2. Onko Row Revenue sama kuin Sales-taulussa jo oleva Total-sarake?
  3. Olisiko järkevää luoda Row Revenue mittarina lasketun sarakkeen sijaan?
question mark

Mikä seuraavista väittämistä kuvaa tarkimmin rivikontekstin ja suodatinkontekstin eron DAX:ssa?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 4
some-alt