SWITCH
Koskee seuraavia:Laskettu sarakeLaskettu taulukkoMittayksikköVisuaalinen laskenta -
Laskee lausekkeen suhteessa arvoluetteloon ja palauttaa yhden useista mahdollisista tuloslausekkeista. Tämän funktion avulla voidaan välttää useiden sisäkkäisten IF-lausekkeiden ottaminen käyttöön.
Syntaksi
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Parametrit
Termi | Määritelmä |
---|---|
expression |
Mikä tahansa DAX lauseke, joka palauttaa yksittäisen skalaariarvon, jossa lauseke pitää laskea useasti (joka riville tai joka kontekstille). |
value |
Vakioarvo, joka on täsmäytettävä expression tulosten kanssa. |
result |
Mikä tahansa arvioitava skalaarilauseke, jos expression tulokset vastaavat vastaavaa value . |
else |
Mikä tahansa arvioitava skalaarilauseke, jos expression tulos ei vastaa mitään value argumenteista. |
Palautusarvo
Jos value
kanssa löytyy vastaavuus, palautetaan skalaariarvo vastaavasta result
. Jos vastaavuutta value
kanssa ei ole, palautetaan else
arvo. Jos mitään values
ei täsmää ja else
ei ole määritetty, palautetaan BLANK.
Huomautukset
- Laskettava
expression
voi olla vakioarvo tai lauseke. Tämän funktion yleinen käyttötarkoitus on määrittää ensimmäiseksi parametriksiTRUE
. Katso esimerkkejä alla. - Kaikkien
result
lausekkeiden jaelse
-lausekkeen on oltava samaa tietotyyppiä. - Ehtojen järjestyksellä on väliä. Heti, kun yksi
value
vastaa, vastaavaaresult
palautetaan, eikä muita myöhempiävalues
arvioida. Varmista, että rajoittavin arvioitavavalues
määritetään ennen kuinvalues
vähemmän rajoittava. Katso esimerkkejä alla.
Esimerkit
SWITCH avulla yleensä verrataan expression
vakioon values
. Seuraava esimerkki luo lasketun kuukauden nimien sarakkeen:
= SWITCH (
[Month Number Of Year],
1, "January",
2, "February",
3, "March",
4, "April",
5, "May",
6, "June",
7, "July",
8, "August",
9, "September",
10, "October",
11, "November",
12, "December",
"Unknown month number"
)
Toinen SWITCH yleinen käyttötarkoitus on korvata useita sisäkkäisiä IF-lausekkeita. Tämä toteutetaan määrittämällä lauseke TRUE
seuraavan esimerkin mukaisesti. Siinä verrataan tuotteiden uudelleenjärjestelypisteen ja turvallisuuden varastotasoa mahdollisten varastojen loppumiseen liittyvien riskien tunnistamiseen:
= SWITCH (
TRUE,
[Reorder Point] > [Safety Stock Level], "Good: Safety stock level exceeded",
[Reorder Point] = [Safety Stock Level], "Minimal: Safety stock level met",
[Reorder Point] < [Safety Stock Level], "At risk: Safety stock level not met",
ISBLANK ( [Reorder Point] ), "Incomplete: Reorder point not set",
ISBLANK ( [Safety Stock Level] ), "Incomplete: Safety stock level not set",
"Unknown"
)
values
järjestys on tärkeä. Seuraavassa esimerkissä toista result
ei koskaan palauteta, koska ensimmäinen arvo on vähemmän rajoittava kuin toinen. Tässä esimerkissä tulos on aina A
tai C
, mutta ei koskaan B
.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
Seuraava lauseke palauttaa virheen, koska result
-argumenttien tietotyypit ovat erilaiset. Muista, että kaikkien result
ja else
-argumenttien tietotyyppien on oltava samat.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)