SELECTEDVALUE sijaan VALUES käyttäminen
Tietomallintajana saatat joskus joutua kirjoittamaan DAX-lausekkeen, joka testaa, suodatetaanko sarake tietyllä arvolla.
DAXaiemmissa versioissa tämä vaatimus saavutettiin turvallisesti käyttämällä kolmea DAX funktiota koskevaa kaavaa. IF, HASONEVALUE ja VALUES. Seuraavassa mittarimäärityksessä esitetään esimerkki. Se laskee arvonlisäveron määrän, mutta vain australialaisille asiakkaille tehtyjen myyntien osalta.
Australian Sales Tax =
IF(
HASONEVALUE(Customer[Country-Region]),
IF(
VALUES(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
)
Esimerkissä HASONEVALUE-funktio palauttaa TRUE vain, kun Maa–alue--sarakkeen yksittäinen arvo näkyy nykyisessä suodatinkontekstissa. Kun se on TRUE, VALUES-funktiota verrataan kirjaimellisesti tekstiin "Australia". Kun VALUES-funktio palauttaa TRUE, Sales -mittari kerrotaan luvulla 0,10 (eli 10%). Jos HASONEVALUE funktio palauttaa FALSE– koska useampi kuin yksi arvo suodattaa sarakkeen – ensimmäinen IF-funktio palauttaa BLANK.
HASONEVALUE käyttö on puolustava tekniikka. Se on pakollista, koska useat arvot suodattavat maa-alue- sarakkeen. Tässä tapauksessa VALUES-funktio palauttaa useiden rivien taulukon. Useiden rivien taulukon vertaaminen skalaariarvoon johtaa virheeseen.
Suositus
On suositeltavaa käyttää SELECTEDVALUE-funktiota. Sen tulos on sama kuin tässä artikkelissa kuvattu malli, mutta saavutat tuloksen tehokkaammin ja tyylikkäämmin.
SELECTEDVALUE-funktiolla esimerkki mittarimäärityksestä kirjoitetaan nyt uudelleen.
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
Juomaraha
On mahdollista välittää vaihtoehtoinen tulos arvo SELECTEDVALUE funktioon. Vaihtoehtoinen tulosarvo palautetaan, kun sarakkeeseen ei käytetä suodattimia tai useita suodattimia.
Aiheeseen liittyvä sisältö
- Oppimispolku: DAX käyttäminen Power BI Desktopissa
- Kysymyksiä? Voit esittää kysymyksiä Power BI -yhteisön
- Ehdotuksia? Kerro ideasi Power BI - parantamiseksi