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.
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:
- 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;
- Sarakkeiden otsikot: jokainen arvo sarakealueella lisää toisen suodatusulottuvuuden. Yhdistettynä rivien otsikoihin jokainen solu sijaitsee nyt kahden itsenäisen suodattimen leikkauspisteessä;
- 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;
- 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
- Minkä tyyppistä kontekstia käytetään, kun DAX laskee Row Revenue -arvon jokaiselle riville?
- Onko Row Revenue sama kuin Sales-taulussa jo oleva Total-sarake?
- Olisiko järkevää luoda Row Revenue mittarina lasketun sarakkeen sijaan?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme