Käytä SELECTEDVALUE-arvoa arvojen sijaan
Tietomallintajana saatat joskus joutua kirjoittamaan DAX-lausekkeen, joka testaa, suodatetaanko sarake tietyllä arvolla.
Aikaisemmissa DAX-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 arvon TRUE vain, kun Maa-alue-sarakkeen yksittäinen arvo näkyy nykyisessä suodatinkontekstissa. Kun arvo on TRUE, VALUES-funktiolla verrataan kirjaimellisesti tekstiin "Australia". Kun VALUES-funktio palauttaa arvon TRUE, Sales-mittari kerrotaan luvulla 0,10 (osuus on 10 %). Jos HASONEVALUE-funktio palauttaa arvon FALSE, koska useampi kuin yksi arvo suodattaa sarakkeen, ensimmäinen IF-funktio palauttaa tyhjän arvon.
HASONEVALUE-kohteen 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
)
Vihje
On mahdollista välittää vaihtoehtoinen tulos-arvo SELECTEDVALUE-funktioon. Vaihtoehtoinen tulosarvo palautetaan, kun sarakkeeseen ei käytetä suodattimia tai useita suodattimia.
Liittyvä sisältö
- Oppimispolku: DAX:n käyttäminen Power BI Desktopissa
- Kysyttävää? Voit esittää kysymyksiä Power BI -yhteisö
- Ehdotuksia? Kerro ideasi Power BI:n parantamiseksi