• Home
  • DAX – THE Many Faces OF VALUES ()

DAX – THE Many Faces OF VALUES ()

Gjest Innlegg Av Scott På Tiny Lizard Mange Verdier

Kanskje Det Er et tegn på hvor JEG er På Geek Skala i forhold Til Rob, men hvor han anser TIDLIGERE () å være en ganske vanskelig funksjon å forstå, det bare ikke bry meg. I det minste synes det å ha bare ett formål i livet.

NÅ FUNGERER VERDIENE () på den annen side … vel, det er bare noen ødelagte ting der! Ikke bare gjør ingenting om det føles naturlig og intuitivt for meg, men det synes også å oppføre seg på helt forskjellige måter avhengig av hvordan og hvor den brukes.

I Utgangspunktet, hver gang jeg bruker den, føler jeg at jeg enten var heldig, trakk en rask, og at jeg er en skitten juksemaker. Så, i det minste fikk jeg det til å gå for meg.

La oss se på noen av de ulike bruksområder.

RETURNER UNIKE VERDIER

På samme måte SOM ALL () – funksjonen (eller jeg antar identisk MED ALL () – funksjonen), RETURNERER VERDIER () – funksjonen bare forskjellige verdier. Mot en kolonne med farger { Rød, Rød, Rød, Blå, Rød, Rød } begge VERDIER() og ALLE() funksjoner vil returnere en tabell som består av en kolonne som er { Rød, Blå }. Forskjellen mellom disse to funksjonene er AT VERDIER() fungerer innenfor den opprinnelige filterkonteksten, HVOR ALLE () bryr seg ikke om deg eller din dumme filterkontekst … Frihet fra filters grenser og tyranniet til … vent, hva?

uansett, leste Jeg bare at det gjør en kolonne til et bord? Rolig der mester! Det emnet er ganske måter av! Minst 4 ord…

KONVERTER KOLONNE TIL TABELL

du vil finne dette helt overraskende, MEN EN AV TINGENE VERDIER () gjør er å konvertere en kolonne til et bord. Dette er ganske nyttig for … vel, for det meste ringer funksjoner som vil ha et bord. SI … SUMX () ELLER FILTER() ELLER BEREGN() ELLER COUNTROWS() ELLER TOPN () eller uh… tilsynelatende er det mange funksjoner som kan fungere på tabeller.

bare pass på at, basert på forrige avsnitt, dette er ikke en rett konvertering fra kolonne til tabell … som bare de unike verdiene vil leve på.

TA DET FUNKY SPORET tilbake

Når DU har ringt EN ALL () for å fjerne filtre, kan du alltid ta dem tilbake med et kall TIL VERDIER (). Du dreper de fattige forsvarsløse filtre, men da er du hyggelig nok til å bringe dem tilbake fra de døde. Akkurat som en ting som kan bringe ting tilbake fra de døde.

=BEREGN(, ALLE(Kalender), VERDIER(Kalender))

SELV OM Alle(Kalender) fjernet alle filtre på Kalendertabellen… VIL VERDIENE(Kalender) bringe filteret tilbake fra den opprinnelige filterkonteksten I År-kolonnen. Dette vil oppføre seg identisk ganske lik

= BEREGN (, ALLEXCEPT (Kalender, Kalender))

men den andre stilen, ifølge mine beregninger… gjør deg 7% mer DAXalicous, DAXariffic Og DAXsome. Åh, og hvis du virkelig vil bringe funky sporet tilbake, er det her.

INSPISER FILTERKONTEKSTEN

FUNKSJONEN VERDIER() gir deg en måte å si «Hei, filtrerer jeg på slik og slik» ? f. eks:

= HVIS (VERDIER (Kalender) = «April», » April er her!», «Tristhet.»)

Som jeg antar ikke er sjokkerende forskjellig fra å gjenopprette filterkonteksten i Kalenderen ovenfor, bortsett fra at dette er mer av en «lese» enn en»skrive». Kanskje jeg strekker meg der?

uansett, Hvis jeg ikke tar feil, vil dette blåse opp hvis filterkonteksten har mer enn en rad i den. La oss se…

Beregningsfeil i målekalender: en tabell med flere verdier ble levert der en enkelt verdi var forventet.

Jepp. Det blåste opp greit. Dette skyldes en hvilken som helst rad i pivottabellen som har mer enn 1 unik verdi For Måneden, for eksempel totalsummer.

du må beskytte kallet TIL VERDIER () med EN HASONEVALUE eller HASONEFILTER eller noe av den typen.

=IF (HASONEFILTER(Kalender),
IF (VERDIER(Kalender) = «April», » April er her!», «Tristhet.»),
» Woah.»
)

Dette vil skrive ut » Woah.»på celler med flere måneder i stedet for å blåse opp, akkurat som våre forfedre ment.

KONVERTERER KOLONNER til SKALARER

Dette er lett DET rareste VALUES () gjør. Hvis DU kaller VERDIER () på en kolonne som har nøyaktig 1 verdi (eller jeg antar at flere verdier som er identiske), returnerer den en verdi som kan brukes som en skalar.

Skalar. Det er fra det latinske ordet Scalapatipatimousia betyr «Scott gjør ting opp». Feile, nei. Det er ikke det. Jeg aner ikke hva ordet er, men det er bare fancy snakk for «en enkel verdi» … som «Scott», 7 eller «4/1/2012». Enhver enkelt verdi.

Når jeg ser tilbake på det forrige punktet, er det fornuftig at jeg har lov til å teste VERDIER (Kalender) mot «April»… siden kallet TIL VERDIER () vil konvertere kolonnen til en enkel verdi… og så er det som å teste «Scott» mot «April».

SOM ET AGGREGAT

du vet hvordan du ikke kan skrive et mål (beregnet felt i 2013, grr) som… =MyTable ?
fordi motoren ville være som … » Uh … Scott?»(Merk: vær så snill å erstatte ditt eget navn når du late som motoren er konversasjonell) » Uh … Scott? Jeg ser på flere rader i denne pivotcellen, og du refererte bare til en kolonne.. hvordan skal JEG vite hvilken rad i kolonnen du vil ha? Og hvorfor tar du ikke med blomster til meg?»

Du må bryte kolonnereferansene dine i en aggregatfunksjon … SOM SUM, MIN, GJENNOMSNITT, whatevs. Men i tilfeller der du hevder » vel, jeg vet at det bare er 1 verdi, så jeg kan bare bruke noen av dem…», vel da, i de tilfellene jeg hevder, kan du bruke VERDIER () i stedet.

den vil konvertere den ene og eneste verdien til en skalar (akkurat som alle andre aggregatfunksjoner). Og har den fine bivirkningen (ganske) at hvis du har feil… hvis det noen gang blir mer enn 1 rad… vil du vite.
i all sin gory error ‘ y detalj, vil du vite.

så vær FORSIKTIG med Totale totale celler, siden de pleier å ha flere rader. Du kan selvfølgelig teste for DET MED HASONEVALUES () eller ISFILTERED (), etc. Merk at det ikke vil krasje og brenne TIL KJØRETID. Sjekk Formler knappen vil fortsatt elske deg, akkurat som jeg gjør.

Pakk Opp

Rob påpeker at Du også kan GJØRE VERDIER (myTable) for å få det funky sporet tilbake PÅ alle kolonnene i bordet. Jeg foretrekker ikke å tenke på slike ting, siden hodet mitt allerede gjør vondt.

DET kan være enda flere måter å bruke VERDIER (), men vi kan håpe ikke. I mellomtiden, i stedet for å tenke på de mange ansikter av verdier, skal jeg se På De Mange Ansiktene Til Skyldige Hunder.

Leave A Comment