Gegevenstypen in Power BI

In dit artikel worden gegevenstypen beschreven die door Power BI en DAX (Data Analysis Expressions) worden ondersteund.

Wanneer Power BI gegevens laadt, wordt geprobeerd de gegevenstypen van bronkolommen te converteren naar gegevenstypen die efficiëntere opslag, berekeningen en gegevensvisualisatie ondersteunen. Als een kolom met waarden die u importeert uit Excel bijvoorbeeld geen breukwaarden bevat, converteert Power BI de gegevenskolom naar een gegevenstype Geheel getal , dat beter geschikt is voor het opslaan van gehele getallen.

Dit concept is belangrijk omdat sommige DAX-functies speciale vereisten voor gegevenstypen hebben. In veel gevallen converteert DAX impliciet gegevenstypen, maar in sommige gevallen niet. Als voor een DAX-functie bijvoorbeeld een datumgegevenstype is vereist, maar het gegevenstype voor uw kolom Text is, werkt de DAX-functie niet correct. Het is dus belangrijk en handig om de juiste gegevenstypen voor kolommen te gebruiken.

Het gegevenstype van een kolom bepalen en opgeven

In Power BI kunt u het gegevenstype van een kolom bepalen en opgeven in de Power Query-editor, in de tabelweergave of in de rapportweergave:

  • Selecteer in de Power Query-editor de kolom en selecteer vervolgens Gegevenstype in de groep Transformeren van het lint.

    Schermopname van de Power Query-editor met de vervolgkeuzelijst Gegevenstype.

  • Selecteer de kolom in de tabelweergave of rapportweergave en selecteer vervolgens de vervolgkeuzepijl naast het gegevenstype op het tabblad Hulpmiddelen voor kolommen op het lint.

    Schermopname van tabelweergave, met de vervolgkeuzelijst Gegevenstype.

U kunt ook gegevenstypen instellen in Power Query M-code met behulp van de geavanceerde editor. Zie Table.TransformColumnTypes en Typen en typeconversie voor meer informatie over M-gegevenstypen en de functie.

De vervolgkeuzelijst Gegevenstype in De Power Query-editor bevat twee gegevenstypen die niet aanwezig zijn in de tabelweergave of rapportweergave: Datum/tijd/tijdzone en Duur. Wanneer u een kolom met deze gegevenstypen in het Power BI-model laadt, wordt een datum-/tijd-/tijdzonekolom omgezet in een datum /tijd-gegevenstype en wordt de kolom Duur omgezet in een gegevenstype Decimale getallen .

Het binaire gegevenstype wordt niet ondersteund buiten de Power Query-editor. In de Power Query-editor kunt u het binaire gegevenstype gebruiken wanneer u binaire bestanden laadt als u deze converteert naar andere gegevenstypen voordat u het in het Power BI-model laadt. De binaire selectie bestaat om verouderde redenen in de tabelweergave en rapportweergavemenu's, maar als u binaire kolommen probeert te laden in het Power BI-model, kunnen er fouten optreden.

Getaltypen

Power BI ondersteunt drie getaltypen: Decimaal getal, Vast decimaal getal en Geheel getal.

U kunt de Tabular Object Model (TOM) kolom DataType eigenschap gebruiken om de DataType Enums voor getaltypen op te geven. Zie Programmatische Power BI-modellen met het tabellaire objectmodel voor meer informatie over het programmatisch wijzigen van objecten in Power BI.

Decimaal getal

Decimaal getal is het meest voorkomende getaltype en kan getallen verwerken met breukwaarden en gehele getallen. Decimaal getal vertegenwoordigt 64-bits drijvendekommanummers (acht bytes) met negatieve waarden van -1,79E +308 tot en met -2.23E -308, positieve waarden van 2.23E -308 tot en met 1,79E +308 en 0. Getallen zoals 34, 34,01 en 34.000367063 zijn geldige decimale getallen.

De hoogste precisie die het type decimaal getal kan vertegenwoordigen, is 15 cijfers. Het decimaalteken kan overal in het getal voorkomen. Dit type komt overeen met de manier waarop excel de getallen opslaat en TOM geeft dit type op als DataType.Double Enum.

Vast decimaal getal

Het gegevenstype Vast decimaal getal heeft een vaste locatie voor het decimaalteken. Het decimaalteken heeft altijd vier cijfers aan de rechterkant en staat 19 significante cijfers toe. De grootste waarde die het vaste decimaal getal kan vertegenwoordigen, is positief of negatief 922.337.203.685.477,5807.

Het type vast decimaal getal is handig in gevallen waarin afronding fouten kan veroorzaken. Getallen met kleine breukwaarden kunnen zich soms opstapelen en ertoe leiden dat een getal iets onnauwkeurig wordt. Het type vast decimaal getal kan u helpen dit soort fouten te voorkomen door de waarden af te kapen boven de vier cijfers rechts van het decimaalteken.

Dit gegevenstype komt overeen met het decimaalteken van SQL Server (19,4) of het gegevenstype Valuta in Analysis Services en Power Pivot in Excel. TOM geeft dit type op als DataType.Decimal Enum.

Geheel getal

Geheel getal vertegenwoordigt een 64-bits integer (acht bytes). Omdat het een geheel getal is, heeft geheel getal geen cijfers rechts van de decimale plaats. Dit type maakt 19 cijfers van positieve of negatieve gehele getallen mogelijk tussen -9.223.372.036.854.775.807 (-2^63+1) en 9.223.372.036.854.775.806 (2^63-2), zodat de grootst mogelijke getallen van de numerieke gegevenstypen kunnen worden vertegenwoordigd.

Net als bij het vaste decimaaltype kan het gehele getaltype handig zijn wanneer u afronding wilt beheren. TOM vertegenwoordigt het gegevenstype Geheel getal als DataType.Int64 Enum.

Opmerking

Het Power BI-gegevensmodel ondersteunt 64-bits integerwaarden, maar vanwege beperkingen van JavaScript kan het grootste aantal dat Power BI-visuals veilig kunnen uitdrukken 9.007.199.254.740.991 (2^53-1) zijn. Als uw gegevensmodel grotere getallen heeft, kunt u de grootte ervan verkleinen via berekeningen voordat u ze toevoegt aan visuals.

Nauwkeurigheid van berekeningen van het getaltype

Kolomwaarden van het gegevenstype Decimale getallen worden opgeslagen als gegevenstypen bij benadering , volgens de IEEE 754 Standard voor drijvendekommagetallen. Gegevenstypen bij benadering hebben inherente precisiebeperkingen, omdat in plaats van exacte getalwaarden op te slaan, ze mogelijk extreem dicht of afgeronde benaderingen opslaan.

Precisieverlies of onnauwkeurigheid kan optreden als de drijvende-komma-waarde het aantal drijvende-komma-cijfers niet betrouwbaar kan kwantificeren. Onnauwkeurigheid kan mogelijk worden weergegeven als onverwachte of onnauwkeurige berekeningsresultaten in sommige rapportagescenario's.

Vergelijkingsberekeningen met betrekking tot gelijkheid tussen waarden van het gegevenstype Decimaal getal kunnen mogelijk onverwachte resultaten opleveren. Gelijkheidsvergelijkingen =zijn gelijk aan, groter dan >, kleiner dan <, groter dan of gelijk aan >=, en kleiner dan of gelijk aan <=.

Dit probleem is het duidelijkst wanneer u de functie RANKX gebruikt in een DAX-expressie, waarmee het resultaat tweemaal wordt berekend, wat resulteert in iets verschillende getallen. Rapportgebruikers merken mogelijk niet het verschil tussen de twee getallen, maar het rangschikkingsresultaat kan merkbaar onnauwkeurig zijn. Als u onverwachte resultaten wilt voorkomen, kunt u het kolomgegevenstype wijzigen van Decimaal getal in Vast decimaal getal of Geheel getal, of een geforceerde afronding uitvoeren met BEHULP van AFRONDEN. Het gegevenstype Vaste decimale getallen heeft een grotere precisie, omdat het decimaalteken altijd vier cijfers rechts heeft.

Zelden kunnen berekeningen die de waarden van een kolom met gegevenstype Decimaal getal optellen onverwachte resultaten opleveren. Dit resultaat is waarschijnlijk met kolommen met grote hoeveelheden positieve getallen en negatieve getallen. Het resultaat van de som wordt beïnvloed door de verdeling van waarden tussen rijen in de kolom.

Als een berekening de meeste positieve getallen optelt voordat de meeste negatieve getallen worden opgeteld, kan de grote positieve gedeeltelijke som aan het begin de resultaten scheeftrekken. Als de berekening een evenwichtige positieve en negatieve getallen toevoegt, behoudt de query meer precisie en retourneert deze dus nauwkeurigere resultaten. Als u onverwachte resultaten wilt voorkomen, kunt u het gegevenstype kolom wijzigen van Decimaal getal in Vast decimaal getal of Geheel getal.

Datum-/tijdtypen

Power BI ondersteunt vijf datum/tijd-gegevenstypen in de Power Query-editor. Zowel datum/tijd/tijdzone als duur worden als volgt geconverteerd tijdens het laden in het gegevensmodel:

Datum/tijd vertegenwoordigt zowel een datum- als tijdwaarde. De onderliggende datum/tijd-waarde wordt opgeslagen als een decimaal getal, zodat u daadwerkelijk tussen de twee kunt converteren. Het tijdgedeelte wordt opgeslagen als een breuk tot gehele veelvouden van 1/300 seconden (3,33 ms). Het gegevenstype ondersteunt datums tussen jaren 1900 en 9999.

Datum vertegenwoordigt alleen een datum zonder tijdgedeelte. Een datum wordt omgezet in het model als een datum/tijd-waarde met nul voor de breukwaarde.

Tijd vertegenwoordigt slechts een tijd zonder datumgedeelte. Een tijd wordt omgezet in het model als een datum/tijd-waarde zonder cijfers links van het decimaalteken.

Datum/tijd/tijdzone vertegenwoordigt een UTC-datum/tijd met een tijdzone-offset en converteert naar datum/tijd wanneer deze in het model wordt geladen. Het Power BI-model past de tijdzone niet aan op basis van de locatie of landinstelling van een gebruiker. Een waarde van 09:00 uur die in het model in de VS is geladen, wordt weergegeven als 09:00 wanneer het rapport wordt geopend of bekeken.

De duur vertegenwoordigt een tijdsduur en wordt geconverteerd naar een decimaal getal wanneer deze in het model wordt geladen. Daarom kunt u de waarden optellen of aftrekken van datum/tijd-waarden met de juiste resultaten en deze eenvoudig gebruiken in visualisaties die de grootte weergeven.

Opmerking

U kunt een geconverteerde datum/tijd-waarde in het model verder opmaken als datum of tijd met behulp van de gegevenstypeninterface in de rapport-, tabel- en modelweergave. Houd er rekening mee dat de opmaak niet verandert hoe gegevens worden opgeslagen in het model en dat berekeningen of relaties nog steeds worden geëvalueerd met de datum/tijd-gegevens die zijn opgeslagen, onafhankelijk van opmaak.

Teksttype

Het gegevenstype Tekst is een Unicode-tekenreeks, die kan bestaan uit letters, cijfers of datums die in een tekstindeling worden weergegeven. De praktische maximumlimiet voor tekenreekslengte is ongeveer 32.000 Unicode-tekens, op basis van de onderliggende Power Query-engine van Power BI en de limieten voor lengten van tekstgegevenstypen . Tekstgegevenstypen die buiten de praktische maximumlimiet vallen, leiden waarschijnlijk tot fouten.

De manier waarop tekstgegevens worden opgeslagen in Power BI, kan ertoe leiden dat de gegevens in bepaalde situaties anders worden weergegeven. In de volgende secties worden veelvoorkomende situaties beschreven waardoor tekstgegevens enigszins kunnen worden gewijzigd tussen het opvragen van gegevens in de Power Query-editor en het laden ervan in Power BI.

Hoofdlettergevoelig

De engine waarmee gegevens in Power BI worden opgeslagen en opgevraagd, is niet hoofdlettergevoelig en behandelt verschillende hoofdletters van letters als dezelfde waarde. "A" is gelijk aan "a". Power Query is echter hoofdlettergevoelig, waarbij 'A' niet hetzelfde is als 'a'. Het verschil in hoofdlettergevoeligheid kan leiden tot situaties waarin tekstgegevens schijnbaar onbegrijpelijk worden gewijzigd na het laden in Power BI.

In het volgende voorbeeld ziet u ordergegevens: een OrderNo-kolom die uniek is voor elke order en een adresadreskolom met de naam van de geadresseerde die handmatig is ingevoerd tijdens de order. De Power Query-editor toont verschillende orders met dezelfde adreseenamen die in het systeem zijn ingevoerd met verschillende hoofdletters.

Schermopname van tekstgegevens met verschillende hoofdletters in Power Query

Nadat de gegevens in Power BI zijn geladen, verandert het hoofdlettergebruik van de dubbele namen op het tabblad Gegevens van de oorspronkelijke vermelding in een van de hoofdlettervarianten.

Schermopname van de tekstgegevens met gewijzigde hoofdlettergebruik na het laden in Power BI.

Deze wijziging treedt op omdat de Power Query-editor hoofdlettergevoelig is, zodat de gegevens exact worden weergegeven als opgeslagen in het bronsysteem. De engine waarin gegevens in Power BI worden opgeslagen, is niet hoofdlettergevoelig, dus worden de kleine letters en hoofdletters van een teken als identiek behandeld. Power Query-gegevens die in de Power BI-engine zijn geladen, kunnen dienovereenkomstig worden gewijzigd.

De Power BI-engine evalueert elke rij afzonderlijk wanneer er gegevens worden geladen, beginnend vanaf de bovenkant. Voor elke tekstkolom, zoals Addressee, slaat de engine een woordenlijst met unieke waarden op om de prestaties te verbeteren via gegevenscompressie. De engine ziet de eerste drie waarden in de kolom Addressee als uniek en slaat deze op in de woordenlijst. Daarna evalueert de engine, omdat deze niet hoofdlettergevoelig is, de namen als identiek.

De engine ziet de naam 'Taina Hasu' als identiek aan 'TAINA HASU' en 'Taina HASU', dus deze slaat deze variaties niet op, maar verwijst naar de eerste variatie die is opgeslagen. De naam 'MURALI DAS' verschijnt in hoofdletters, omdat de naam de eerste keer dat de engine deze heeft geëvalueerd, zo verscheen bij het laden van de gegevens van boven naar beneden.

In deze afbeelding ziet u het evaluatieproces:

Diagram met het gegevensbelastingsproces en het toewijzen van tekstwaarden aan een woordenlijst met unieke waarden.

In het voorgaande voorbeeld laadt de Power BI-engine de eerste rij met gegevens, maakt de woordenlijst Addressee aan, en voegt Taina Hasu eraan toe. De engine voegt ook een verwijzing naar die waarde toe in de kolom Addressee in de tabel die wordt geladen. De engine doet hetzelfde voor de tweede en derde rij, omdat deze namen niet gelijk zijn aan de andere bij het negeren van hoofdletters.

Voor de vierde rij vergelijkt de engine de waarde met de namen in de woordenlijst en zoekt de naam. Omdat de engine hoofdletterongevoelig is, zijn "TAINA HASU" en "Taina Hasu" hetzelfde. De engine voegt geen nieuwe naam toe aan de woordenlijst, maar verwijst naar de bestaande naam. Hetzelfde proces gebeurt voor de resterende rijen.

Belangrijk

Omdat de engine die gegevens opslaat en opvraagt in Power BI niet hoofdlettergevoelig is, moet u er speciaal voor zorgen wanneer u in de DirectQuery-modus met een hoofdlettergevoelige bron werkt. In Power BI wordt ervan uitgegaan dat de bron dubbele rijen heeft geëlimineerd. Omdat Power BI niet hoofdlettergevoelig is, worden twee waarden behandeld die alleen per geval verschillen als duplicaat, terwijl de bron deze mogelijk niet als zodanig behandelt. In dergelijke gevallen is het uiteindelijke resultaat niet gedefinieerd.

Om deze situatie te voorkomen, kunt u, als u de DirectQuery-modus gebruikt met een hoofdlettergevoelige gegevensbron, hoofdlettergebruik normaliseren in de bronquery of in de Power Query-editor.

Voorloop- en volgspaties

De Power BI-engine trimt automatisch eventuele volgspaties die tekstgegevens volgen, maar verwijdert geen voorloopspaties die voorafgaan aan de gegevens. Als u verwarring wilt voorkomen, moet u de functie Text.Trim gebruiken om spaties aan het begin of einde van de tekst te verwijderen wanneer u met gegevens met voorloop- of volgspaties werkt. Als u geen voorloopspaties verwijdert, kan een relatie niet tot stand komen vanwege dubbele waarden, of kunnen de visuals onverwachte resultaten opleveren.

In het volgende voorbeeld ziet u gegevens over klanten: een naamkolom met de naam van de klant en een indexkolom die uniek is voor elke vermelding. De namen worden weergegeven tussen aanhalingstekens voor duidelijkheid. De klantnaam wordt vier keer herhaald, maar elke keer met verschillende combinaties van voorloop- en volgspaties. Deze variaties kunnen optreden met handmatige gegevensinvoer in de loop van de tijd.

Row Voorloopruimte Volgruimte Naam Index Lengte van tekst
1 Nee. Nee. "Dylan Williams" 1 14
2 Nee. Ja "Dylan Williams " 10 15
3 Ja Nee. "Dylan Williams" 20 15
4 Ja Ja " Dylan Williams " 40 16

In de Power Query-editor worden de resulterende gegevens als volgt weergegeven.

Schermopname van tekstgegevens met verschillende voorloop- en volgspaties in De Power Query-editor.

Wanneer u naar het tabblad Tabel in Power BI gaat nadat u de gegevens hebt geladen, ziet dezelfde tabel eruit als in de volgende afbeelding, met hetzelfde aantal rijen als voorheen.

Schermopname van dezelfde tekstgegevens na het laden in Power BI retourneert hetzelfde aantal rijen als voorheen.

Een visual op basis van deze gegevens retourneert echter slechts twee rijen.

Schermopname van een tabelweergave op basis van dezelfde gegevens die slechts twee regels met gegevens retourneert.

In de voorgaande afbeelding heeft de eerste rij een totaalwaarde van 60 voor het veld Index , dus de eerste rij in de visual vertegenwoordigt de laatste twee rijen van de geladen gegevens. De tweede rij met de totale indexwaarde11 vertegenwoordigt de eerste twee rijen. Het verschil in het aantal rijen tussen de visual en de gegevenstabel wordt veroorzaakt doordat de engine automatisch spaties aan het einde verwijdert of inkort, maar spaties aan het begin niet. De engine evalueert dus dat de eerste en tweede rij en de derde en vierde rij identiek zijn, en de visual retourneert deze resultaten.

Dit gedrag kan ook foutberichten veroorzaken met betrekking tot relaties, omdat dubbele waarden worden gedetecteerd. Afhankelijk van de configuratie van uw relaties ziet u bijvoorbeeld een fout die lijkt op de volgende afbeelding:

Schermopname van een foutbericht over dubbele waarden.

In andere situaties kunt u mogelijk geen veel-op-een- of een-op-een-relatie maken omdat dubbele waarden worden gedetecteerd.

Schermopname van het relatiedialoogvenster waarin de fout 'ongeldige kardinaliteit voor deze relatie' zichtbaar is, in verband met gedetecteerde dubbele waarden.

U kunt deze fouten herleiden tot voorloop- of volgspaties en deze oplossen door gebruik te maken van Text.Trim of Opmaak>Trimmen onder Transformeren om de spaties in de Power Query Editor te verwijderen.

Waar/onwaar-type

Het gegevenstype Waar/onwaar is een Booleaanse waarde van Waar of Onwaar. Als u voor de beste en meest consistente resultaten een kolom met Booleaanse waar/onwaar-gegevens in Power BI laadt, stelt u het kolomtype in op Waar/Onwaar.

Power BI converteert en geeft gegevens in bepaalde situaties anders weer. In deze sectie worden veelvoorkomende gevallen van het converteren van Booleaanse waarden beschreven, en hoe u om kunt gaan met conversies die onverwachte resultaten in Power BI opleveren.

In dit voorbeeld laadt u gegevens over of uw klanten zich hebben geregistreerd voor uw nieuwsbrief. Een waarde van TRUE geeft aan dat de klant zich heeft geregistreerd voor de nieuwsbrief en een waarde onwaar geeft aan dat de klant zich niet heeft geregistreerd.

Wanneer u het rapport echter publiceert naar de Power BI-service, wordt in de kolom registratiestatus van de nieuwsbrief 0 en -1 weergegeven in plaats van de verwachte waarden WAAR of ONWAAR. In de volgende stappen wordt beschreven hoe deze conversie plaatsvindt en hoe u deze kunt voorkomen.

De vereenvoudigde query voor deze tabel wordt weergegeven in de volgende afbeelding:

Schermopname van de kolommen die zijn ingesteld op Booleaanse waarde.

Het gegevenstype van de kolom Abonneren op nieuwsbrief is ingesteld op Any. Als gevolg hiervan worden de gegevens in het model geladen als Tekst.

Schermopname van de gegevens die in Power BI zijn geladen.

Wanneer u een eenvoudige visualisatie toevoegt waarin de gedetailleerde informatie per klant wordt weergegeven, worden de gegevens weergegeven in de visual zoals verwacht, zowel in Power BI Desktop als wanneer ze worden gepubliceerd naar de Power BI-service.

Schermopname van een visual waarin de gegevens worden weergegeven zoals verwacht.

Wanneer u echter het semantische model in de Power BI-service vernieuwt, worden in de kolom Abonneren op nieuwsbrief in de visuals waarden weergegeven als -1 en 0, in plaats van ze weer te geven als WAAR of ONWAAR:

Schermopname van een visual waarin gegevens worden weergegeven in een onverwachte indeling na het vernieuwen.

Als u het rapport opnieuw publiceert vanuit Power BI Desktop, wordt in de kolom Geabonneerd op nieuwsbrief opnieuw WAAR of ONWAAR weergegeven zoals verwacht, maar wanneer er een vernieuwing plaatsvindt in de Power BI-service, worden de waarden opnieuw gewijzigd om -1 en 0 weer te geven.

De oplossing om deze situatie te voorkomen, is door booleaanse kolommen in te stellen op Waar/Onwaar in Power BI Desktop en uw rapport opnieuw te publiceren.

Schermopname van het wijzigen van het gegevenstype van de kolom in Waar/Onwaar.

Wanneer u de wijziging aanbrengt, worden in de visualisatie de waarden in de kolom Geabonneerd op nieuwsbrief iets anders weergegeven. In plaats van dat de tekst alle hoofdletters is zoals ingevoerd in de tabel, wordt alleen de eerste letter met hoofdletters geschreven. Deze wijziging is een resultaat van het wijzigen van het gegevenstype van de kolom.

Schermopname van waarden die anders worden weergegeven wanneer u het gegevenstype wijzigt.

Zodra u het gegevenstype wijzigt, republieert naar de Power BI-service en er een vernieuwing plaatsvindt, worden de waarden in het rapport weergegeven als Waar of Onwaar, zoals verwacht.

Schermopname die waar- of onwaarwaarden toont die het gegevenstype Waar/Onwaar gebruiken, worden na verversen zoals verwacht weergegeven.

Als u een samenvatting wilt maken van het werken met Booleaanse gegevens in Power BI, moet u ervoor zorgen dat uw kolommen zijn ingesteld op het gegevenstype Waar/Onwaar in Power BI Desktop.

Leeg veldtype

Leeg is een DAX-gegevenstype dat SQL null-waarden vertegenwoordigt en vervangt. U kunt een lege waarde maken met behulp van de functie BLANK en testen op lege waarden met behulp van de logische functie ISBLANK .

Binair type

U kunt het binaire gegevenstype gebruiken om alle gegevens weer te geven met een binaire indeling. In de Power Query-editor kunt u dit gegevenstype gebruiken bij het laden van binaire bestanden als u deze converteert naar andere gegevenstypen voordat u het in het Power BI-model laadt.

Binaire kolommen worden niet ondersteund in het Power BI-gegevensmodel. De binaire selectie bestaat om verouderde redenen in de tabelweergave en rapportweergavemenu's, maar als u binaire kolommen probeert te laden in het Power BI-model, kunnen er fouten optreden.

Opmerking

Als een binaire kolom in de uitvoer van de stappen van een query staat, kan het vernieuwen van de gegevens via een gateway fouten veroorzaken. Het is raadzaam om binaire kolommen expliciet te verwijderen als de laatste stap in uw query's.

Tabeltype

DAX maakt gebruik van een tabelgegevenstype in veel functies, zoals aggregaties en time intelligence-berekeningen. Voor sommige functies is een verwijzing naar een tabel vereist. Andere functies retourneren een tabel die u vervolgens kunt gebruiken als invoer voor andere functies.

In sommige functies waarvoor een tabel als invoer is vereist, kunt u een expressie opgeven die resulteert in een tabel. Voor sommige functies is een verwijzing naar een basistabel vereist. Zie de naslaginformatie over dax-functies voor meer informatie over de vereisten van specifieke functies.

Impliciete en expliciete conversie van gegevenstypen

Elke DAX-functie heeft specifieke vereisten voor de typen gegevens die moeten worden gebruikt als invoer en uitvoer. Sommige functies vereisen bijvoorbeeld gehele getallen voor sommige argumenten en datums voor andere. Voor andere functies is tekst of tabellen vereist.

Als de gegevens in de kolom die u opgeeft als argument niet compatibel zijn met het gegevenstype dat de functie nodig heeft, kan DAX een fout retourneren. Waar mogelijk probeert DAX de gegevens echter impliciet te converteren naar het vereiste gegevenstype.

Voorbeeld:

  • Als u een datum als tekenreeks typt, parseert DAX de tekenreeks en probeert deze als een van de Windows-datum- en tijdnotaties te casten.
  • U kunt TRUE + 1 toevoegen en het resultaat 2 ophalen, omdat DAX IMPLICIET TRUE converteert naar het getal 1 en de bewerking 1+1 doet.
  • Als u waarden toevoegt in twee kolommen met één waarde die wordt weergegeven als tekst (12) en de andere als een getal (12), converteert DAX de tekenreeks impliciet naar een getal en wordt de optelling voor een numeriek resultaat uitgevoerd. De expressie = "22" + 22 geeft 44.
  • Als u twee getallen probeert samen te voegen, geeft DAX deze weer als tekenreeksen en voegt deze vervolgens samen. De expressie = 12 & 34 retourneert "1234".

Tabellen met impliciete gegevensconversies

De operator bepaalt welk type conversie DAX uitvoert door de waarden te casten die nodig zijn voordat de aangevraagde bewerking wordt uitgevoerd. De volgende tabellen bevatten de operators en de conversie die DAX doet voor elk gegevenstype wanneer het wordt gekoppeld aan dat gegevenstype in de kruisende cel.

Opmerking

Deze tabellen bevatten geen gegevenstype Tekst . Wanneer een getal wordt weergegeven in een tekstindeling, probeert Power BI in sommige gevallen het getaltype te bepalen en de gegevens weer te geven als een getal.

Optellen (+)

INTEGER VALUTA WERKELIJK Datum/tijd
INTEGER INTEGER VALUTA WERKELIJK Datum/tijd
VALUTA- VALUTA VALUTA WERKELIJK Datum/tijd
WERKELIJK WERKELIJK WERKELIJK WERKELIJK Datum/tijd
Datum/tijd Datum/tijd Datum/tijd Datum/tijd Datum/tijd

Als een optelbewerking bijvoorbeeld een reëel getal gebruikt in combinatie met valutagegevens, converteert DAX beide waarden naar REAL en retourneert het resultaat als REAL.

Aftrekken (-)

In de volgende tabel is de rijkop de minuend (linkerkant) en is de kolomkop de aftrekken (rechterkant).

INTEGER VALUTA WERKELIJK Datum/tijd
INTEGER INTEGER VALUTA WERKELIJK WERKELIJK
VALUTA- VALUTA VALUTA WERKELIJK WERKELIJK
WERKELIJK WERKELIJK WERKELIJK WERKELIJK WERKELIJK
Datum/tijd Datum/tijd Datum/tijd Datum/tijd Datum/tijd

Als een aftrekkingsbewerking bijvoorbeeld een datum met een ander gegevenstype gebruikt, converteert DAX beide waarden naar datums en is de retourwaarde ook een datum.

Opmerking

Gegevensmodellen ondersteunen de unaire operator, (negatief), maar deze operator wijzigt het gegevenstype van de operand niet.

Vermenigvuldiging (*)

INTEGER VALUTA WERKELIJK Datum/tijd
INTEGER INTEGER VALUTA WERKELIJK INTEGER
VALUTA- VALUTA WERKELIJK VALUTA VALUTA
WERKELIJK WERKELIJK VALUTA WERKELIJK WERKELIJK

Als een vermenigvuldigingsbewerking bijvoorbeeld een geheel getal combineert met een reëel getal, converteert DAX beide getallen naar reële getallen en is de retourwaarde ook REAL.

Deling (/)

In de volgende tabel is de rijkop de teller en is de kolomkop de noemer.

INTEGER VALUTA WERKELIJK Datum/tijd
INTEGER WERKELIJK VALUTA WERKELIJK WERKELIJK
VALUTA- VALUTA WERKELIJK VALUTA WERKELIJK
WERKELIJK WERKELIJK WERKELIJK WERKELIJK WERKELIJK
Datum/tijd WERKELIJK WERKELIJK WERKELIJK WERKELIJK

Als een deelbewerking bijvoorbeeld een geheel getal combineert met een valutawaarde, converteert DAX beide waarden naar reële getallen en is het resultaat ook een reëel getal.

Vergelijkingsoperatoren

In vergelijkingsexpressies beschouwt DAX Booleaanse waarden groter dan tekenreekswaarden en tekenreekswaarden die groter zijn dan numerieke waarden of datum-/tijdwaarden. Getallen en datum-/tijdwaarden hebben dezelfde rangschikking.

DAX voert geen impliciete conversies uit voor Booleaanse waarden of tekenreekswaarden. BLANK of een lege waarde wordt geconverteerd naar 0, '' of False, afhankelijk van het gegevenstype van de andere vergeleken waarde.

De volgende DAX-expressies illustreren dit gedrag:

  • =IF(FALSE()>"true","Expression is true", "Expression is false") retourneert 'De uitdrukking is waar'.

  • =IF("12">12,"Expression is true", "Expression is false") retourneert 'De uitdrukking is waar'.

  • =IF("12"=12,"Expression is true", "Expression is false") retourneert "Expressie is onwaar".

DAX voert impliciete conversies uit voor numerieke of datum-/tijdtypen, zoals in de volgende tabel wordt beschreven:

Vergelijking
Operateur
INTEGER VALUTA WERKELIJK Datum/tijd
INTEGER INTEGER VALUTA WERKELIJK WERKELIJK
VALUTA- VALUTA VALUTA WERKELIJK WERKELIJK
WERKELIJK WERKELIJK WERKELIJK WERKELIJK WERKELIJK
Datum/tijd WERKELIJK WERKELIJK WERKELIJK Datum/tijd

Lege waarden, lege tekenreeksen en nulwaarden

DAX vertegenwoordigt een null, lege cel, lege waarde of ontbrekende waarde door hetzelfde nieuwe waardetype, een LEGE waarde (BLANK). U kunt ook lege waarden genereren met behulp van de functie BLANK of testen op lege waarden met behulp van de functie ISBLANK.

Hoe bewerkingen, zoals optellen of samenvoegen, lege waarden verwerken, is afhankelijk van de afzonderlijke functie. De volgende tabel bevat een overzicht van de verschillen tussen de manier waarop DAX- en Microsoft Excel-formules lege waarden verwerken.

Uitdrukking DAX Excel
BLANK + BLANK BLANK 0 (nul)
BLANK + 5 5 5
BLANK * 5 BLANK 0 (nul)
5/BLANK Oneindigheid Error
0/BLANK NaN Error
BLANK/BLANK BLANK Error
ONWAAR OF LEEG FALSE FALSE
ONWAAR EN LEEG FALSE FALSE
WAAR OF LEEG WAAR WAAR
WAAR EN LEEG FALSE WAAR
leeg of leeg BLANK Error
LEEG EN LEEG BLANK Error

U kunt allerlei dingen doen met Power BI en gegevens. Zie de volgende bronnen voor meer informatie over De mogelijkheden van Power BI: