Deze sectie bevat koppelingen naar voorbeelden waarin het gebruik van DAX-formules in de volgende scenario's wordt gedemonstreerd.
- Complexe berekeningen uitvoeren
- Werken met tekst en datums
- Voorwaardelijke waarden en testen op fouten
- Time intelligence gebruiken
- Classificatie en vergelijking van waarden
In dit artikel
Aan de slag
Ga naar de wiki DAX Resource Center , waar u allerlei informatie over DAX kunt vinden, waaronder blogs, voorbeelden, technische documenten en video's van toonaangevende professionals en Microsoft.
Scenario's: Complexe berekeningen uitvoeren
Met DAX-formules kunnen complexe berekeningen worden uitgevoerd die aangepaste aggregaties, filters en het gebruik van voorwaardelijke waarden omvatten. In deze sectie vindt u voorbeelden van hoe u aan de slag kunt gaan met aangepaste berekeningen.
Aangepaste berekeningen maken voor een draaitabel
CALCULATE en CALCULATETABLE zijn krachtige, flexibele functies die nuttig zijn voor het definiëren van berekende velden. Met deze functies kunt u de context wijzigen waarin de berekening wordt uitgevoerd. U kunt ook het type aggregatie of wiskundige bewerking aanpassen dat moet worden uitgevoerd. Zie de volgende onderwerpen voor voorbeelden.
Een filter toepassen op een formule
Op de meeste plaatsen waar een DAX-functie een tabel als argument gebruikt, kunt u in plaats daarvan een gefilterde tabel doorvoeren door de functie FILTER te gebruiken in plaats van de tabelnaam of door een filterexpressie op te geven als een van de functieargumenten. De volgende onderwerpen bevatten voorbeelden van hoe u filters maakt en hoe filters de resultaten van formules beïnvloeden. Zie Gegevens filteren in DAX-formules voor meer informatie.
Met de functie FILTER kunt u filtercriteria opgeven met behulp van een expressie, terwijl de andere functies specifiek zijn ontworpen om lege waarden uit te filteren.
Selectief filters verwijderen om een dynamische verhouding te maken
Door dynamische filters in formules te maken, kunt u eenvoudig de volgende vragen beantwoorden:
- Wat was de bijdrage van de verkoop van het huidige product in de totale verkoop voor het jaar?
- Hoeveel heeft deze divisie bijgedragen aan de totale winst voor alle operationele jaren, in vergelijking met andere divisies?
Formules die u in een draaitabel gebruikt, kunnen worden beïnvloed door de draaitabelcontext, maar u kunt de context selectief wijzigen door filters toe te voegen of te verwijderen. Het voorbeeld in het onderwerp ALL laat zien hoe u dit doet. Als u de verhouding tussen de verkopen van een specifieke wederverkoper en de verkopen van alle wederverkopers wilt bepalen, maakt u een meting waarmee de waarde voor de huidige context wordt berekend gedeeld door de waarde voor de context ALL.
Het onderwerp ALLEXCEPT bevat een voorbeeld van hoe selectief filters voor een formule kunnen worden gewist. In beide voorbeelden wordt uitgelegd hoe de resultaten veranderen, afhankelijk van het ontwerp van de draaitabel.
Zie de volgende onderwerpen voor andere voorbeelden van het berekenen van verhoudingen en percentages:
Een waarde uit een buitenste lus gebruiken
DAX kan niet alleen waarden uit de huidige context in berekeningen gebruiken, maar ook een waarde uit een vorige lus gebruiken om een set gerelateerde berekeningen te maken. In het volgende onderwerp vindt u stapsgewijze instructies voor het maken van een formule die verwijst naar een waarde uit een buitenste lus. De functie EERDER ondersteunt maximaal twee niveaus van geneste lussen.
Zie Context in DAX-formules voor meer informatie over rijcontext en gerelateerde tabellen, en over het gebruik van dit concept in formules.
Scenario's: Werken met tekst en datums
Deze sectie bevat koppelingen naar naslagonderwerpen over DAX die voorbeelden bevatten van veelvoorkomende scenario's met betrekking tot het werken met tekst, het extraheren en opstellen van datum- en tijdwaarden of het maken van waarden op basis van een voorwaarde.
Een sleutelkolom maken door samenvoeging
In Power Pivot zijn samengestelde sleutels niet toegestaan. Als uw gegevensbron samengestelde sleutels bevat, moet u deze mogelijk combineren in één sleutelkolom. Het volgende onderwerp bevat een voorbeeld van de manier waarop u een berekende kolom maakt op basis van een samengestelde sleutel.
Compose een datum gebaseerd op datumgedeelten die zijn opgehaald uit een tekstdatum
Power Pivot gebruikt een datum/tijd-gegevenstype uit SQL Server om met datums te werken. Als de externe gegevens datums bevatten met een andere notatie, bijvoorbeeld als de datums zijn geschreven in een regionale datumnotatie die niet wordt herkend door de Power Pivot-gegevensengine, of als uw gegevens gebruikmaken van surrogaatsleutels voor geheel getallen, moet u mogelijk een DAX-formule gebruiken om de datumdelen te extraheren en vervolgens samen te stellen in een geldige datum. tijdsweergave.
Als u bijvoorbeeld een kolom hebt met datums die zijn voorgesteld als een geheel getal en vervolgens zijn geïmporteerd als een teksttekenreeks, kunt u de reeks converteren naar een datum/tijd-waarde met behulp van de volgende formule:
=DATUM(RECHTS([Waarde1];4);LINKS([Waarde1];2);DEEL([Waarde1];2))
| waarde1 | Resultaat |
|---|---|
| 01032009 | 1/3/2009 |
| 12132008 | 12/13/2008 |
| 06252007 | 6/25/2007 |
De volgende onderwerpen bevatten meer informatie over de functies die worden gebruikt om datums op te halen en op te stellen.
Een aangepaste datum- of getalnotatie definiëren
Als uw gegevens datums of getallen bevatten die niet worden weergegeven in een van de standaardtekstnotaties van Windows, kunt u een aangepaste notatie definiëren om ervoor te zorgen dat de waarden correct worden verwerkt. Deze notaties worden gebruikt bij het converteren van waarden naar tekenreeksen of van tekenreeksen. De volgende onderwerpen bevatten ook een gedetailleerd overzicht van de vooraf gedefinieerde notaties die beschikbaar zijn voor het werken met datums en getallen.
- Vooraf gedefinieerde numerieke notaties voor de functie NOTATIE
- Aangepaste numerieke notaties voor de functie NOTATIE
- Vooraf gedefinieerde datum- en tijdnotaties voor de functie INDELING
- Aangepaste datum- en tijdnotaties voor de functie NOTATIE
Gegevenstypen wijzigen met een formule
In Power Pivot wordt het gegevenstype van de uitvoer bepaald door de bronkolommen en u kunt het gegevenstype van het resultaat niet expliciet opgeven, omdat het optimale gegevenstype wordt bepaald door Power Pivot. U kunt echter gebruikmaken van de impliciete conversies van gegevenstypen die door Power Pivot worden uitgevoerd om het uitvoergegevenstype te bewerken.
- Als u een datum of een getalreeks wilt converteren naar een getal, vermenigvuldigt u met 1,0. Met de volgende formule wordt bijvoorbeeld de huidige datum minus 3 dagen berekend, waarna het bijbehorende gehele getal wordt weergegeven.
=(VANDAAG()-3)*1,0 - Als u een datum-, getal- of valutawaarde wilt converteren naar een tekenreeks, voegt u de waarde samen met een lege tekenreeks. Met de volgende formule wordt bijvoorbeeld de datum van vandaag als een tekenreeks geretourneerd.
=""& VANDAAG()
De volgende functies kunnen er ook voor zorgen dat een bepaald gegevenstype wordt geretourneerd:
Reële getallen converteren naar gehele getallen
- AFRONDEN, functie
- PLAFOND, functie
-
AFRONDEN.BENEDEN, functie
Reële getallen, gehele getallen of datums converteren naar tekenreeksen - VAST, functie
-
FORMAT, functie
Tekenreeksen converteren naar reële getallen of datums - WAARDE, functie
- DATUMWAARDE, functie
- TIJDWAARDE, functie
Scenario: voorwaardelijke waarden en testen op fouten
Net als Excel heeft DAX functies waarmee u waarden in de gegevens kunt testen en op basis van een voorwaarde een andere waarde kunt retourneren. U kunt bijvoorbeeld een berekende kolom maken die wederverkopers labelt als Voorkeursverkoop of Waarde , afhankelijk van de jaarlijkse verkoop. Functies die waarden testen, zijn ook handig voor het controleren van het bereik of het type waarden om te voorkomen dat onverwachte gegevensfouten berekeningen verstoren.
Een waarde maken op basis van een voorwaarde
U kunt geneste ALS-voorwaarden gebruiken om waarden te testen en voorwaardelijk nieuwe waarden te genereren. De volgende onderwerpen bevatten enkele eenvoudige voorbeelden van voorwaardelijke verwerking en voorwaardelijke waarden:
Testen op fouten in een formule
In tegenstelling tot Excel kunt u geen geldige waarden in de ene rij van een berekende kolom hebben en ongeldige waarden in een andere rij. Dat wil zeggen dat als ergens in een Power Pivot-kolom een fout bevat, aan de hele kolom een fout wordt toegevoegd, zodat u altijd formulefouten moet corrigeren die tot ongeldige waarden leiden.
Als u bijvoorbeeld een formule maakt waarmee door nul wordt gedeeld, kan dit het resultaat zijn dat oneindig is of dat er een fout optreedt. Sommige formules mislukken ook als de functie een lege waarde tegenkomt, terwijl een numerieke waarde wordt verwacht. Terwijl u uw gegevensmodel ontwikkelt, kunt u het beste toestaan dat fouten worden weergegeven, zodat u op het bericht kunt klikken en het probleem kunt oplossen. Wanneer u werkmappen publiceert, moet u echter rekening houden met foutafhandeling om te voorkomen dat onverwachte waarden ertoe leiden dat berekeningen mislukken.
Als u fouten in een berekende kolom wilt voorkomen, gebruikt u een combinatie van logische en informatieve functies om te testen op fouten en altijd geldige waarden te retourneren. De volgende onderwerpen bevatten enkele eenvoudige voorbeelden van hoe u dit in DAX kunt doen:
Scenario's: Time Intelligence gebruiken
De tijdintelligente functies van DAX bevatten functies waarmee u datums of datumbereiken uit uw gegevens kunt ophalen. Vervolgens kunt u deze datums of datumbereiken gebruiken om waarden voor vergelijkbare perioden te berekenen. De tijdintelligente functies omvatten ook functies die werken met standaard datumintervallen, zodat u waarden voor maanden, jaren of kwartalen kunt vergelijken. U kunt ook een formule maken waarmee waarden voor de eerste en laatste datum van een opgegeven periode met elkaar worden vergeleken.
Zie Tijdintelligente functies (DAX) voor een lijst met tijdintelligente functies. Zie Datums in Power Pivot voor tips over het effectieve gebruik van datums en tijden in een Power Pivot-analyse.
Cumulatieve verkoop berekenen
De volgende onderwerpen bevatten voorbeelden van het berekenen van eind- en beginsaldo's. In deze voorbeelden kunt u lopende saldi maken voor verschillende intervallen, zoals dagen, maanden, kwartalen of jaren.
- CLOSINGBALANCEMONTH, functie CLOSINGBALANCEQUARTER, functie CLOSINGBALANCEYEAR, functie
- De functie OPENINGBALANCEMONTH, de functie OPENINGBALANCEQUARTER, de functie OPENINGBALANCEYEAR,
Waarden in de loop van de tijd vergelijken
De volgende onderwerpen bevatten voorbeelden van het vergelijken van totalen in verschillende perioden. De standaardperioden die door DAX worden ondersteund, zijn maanden, kwartalen en jaren.
- De functie PREVIOUSMONTH, PREVIOUSQUARTER,de functie PREVIOUSYEAR
- TOTALMTD, functieTOTALQTD, functie TOTALYTD, functie
- PARALLELPERIOD, functie
Een waarde voor een aangepast datumbereik berekenen
Zie de volgende onderwerpen voor voorbeelden van het ophalen van aangepaste periodes, zoals de eerste 15 dagen na het begin van een promotie.
- DATESINPERIOD, functie
- De functie DATUMSTUSSEN
- DATEADD, functie
- FIRSTDATE, functie
- LASTDATE, functie
Als u tijdintelligente functies gebruikt om een aangepaste set datums op te halen, kunt u die set datums gebruiken als invoer voor een functie die berekeningen uitvoert, om aangepaste aggregaties voor perioden te maken. Zie het volgende onderwerp voor een voorbeeld van hoe u dit doet:
-
Opmerking
Als het niet nodig is om een aangepast datumbereik op te geven, maar werkt met standaard boekhoudkundige eenheden, zoals maanden, kwartalen of jaren, raden wij u aan berekeningen uit te voeren met de tijdintelligente functies die voor dit doel zijn ontworpen, zoals TOTALQTD, TOTALMTD, TOTALQTD, enzovoort.
Scenario's: waarden rangschikken en vergelijken
Er zijn verschillende opties als u alleen de bovenste n items in een kolom of draaitabel wilt weergeven:
- U kunt de functies in Excel gebruiken om een topfilter te maken. U kunt ook een aantal hoogste of laagste waarden selecteren in een draaitabel. In het eerste deel van deze sectie wordt beschreven hoe u kunt filteren op de tien belangrijkste items in een draaitabel. Zie de documentatie bij Excel voor meer informatie.
- U kunt een formule maken waarmee waarden dynamisch worden gerangschikt en vervolgens filteren op de classificatiewaarden, of u kunt de rangwaarde gebruiken als een slicer. In het tweede deel van deze sectie wordt beschreven hoe u deze formule maakt en vervolgens die rangschikking in een slicer gebruikt.
Elke methode heeft voor- en nadelen.
- Het bovenste filter van Excel is eenvoudig te gebruiken, maar het filter is uitsluitend bedoeld om het weer te geven. Als de onderliggende gegevens van de draaitabel veranderen, moet u de draaitabel handmatig vernieuwen om de wijzigingen weer te geven. Als u dynamisch met classificaties wilt werken, kunt u DAX gebruiken om een formule te maken waarmee waarden worden vergeleken met andere waarden in een kolom.
- De DAX-formule is krachtiger. Bovendien kunt u, door de classificatiewaarde aan een slicer toe te voegen, gewoon op de slicer klikken om het aantal top-waarden dat wordt weergegeven te wijzigen. De berekeningen zijn echter rekenkundig kostbaar en deze methode is mogelijk niet geschikt voor tabellen met veel rijen.
Alleen de tien belangrijkste items in een draaitabel weergeven
De hoogste of laagste waarden in een draaitabel weergeven
|
|---|
Artikelen dynamisch bestellen met behulp van een formule
Het volgende onderwerp bevat een voorbeeld van hoe u DAX kunt gebruiken om een classificatie te maken die wordt opgeslagen in een berekende kolom. Aangezien DAX-formules dynamisch worden berekend, kunt u er altijd zeker van zijn dat de classificatie correct is, zelfs als de onderliggende gegevens zijn gewijzigd. Omdat de formule in een berekende kolom wordt gebruikt, kunt u de rangorde in een slicer gebruiken en vervolgens de bovenste 5, bovenste 10 of zelfs hoogste 100 waarden selecteren.