Dynamische opmaakreeksen maken voor metingen
VAN TOEPASSING OP: Power BI Desktop-Power BI-service
Met dynamische notatietekenreeksen voor metingenkunt u bepalen hoe metingen worden weergegeven in visuals door voorwaardelijk een notatietekenreeks met een afzonderlijke DAX-formule toe te passen.
Dynamische notatietekenreeksen overwinnen een inherent nadeel van het gebruik van de functie FORMAT. Met FORMAT worden zelfs numerieke gegevenstypen geretourneerd als een tekenreeks, die mogelijk niet werkt met visuals waarvoor numerieke waarden zijn vereist, zoals grafieken. Wanneer u tekenreeksen met dynamische notatie gebruikt, blijft het gegevenstype behouden en wordt de meting niet gedwongen om over te schakelen naar een tekenreeksgegevenstype. Hiermee worden verschillende notatietekenreeksen toegepast op de meting, afhankelijk van de context.
Tekenreeksen met dynamische opmaak kunnen ook worden gebruikt met berekeningsgroepen. Dezelfde DAX-patronen die met berekeningsgroepen werken, kunnen ook worden gebruikt in tekenreeksen voor dynamische notatie voor metingen, maar het bereik is beperkt tot afzonderlijke metingen in plaats van alle metingen in het model. Zie Berekeningsgroepen - Tekenreeksen met dynamische notatie voor meer informatie.
Dynamische formaatreeksen creëren
Om een dynamische opmaaktekenreeks te maken
Selecteer in het deelvenster Gegevens de meting waarvoor u een tekenreeks voor dynamische opmaak wilt opgeven.
Selecteer Dynamisch in de sectie Opmaak van het lint Meetgereedschappen en kies Opmaak in de lijst. Links van de DAX-formulebalk wordt een nieuwe keuzelijst weergegeven met Opmaak die al is geselecteerd. In deze dropdown kunt u overschakelen tussen de DAX-expressie voor statische metingen en de DAX-expressie voor dynamische opmaakreeksen. Welke statische formaat tekenreeks er ook werd gebruikt voordat er naar Dynamisch werd overgeschakeld, wordt vooraf ingevuld als een tekenreeks in de DAX-formulebalk.
Overschrijf de tekenreeks met een DAX-expressie die het juiste notatieformaat voor uw meting genereert. Met de volgende expressie wordt bijvoorbeeld de gewenste tekenreeks voor de valutanotatie opgezoekt uit de tabel Landvalutanotatietekenreeksen:
Controleer of de dynamische opmaak tekenreeks werkt in een visual.
Als u de tekenreeks voor dynamische opmaak wilt verwijderen en wilt terugkeren naar een tekenreeks met statische opmaak, selecteer dan in de sectie Opmaak in de >Opmaak-lijst een andere opmaakoptie. Omdat deze actie niet ongedaan is, wordt er een dialoogvenster weergegeven waarin u wordt gevraagd of u wilt doorgaan. Als u weer een dynamisch formaat wilt gebruiken, moet u de DAX-expressie opnieuw invoeren.
Voorbeeld
De beste manier om meer te weten te komen over een nieuwe functie is om het zelf te proberen. U kunt precies dat doen met het PBIX-voorbeeldbestand Adventure Works 2020, dat beschikbaar is bij het DAX-voorbeeldmodel. Met behulp van het voorbeeldmodel kunt u valutaconversie toevoegen om het geconverteerde verkoopbedrag per jaar weer te geven. Nadat u het hebt gedownload, opent u het bestand in Power BI Desktop.
Nieuwe tabellen maken
Het voorbeeldmodel bevat niet alle gegevens die nodig zijn om tekenreeksen voor dynamische opmaak te maken en te gebruiken. Om aan de slag te gaan, moet u eerst twee tabellen toevoegen.
Selecteer op het Start-lint Gegevens invoeren.
Voer in het dialoogvenster Tabel maken de volgende tabelnaam in en kopieer en plak de volgende tabel:
Tabelnaam: Landvaluta formaat tekenreeksen
Land/regio Valuta Notatie Australië Dollar AU$#,0,00 Canada Dollar C$#,0,00 Denemarken Kroon kr#,0 Eurozone Euro € #,0,00 Japan Yen ¥ #,0 Zweden Kroon kr#,0 Zwitserland Frank CHF#,0,00 Verenigd Koninkrijk Pond £ #,0 Verenigde Staten Dollar US$#,0,00 Controleer of de tabel er juist uitziet en klik vervolgens op Laden.
Herhaal de vorige stappen voor de volgende tabel:
Tabelnaam: Jaarlijkse gemiddelde wisselkoersen
Land/regio Valuta Jaar Jaarlijkse gemiddelde wisselkoers Australië Dollar 2022 1.442 Australië Dollar 2021 1.332 Australië Dollar 2020 1.452 Australië Dollar 2019 1.439 Australië Dollar 2018 1.34 Australië Dollar 2017 1,358 Canada Dollar 2022 1.301 Canada Dollar 2021 1.254 Canada Dollar 2020 1.341 Canada Dollar 2019 1,327 Canada Dollar 2018 1.297 Canada Dollar 2017 1.35 Denemarken Kroon 2022 7.077 Denemarken Kroon 2021 6.29 Denemarken Kroon 2020 6.538 Denemarken Kroon 2019 6.67 Denemarken Kroon 2018 6.319 Denemarken Kroon 2017 6.864 Eurozone Euro 2022 0.951 Eurozone Euro 2021 0.846 Eurozone Euro 2020 0.877 Eurozone Euro 2019 0.893 Eurozone Euro 2018 0.848 Eurozone Euro 2017 0.923 Japan Yen 2022 131.454 Japan Yen 2021 109.817 Japan Yen 2020 106.725 Japan Yen 2019 109.008 Japan Yen 2018 110.424 Japan Yen 2017 116.667 Zweden Kroon 2022 10.122 Zweden Kroon 2021 8.584 Zweden Kroon 2020 9.205 Zweden Kroon 2019 9.457 Zweden Kroon 2018 8.703 Zweden Kroon 2017 8.894 Zwitserland Franc 2022 0.955 Zwitserland Franc 2021 0.914 Zwitserland Frank 2020 0.939 Zwitserland Franc 2019 0.994 Zwitserland Franc 2018 0.979 Zwitserland Frank 2017 1.024 Verenigd Koninkrijk Pond 2022 0.811 Verenigd Koninkrijk Pond 2021 0.727 Verenigd Koninkrijk Pond 2020 0.779 Verenigd Koninkrijk Pond 2019 0,784 Verenigd Koninkrijk Pond 2018 0.75 Verenigd Koninkrijk Pond 2017 0.808
Een kolom Jaar maken
Er is een nieuwe jaarkolom nodig in de bestaande tabel Datum.
Klik in de modelweergave met de rechtermuisknop op de tabel Datum en selecteer vervolgens Nieuwe kolom.
Voer in de DAX-formulebalk de volgende expressie in:
Year = YEAR([Date])
en druk vervolgens op Enter.
Relaties maken
Er zijn relaties nodig tussen de nieuwe tabellen jaarlijkse gemiddelde wisselkoersen en landnotatietekenreeksen, en tussen de tabel Jaarlijkse gemiddelde wisselkoersen en de bestaande tabel Datum.
Als u Autodetectie voor relaties hebt ingeschakeld, is de relatie tussen landvalutanotatie en jaarlijkse gemiddelde wisselkoersen in de kolom Land mogelijk voor u gemaakt. Als dat niet het is, maakt u deze relatie:
- Tabel 1: Jaarlijkse gemiddelde wisselkoersen
- Tabel 1 Kolom: Land
- Kardinaliteit: Veel tot één
- Tabel 2: Notatietekenreeksen voor landvaluta
- Tabel 2 Kolom: Land
- Deze relatie actief maken: Ja
- Kruisfilterrichting: Enkel
De relatie moet er als volgt uitzien:
Als u Autodetectie hebt ingeschakeld voor relaties, is er mogelijk een relatie tussen landvaluta-opmaakreeksen en verkoopgebied op de kolom Land gemaakt. Deze relatie is echter niet juist voor ons model. Verwijder deze relatie in de modelweergave .
Maak in plaats daarvan een relatie tussen jaarlijkse gemiddelde wisselkoersen en datum in de kolom Year .
- Tabel 1: Jaarlijkse gemiddelde wisselkoersen
- Tabel 1 Kolom: Jaar
- Kardinaliteit: veel-op-veel
- Tabel 2: Datum
- Tabel 2 Kolom: Jaar
- Deze relatie actief maken: Ja
- Kruisfilterrichting: Enkelvoudig ('Jaargemiddelde wisselkoers' filtert 'Datum')
De relatie moet er als volgt uitzien:
Sla uw model op.
Een metinggroepstabel maken
Met een maateenheidgroep kunt u verschillende metingen ordenen door ze in één tabel te hebben.
Selecteer Gegevens invoeren op het Start-lint.
Laat in het Dialoogvenster Tabel Maken de waarden leeg. Geef de tabel Verkoopmetingen een naam en klik vervolgens op Laden. Deze tabel bevat uw nieuwe metingen.
Maatregelen opstellen
Vouw in het deelvenster Gegevens de maateenheden uit en klik met de rechtermuisknop op Verkoopmetingen en selecteer vervolgens Nieuwe meting. Voer de volgende DAX-expressie in de DAX-formulebalk in en druk op Enter:
Sales Amount = SUM(Sales[Sales Amount])
Dit ziet er als volgt uit:
Klik in Verkoopmetingen met de rechtermuisknop op Kolom1 en selecteer Verbergen in de rapportweergave. Hiermee worden verkoopmaatregelen gewijzigd in een maatregelgroep, die nu bovenaan het deelvenster Gegevens wordt weergegeven met een pictogram voor een maatregelgroep, zoals hieronder weergegeven.
U kunt nu een meting maken om de wisselkoers te berekenen. Klik met de rechtermuisknop op Verkoopmetingen, selecteer Nieuwe meting, voer de volgende expressie in de DAX-formulebalk in en druk op Enter:
Exchange Rate (Yearly Avg) = IF ( ISBLANK ( SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) ) || SELECTEDVALUE ( 'Country Currency Format Strings'[Country] ) = "United States", 1, AVERAGE ( 'Yearly Average Exchange Rates'[Yearly Average Exchange Rate] ) )
U maakt nu een andere meting om de meting Verkoopbedrag te converteren naar andere valuta's. Klik met de rechtermuisknop op Verkoopmetingen, selecteer Nieuwe meting, voer de volgende expressie in de DAX-formulebalk in en druk op Enter:
Converted Sales Amount = SUMX('Date', CALCULATE( [Sales Amount] * [Exchange Rate (Yearly Avg)]))
De verkoopmeetwaarden meetgroep moeten er nu als volgt uitzien:
Een rapport maken
Ga naar de rapportweergave. Voeg een nieuwe, lege pagina toe aan het rapport.
Voeg een lijndiagramvisual toe aan uw nieuwe rapportpagina. U gebruikt deze visual om uw meting te bekijken voordat u de dynamische opmaakreeks voor metingen toevoegt.
Selecteer Geconverteerde verkoophoeveelheid in het deelvenster >. Zonder ergens anders te klikken, selecteert u ook Year in de tabel Date.
Kopieer en plak de visual zodat u twee visuals voor een lijndiagram hebt. Wijzig de tweede lijndiagramvisual in een tabelvisual en verplaats deze vervolgens onder het lijndiagram, zoals hieronder:
Voeg een slicervisual toe aan uw rapportpagina. Voeg in het lint OpmaakLand uit de tabel Landvalutanotatiereeksen toe aan de slicer.
Rangschik de visuals opnieuw totdat ze een betere indeling hebben, ongeveer als volgt:
Hoewel dit niet vereist is, kunt u visuele eigenschappen wijzigen om een mooier rapport te maken:
Snijder
- Slicer-instellingen: Eén selectie
- Grootte en stijl, opvulling: 10 px, alle randen
- Grootte en stijl, visuele rand: lichtgrijs, 10 px afgeronde hoeken
- Slicerinstellingen, Stijl: Tegel
- Slicer-koptekst: Uit
- Waarden, rand: links, #333333, 6 lijnbreedte
Tabel
- Grootte en stijl, opvulling: 10 px, alle randen
- Grootte en stijl, visuele rand: lichtgrijs, 10 px afgeronde hoeken
- Raster, horizontale rasterlijnen: Wit, 2 breedte
- Raster, verticale rasterlijnen: Wit, 2 breedte
- Raster, rand: wit
- Raster, opties: 2 rijen ruimte
- Waarden, Waarden: achtergrondkleur #F6F4F4
- Waarden, waarden: Afwisselende achtergrondkleur #F6F4F4
- Kolomkoppen, Tekst: Vet, Tekstkleur wit, Achtergrondkleur #0D6ABF
Lijndiagram
- Grootte en stijl, opvulling: 10 px, alle randen
- Grootte en stijl, visuele rand: lichtgrijs, 10 px afgeronde hoeken
- Titel, ondertitel: aan
- Y-as, Titel: Uit
- Y-as: Uit
- Markeringen: Aan
- Gegevenslabels: Aan
- Gegevenslabels, Waarden: Vet, Blauw
Canvas (optioneel)
- Achtergrond van canvas: lichtgrijs, 85% transparantie
Met deze visuele eigenschappen krijgt u een mooie rapportpagina, zoals deze:
Een tekenreeks voor dynamische opmaak maken
Als u verschillende landnamen in de slicer selecteert, wordt de meting Geconverteerde verkoophoeveelheid weergegeven in visuals, maar niet in de juiste indeling voor dat land of die regio.
Selecteer Geconverteerde verkoophoeveelheid in het deelvenster >.
Klik in het lint Hulpmiddelen voor meten op de keuzelijst Opmaak en selecteer Dynamisch.
In de vervolgkeuzelijst links van de formulebalk moet nu Opmaak worden opgegeven. De formule in de formulebalk moet een opmaaktekenreeks hebben. Vervang de notatietekenreeks door de volgende DAX-expressie en druk op Enter:
SELECTEDVALUE ( 'Country Currency Format Strings'[Format], "\$#,0.00;(\$#,0.00);\$#,0.00" )
Dit ziet er als volgt uit:
Selecteer een ander land in de slicer. In de tabel- en lijndiagramvisuals moet nu het geconverteerde valutabedrag, in de juiste indeling, voor dat land of die regio worden weergegeven. Selecteer een ander land/andere regio in de slicer om te zien hoe de visuals veranderen.
Sla uw model op.
Bekende problemen en overwegingen
Visuals hebben opmaakopties die van invloed kunnen zijn op hoe de opmaaktekenreeks wordt weergegeven. Als de opmaak onverwacht wordt weergegeven in een visual, gaat u naar de opties voor visuele opmaak, zoekt u naar weergave-eenheden en wijzigt u deze van Automatisch in Geen.
De maatregel zelf kan direct worden verwezen in zijn dynamische formaatstring door de naam te gebruiken, zoals [Measure A], of indirect door gebruik te maken van
SELECTEDMEASURE()
.Dynamische opmaakreeksen voor metingen zijn alleen bedoeld voor metingen in het model. Rapportmetingen die kunnen worden toegevoegd aan een liveverbindingsrapport, kunnen geen tekenreeksen voor dynamische opmaak voor metingen hebben.
Wanneer u met DirectQuery voor Analysis Services op Wijzigingen aanbrengen in dit model klikt in een liveverbindingsrapport, wordt de verbinding met de DirectQuery over Analysis Services verplaatst. Over het algemeen kunt u wijzigingen aanbrengen in de notatietekenreeksen van de externe modelmetingen. Met tekenreeksen voor dynamische opmaak voor metingen:
- Externe modelmetingen met gedefinieerde dynamische opmaaktekenreeksen worden geblokkeerd om wijzigingen aan te brengen in een statische opmaaktekenreeks of in een andere, dynamische opmaaktekenreeks-DAX-expressie.
- Metingen voor externe modellen kunnen niet worden gewijzigd van een statische opmaakstring naar een DAX-expressie voor dynamische opmaak die in het lokale model is gedefinieerd.
- Lokale modelmetingen kunnen geen gebruik maken van dynamische opmaakreeksen voor metingen.