Het gebruik van berekende kolommen en berekende velden

Opmerking:  We willen u graag zo snel mogelijk de meest recente Help-inhoud in uw eigen taal bieden. Deze pagina is automatisch vertaald en kan grammaticale fouten of onnauwkeurigheden bevatten. Wij hopen dat deze inhoud nuttig voor u is. Kunt u ons onder aan deze pagina laten weten of de informatie nuttig voor u was? Hier is het Engelstalige artikel ter referentie.

Wanneer gebruikers leren hoe ze Power Pivot moeten gebruiken, ontdekken ze dat de werkelijke kracht ligt in het aggregeren of berekenen van een resultaat. Als uw gegevens een kolom bevatten met numerieke waarden, kunt u deze kolom eenvoudig aggregeren door deze te selecteren in een draaitabel of lijst met Power View-velden. Omdat de kolom numeriek is, wordt deze automatisch opgeteld, het gemiddelde berekend, geteld, of welk type aggregatie u ook selecteert. Dit wordt een impliciete meting genoemd. Impliciete metingen zijn heel handig voor snelle en eenvoudige aggregatie, maar ze hebben beperkingen en die beperkingen kunnen bijna altijd worden omzeild met expliciete metingen en berekende kolommen.

Laten we eerst naar een voorbeeld kijken waarin een berekende kolom wordt gebruikt om een nieuwe tekstwaarde toe te voegen voor elke rij in een tabel met de naam Product. Elke rij in de tabel Product bevat allerlei soorten informatie over elk product dat wordt verkocht. Er zijn kolommen voor productnaam, kleur, grootte, dealerprijs, enzovoort... We hebben een andere gerelateerde tabel met de naam Productcategorie die een kolom ProductCategoryName bevat. We willen dat elk product in de tabel Product de productcategorienaam bevat uit de tabel Productcategorie. In de tabel Product kunnen we als volgt een berekende kolom maken met de naam Productcategorie:

Berekende kolom Productcategorie

Voor de nieuwe Productcategorie-formule wordt de functie RELATED DAX gebruikt om waarden te verkrijgen uit de kolom ProductCategoryName in de gerelateerde tabel Productcategorie. Vervolgens worden deze waarden voor elk product (elke rij) in de tabel Product ingevoerd.

Dit is een goed voorbeeld van hoe een berekende kolom kan worden gebruikt om een vaste waarde toe te voegen voor elke rij die we later kunnen gebruiken in het gebied RIJEN, KOLOMMEN of FILTERS van een draaitabel of in een Power View-rapport.

Een ander voorbeeld waar we een winstmarge voor onze productcategorieën berekenen wilt maken. Dit is een algemene scenario, zelfs in een groot aantal zelfstudies. We hebben een tabel Sales in onze gegevensmodel dat transactiegegevens bevat en er is een relatie tussen de tabel Sales en de tabel productcategorie. In de tabel Sales hebben we een kolom met verkoopbedragen en een andere kolom met kosten.

We kunnen een berekende kolom maken waarin een winstbedrag voor elke rij wordt berekend door waarden in de COGS-kolom af te trekken van waarden in de kolom SalesAmount. Dit gaat als volgt:

Winstkolom in Power Pivot-tabel

We kunnen nu een draaitabel maken en het veld Productcategorie naar KOLOMMEN slepen en het nieuwe veld Winst naar het gebied WAARDEN (een kolom in een tabel in Power Pivot is een veld in de lijst met draaitabelvelden). Het resultaat is een impliciete meting genaamd Som van Winst. Het is een geaggregeerd bedrag van waarden uit de winstkolom voor elke verschillende productcategorie. Dit levert het volgende resultaat op:

Eenvoudige draaitabel

In dit geval is Winst alleen zinvol als een veld in WAARDEN. Als we Winst in het gebied KOLOMMEN zouden plaatsen, zou de draaitabel er als volgt uitzien:

Draaitabel zonder nuttige waarden

Het veld Winst geeft geen nuttige informatie als het in het gebied KOLOMMEN, RIJEN of FILTERS is geplaatst. Het veld heeft alleen nut als een geaggregeerde waarde in het gebied WAARDEN.

We hebben een kolom gemaakt met de naam Winst waarin een winstmarge wordt berekend voor elke rij in de tabel Verkoop. We hebben vervolgens Winst toegevoegd aan het gebied WAARDEN van de draaitabel, waarbij automatisch een impliciete meting wordt gemaakt en een resultaat wordt berekend voor elke productcategorie. Als u denkt dat we winst voor onze productcategorieën tweemaal hebben berekend, hebt u gelijk. We hebben eerst winst berekend voor elke rij in de tabel Verkoop en we hebben vervolgens Winst toegevoegd aan het gebied WAARDEN waar het is geaggregeerd voor elke productcategorie. Als u ook denkt dat we de berekende kolom Winst niet hadden hoeven maken, hebt u weer gelijk. Maar hoe kunnen we onze winst berekenen zonder een berekende kolom Winst te maken?

Winst kan eigenlijk beter worden berekend als een expliciete meting.

Voor nu laten we de berekende kolom Winst in de tabel Verkoop en Productcategorie in KOLOMMEN en Winst in WAARDEN van de draaitabel om onze resultaten te vergelijken.

In het berekeningsgebied van de tabel Verkoop maken we een meting met de naam Totale winst (om naamgevingsconflicten te vermijden). Uiteindelijk levert dit dezelfde resultaten op als onze eerdere procedure, maar dan zonder een berekende kolom Winst.

In de tabel Verkoop selecteren we eerst de kolom SalesAmount en klikken we vervolgens op AutoSom om een expliciete meting Som van SalesAmount te maken. Let op: een expliciete meting is een meting die we maken in het berekeningsgebied van een tabel in Power Pivot. We doen hetzelfde voor de COGS-kolom. We wijzigen de naam in Totaal SalesAmount en TotaalCOGS om ze eenvoudiger te kunnen onderscheiden.

Knop AutoSom in Power Pivot

Vervolgens maken we nog een meting met deze formule:

Totale winst:=[ Totaal SalesAmount]-[Totaal COGS]

Opmerking:  We kunnen de formule ook schrijven als Totale winst:=SOM([SalesAmount]) - SOM([COGS]). Door aparte metingen voor Totaal SalesAmount en Totaal COGS te maken, kunnen we deze ook in de draaitabel gebruiken en kunnen we ze gebruiken als argumenten in allerlei andere metingsformules.

Nadat we de opmaak van onze nieuwe meting Totale winst hebben gewijzigd in valuta, kunnen we de meting toevoegen aan de draaitabel.

Draaitabel

De nieuwe meting Totale winst geeft dezelfde resultaten als het maken van een berekende kolom Winst en het plaatsen hiervan in WAARDEN. Het verschil is dat onze meting Totale winst veel efficiënter is en ervoor zorgt dat ons gegevensmodel opgeruimder is, omdat we alleen een berekening maken voor de velden die we selecteren voor de draaitabel. We hebben die berekende kolom Winst dus niet nodig.

Waarom is dit laatste belangrijk? Met berekende kolommen worden gegevens aan het gegevensmodel toegevoegd, en gegevens nemen geheugen in beslag. Als we het gegevensmodel vernieuwen, zijn verwerkingsresources ook nodig om alle waarden in de kolom Winst opnieuw te berekenen. Het is niet nodig om dergelijke resources in beslag te nemen, omdat we onze winst willen berekenen wanneer we de velden selecteren waarvoor we Winst willen in de draaitabel, zoals productcategorieën, regio of op datum.

Laten we naar een ander voorbeeld kijken. Een voorbeeld waarin met een berekende kolom resultaten worden geproduceerd die op het eerste oog correct zijn, maar...

In dit voorbeeld willen we verkoopbedragen berekenen als percentage van de totale verkoop. We maken als volgt een berekende kolom met de naam % van Verkoop in de tabel Verkoop:

Berekende kolom % van verkoop

Met deze formule wordt het volgende aangegeven: Deel voor elke rij in de tabel Verkoop het bedrag in de kolom SalesAmount door het somtotaal van alle bedragen in de kolom SalesAmount.

Als we een draaitabel maken en Productcategorie toevoegen aan KOLOMMEN en onze nieuwe kolom % van Verkoop selecteren om deze in WAARDEN te plaatsen, krijgen we een somtotaal van % van Verkoop voor elke productcategorie.

Draaitabel met de som van % van de verkopen voor productcategorieën

OK. Dit ziet er tot nu toe prima uit. Maar laten we een slicer toevoegen. We voegen Kalenderjaar toe en selecteren vervolgens een jaar. In dit geval selecteren we 2007. Dit is het resultaat.

Som van verkooppercentage onjuist resultaat in draaitabel

Op het eerste gezicht ziet dit er nog steeds correct uit. Maar onze percentages moeten in totaal 100% zijn, omdat we het percentage van de totale verkoop willen weten voor elke productcategorie voor 2007. Dus wat is er verkeerd gegaan?

Met de kolom % van Verkoop is een percentage berekend voor elke rij die de waarde is in de kolom SalesAmount, gedeeld door het somtotaal van alle waarden in de kolom SalesAmount. Waarden in een berekende kolom zijn vast. Ze zijn een onveranderbaar resultaat voor elke rij in de tabel. Toen we % van Verkoop aan de draaitabel toevoegden, werd deze kolom geaggregeerd als een som van alle waarden in de kolom SalesAmount. Deze som van alle waarden in de kolom % van Verkoop is altijd 100%.

Tip: Zorg ervoor dat lezen Context in DAX-formules. Biedt een goed inzicht in niveau rijcontext en filtercontext, dat wil zeggen wat we hier zijn beschrijven.

We kunnen onze berekende kolom % van Verkoop verwijderen, omdat we hier niets aan hebben. In plaats daarvan gaan we een meting maken waarmee het percentage van totale verkoop correct wordt berekend, ongeacht eventuele filters of slicers die zijn toegepast.

Eerder hebben we de meting Totaal SalesAmount gemaakt, waarmee de kolom SalesAmount gewoonweg wordt opgeteld. We hebben deze gebruikt als een argument in de meting Totale winst en we gaan deze nogmaals gebruiken als een argument in ons nieuwe berekende veld.

Tip:  Het maken van expliciete metingen zoals Totaal SalesAmount en Totaal COGS is niet alleen nuttig in een draaitabel of rapport, maar ze zijn ook nuttig als argumenten in andere metingen wanneer u het resultaat als een argument nodig hebt. Hierdoor worden uw formules efficiënter en beter leesbaar. Dit is een goede gewoonte bij gegevensmodellering.

We maken een nieuwe meting met de volgende formule:

% van Totale verkoop:=([Totaal SalesAmount]) / CALCULATE ([Totaal SalesAmount], ALLSELECTED())

Met deze formule wordt het volgende aangegeven: Deel het resultaat van Totaal SalesAmount door het somtotaal van SalesAmount zonder kolom- of rijfilters behalve de filters die zijn gedefinieerd in de draaitabel.

Tip:  Lees de informatie over de functies CALCULATE en ALLSELECTED in de DAX-naslag.

Als we nu de nieuwe meting % van totale verkoop aan de draaitabel toevoegen, krijgen we het volgende:

Som van verkooppercentage juist resultaat in draaitabel

Dat ziet er beter uit. Nu wordt de meting % van totale verkoop voor elke productcategorie berekend als een percentage van de totale verkoop voor het jaar 2007. Als we in de slicer CalenderYear een ander jaar of meerdere jaren selecteren, krijgen we nieuwe percentages voor onze productcategorieën, maar is ons eindtotaal nog altijd 100%. We kunnen ook andere slicers en filters toevoegen. Onze meting % van totale verkoop levert altijd een percentage van de totale verkoop op, ongeacht eventuele slicers of filters die zijn toegepast. Met metingen wordt het resultaat altijd berekend volgens de context die wordt bepaald door de velden in KOLOMMEN en ROWS en door filters of slicers die zijn toegepast. Dit is het grote voordeel van metingen.

Hier volgen enkele richtlijnen om u te helpen bepalen of een berekende kolom of een meting de juiste keuze is voor een bepaalde berekening:

Berekende kolommen gebruiken

  • Als u uw nieuwe gegevens worden weergegeven in rijen, kolommen of in FILTERS in een draaitabel, of op een as, LEGENDA, of naast elkaar op in een Power View-visualisatie wilt, moet u een berekende kolom. Net als normale kolommen met gegevens, berekende kolommen kunnen worden gebruikt als een veld in een gebied en als ze numerieke zijn ze kunnen worden samengevoegd in waarden te.

  • Als u wilt dat uw nieuwe gegevens een vaste waarde voor de rij zijn. U hebt bijvoorbeeld een datumtabel met een kolom met datums en u wilt nog een kolom die alleen het nummer van de maand bevat. U kunt een berekende kolom maken waarmee alleen het maandnummer uit de datums in de kolom Datum wordt berekend. Voorbeeld: =MONTH('Date'[Datum]).

  • Als u een tekstwaarde aan een tabel wilt toevoegen voor elke rij, gebruikt u een berekende kolom. Velden met tekstwaarden kunnen nooit in WAARDEN worden geaggregeerd. Voorbeeld: =FORMAT('Date'[Datum],"mmmm") geeft ons de naam van de maand voor elke datum in de kolom Datum in de tabel Datum.

Metingen gebruiken

  • Als het resultaat van uw berekening altijd afhankelijk is van de andere velden die u selecteert in een draaitabel.

  • Als u complexere berekeningen, zoals een telling berekenen op basis van een filter, of een jaar-op-jaar-berekening of een afwijkingsberekening wilt uitvoeren, gebruikt u een berekend veld.

  • Als u de werkmap zo klein mogelijk wilt houden en de prestaties wilt maximaliseren, maakt u van zoveel mogelijk berekeningen metingen. In veel gevallen kunnen al uw berekeningen metingen zijn, waardoor de werkbladgrootte aanzienlijk wordt verkleind en de tijd die nodig is voor vernieuwen korter is.

In gedachten houden, wordt er niets er mis met het maken van berekende kolommen zoals we hebben gedaan met onze kolom winst en deze vervolgens samenvoegen in een draaitabel of het rapport. Dit is daadwerkelijk een echt goede en eenvoudige manier om meer informatie over en uw eigen berekeningen te maken. Als uw lidmaatschap van deze twee erg krachtige functies van Power Pivot omvang groeit, wilt u de meest efficiënte en nauwkeurige gegevensmodel dat u kunt maken. Hopelijk helpt geleerde hier. Zijn er enkele andere echt geweldige informatiebronnen uitfaden er waarmee u ook kunt. Hier volgen een paar: Context in DAX-formules, aggregaties in Power Pivoten DAX Resource Center. En, terwijl deze heeft minder geavanceerde en gericht op financieel en Financiën professionals, de steekproef winst en Verliesgegevensmodellen en analyse met Microsoft Power Pivot in Excel is geladen met uitstekende gegevensmodellering en voorbeelden van formules.

Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×