Werken met formulekolommen
Formulekolommen zijn kolommen die een berekende waarde weergeven in een Microsoft Dataverse-tabel. Formules gebruiken Power Fx, een krachtige maar mensvriendelijke programmeertaal. Bouw een formule in een Dataverse-formulekolom op dezelfde manier waarop u een formule zou bouwen in Microsoft Excel. Terwijl u typt, stelt IntelliSense functies en syntaxis voor en helpt het u zelfs om fouten op te lossen.
Een formulekolom toevoegen
Aanmelden bij Power Apps via https://make.powerapps.com
Selecteer Tabellen en selecteer de tabel waarin u een formulekolom wilt toevoegen. Als het item zich niet in het deelvenster van het zijpaneel bevindt, selecteert u …Meer en selecteert u vervolgens het gewenste item.
Selecteer het gebied Kolommen en selecteer vervolgens Nieuwe kolom.
Voer de volgende informatie in:
- Een weergavenaam voor de kolom.
- Typ desgewenst een beschrijving van de kolom.
Selecteer voor Gegevenstype de fx Formule.
Typ de formule of gebruik formulesuggesties:
Voer de Power Fx-formule in het vak Formule in. Meer informatie: Type een formule
- Selecteer aanvullende eigenschappen:
- Selecteer Doorzoekbaar als u wilt dat deze kolom beschikbaar is in weergaven, diagrammen, dashboards en Geavanceerd zoeken.
- Geavanceerde opties:
- Als de formule een decimale waarde oplevert, vouwt u Geavanceerde opties uit om het aantal precisiepunten te wijzigen, tussen 0 en 10. De standaardwaarde is 2.
- Selecteer Save.
Een formule typen
In het volgende voorbeeld wordt een formulekolom gemaakt met de naam Totale prijs. De Aantal eenheden-kolom is een gegevenstype voor een geheel getal. De Prijs-kolom is een decimaal gegevenstype.
De formulekolom geeft het resultaat weer van Prijs vermenigvuldigd met Aantal eenheden.
Het kolomtype wordt bepaald door de formule die u invoert. Nadat u een kolom hebt gemaakt, kunt u het kolomtype niet meer wijzigen. De betekent dat u de formule kunt wijzigen nadat u de kolom hebt gemaakt, maar alleen als het kolomtype niet wordt gewijzigd.
Bijvoorbeeld de formule prijs * korting creëert een kolomtype Getal. U kunt een prijs * korting wijzigen in prijs * (korting +10%) omdat hierdoor het kolomtype niet verandert. U kunt prijs * korting echter niet wijzigen in Tekst(prijs * korting) omdat daarvoor het kolomtype moet worden gewijzigd in tekenreeks.
Formulesuggesties ophalen (preview)
[Dit onderwerp maakt deel uit van de voorlopige documentatie en kan nog veranderen.]
Beschrijf wat de formule moet doen en ontvang door AI gegenereerde resultaten. Formulesuggesties accepteren de invoer van uw natuurlijke taal om op basis hiervan een Power Fx-formule voor te stellen met behulp van een op GPT gebaseerd AI-model.
Belangrijk
Dit is een preview-functie die alleen in de VS-regio's beschikbaar is.
Preview-functies zijn niet bedoeld voor productiegebruik en bieden mogelijk beperkte functionaliteit. Deze functies zijn beschikbaar voor een officiële release zodat klanten vroeg toegang kunnen krijgen en feedback kunnen geven.
Momenteel worden formulesuggesties ondersteund die naar één tabel verwijzen. Formulesuggesties ondersteund die naar een kolom in een gerelateerde tabel verwijzen worden niet ondersteund.
Vereisten
Om deze functie in te schakelen, moet u de omgevingsinstelling AI-suggesties voor formulekolommen inschakelen. Meer informatie: AI-suggesties voor formulekolommen
Voorbeeld van natuurlijke taalinvoer
Stel je voor dat er een kolom Klantbeoordeling is waarin de beoordeling per account wordt weergegeven.
Voer in het vak Formulesuggesties ophalen de formule in natuurlijke taal in, bijvoorbeeld Als de beoordeling in de beoordelingskolom gelijk is aan of groter is dan 5, geef dan Goed aan en als minder dan 5 geef dan Gemiddeld aan en als de waarde leeg of nul is, geef dan Slecht aan en selecteer vervolgens de pijlknop (enter).
Kopieer vervolgens de Voorgestelde formule.
En plak deze in het vak Een formule typen. Selecteer Save.
Hier ziet u hoe de formule wordt weergegeven wanneer u die plakt.
Switch(
ThisRecord.'Customer Rating',
Blank(), "Bad",
0, "Bad",
1, "Average",
2, "Average",
3, "Average",
4, "Average",
5, "Good",
6, "Good",
7, "Good",
8, "Good",
9, "Good",
10, "Good"
)
Controleer de berekende kolom Beoordelingsbeschrijving, die er als volgt uitziet.
Verantwoordelijke AI
Ga naar deze resources voor informatie over verantwoorde AI:
- Veelgestelde vragen voor het bouwen van apps en tabellen door middel van gesprekken
- Veelgestelde vragen over verantwoord gebruik van AI in Power Apps
Operators
U kunt de volgende operators in een formulekolom gebruiken:
+, -, *, /, %, in, exactin, &
Ga voor meer informatie naar Operators in Power Apps.
Data types
U kunt de volgende gegevenstypen in een formulekolom weergeven:
- Sms verzenden
- Decimaal getal
- Keuze Ja/Nee (booleaans)
- Datetime
- Geheel getal
De gegevenstypen valuta en keuze (voorheen optiesets) worden momenteel niet ondersteund.
Functietypen
U kunt de volgende functietypen in een formulekolom gebruiken:
- Decimal
- String
- Booleaans
- Optieset
- DateTime (TZI)
- DateTime (gebruiker lokaal) (beperkt tot vergelijkingen met andere lokale gebruikerswaarden van de functies DateAdd en DateDiff)
- DateTime (alleen datum) (beperkt tot vergelijkingen met alleen datumwaarden en de functies DateAdd en DateDiff)
- Valuta
- Geheel getal, gepromoveerd tot decimaal
Functies
U kunt de volgende scalaire functies in een formulekolom gebruiken:
Value *
Text *
Decimaal *
* De functies Text en Value werken alleen met gehele getallen, waarbij geen decimaalteken is betrokken. Het decimaalteken verschilt per landinstelling. Aangezien formulekolommen worden geëvalueerd zonder kennis van de landinstelling, is er geen manier om het decimaalteken correct te interpreteren of te genereren.
Het argument * StartOfWeek wordt niet ondersteund voor de functies WeekNum en Weekday in formulekolommen.
Voorbeeld van functie
Omschrijving | Voorbeeld |
---|---|
Haal een datumwaarde op. | DateAdd(UTCNow(),-1,TimeUnit.Years) |
Een decimale formulekolom maken
Maak een formulekolom die een decimaal getal retourneert.
- Wanneer u een kolom maakt, voert u de volgende informatie in:
- Een weergavenaam voor de kolom.
- Typ desgewenst een beschrijving van de kolom.
- Selecteer voor Gegevenstype de fx Formule.
- Voer een formule in die een numerieke waarde retourneert in de Formule balk. In dit voorbeeld wordt een formulekolom met de naam Totaalbedrag gemaakt. De kolom prijs per eenheid is van het decimaal gegevenstype.
- Vouw Geavanceerde opties uit, selecteer Decimaal als het gegevenstype Formule en stel vervolgens het gewenste aantal decimalen in.
- Selecteer Save.
Een kolom met een formule voor gehele getallen maken
Maak een formulekolom die een geheel getal retourneert.
- Wanneer u een kolom maakt, voert u de volgende informatie in:
- Een weergavenaam voor de kolom.
- Typ desgewenst een beschrijving van de kolom.
- Selecteer voor Gegevenstype de fx Formule.
- Voer een formule in die een numerieke waarde retourneert in de Formule balk. In dit voorbeeld wordt een formulekolom met de naam Aantal eenheden gemaakt. De kolommen Totale prijs en prijs per eenheid zijn van het decimaal gegevenstype.
- Vouw Geavanceerde opties uit en selecteer Geheel getal als het Formule-gegevenstype en stel de gewenste opmaak voor de gehele getallenkolom in.
- Selecteer Save.
Richtlijnen en beperkingen
In deze sectie worden richtlijnen en de bekende beperkingen met formulekolommen in Dataverse beschreven.
Validaties van gebruik van valutavelden
- Formulekolommen bieden geen ondersteuning voor het gebruik van een gerelateerde tabelvalutakolom in de formule, zoals in dit voorbeeld.
- Direct gebruik van valutakolommen en wisselkoersen in de formule wordt momenteel niet ondersteund. Het gebruik van valuta- en wisselkoerskolommen wordt bereikt via de functie
Decimal
, zoalsDecimal(currency column)
ofDecimal(exchange rate)
. De functieDecimal
zorgt ervoor dat de uitvoer binnen het geaccepteerde bereik ligt. Als de waarde van de valuta- of wisselkoerskolom het geaccepteerde bereik overschrijdt, retourneert de formule null. - Basisvalutakolommen worden niet ondersteund in de formulekolomexpressies, omdat het systeemkolommen zijn die worden gebruikt voor rapportagedoeleinden. Als u een soortgelijk resultaat wilt, kunt u een valutakolomtype gebruiken in combinatie met een wisselkoerskolomcombinatie als
CurrencyField_Base = (CurrencyField / ExchangeRate)
.
Gebruiksvalidaties voor datum-tijdkolommen
- Het gedrag van datum-tijdformulekolommen kan alleen worden bijgewerkt als het niet in een andere formulekolom wordt gebruikt.
- Zorg ervoor dat voor kolommen met datum-tijdformules de functie
DateDiff
wordt gebruikt:- De kolom voor lokaal gebruikersgedrag kan niet worden vergeleken of gebruikt met een gedragskolom
DateTime(TZI)/DateOnly
. - Kolommen voor lokaal gebruikersgedrag kunnen alleen worden vergeleken of gebruikt met een andere door de gebruiker ingestelde gedragskolom.
- Gedragskolommen
DateTime(TZI)
kunnen worden vergeleken of gebruikt in functiesDateDiff
met een andere gedragskolomDateTime(TZI)/DateOnly
. - Gedragskolommen
DateOnly
kunnen worden vergeleken of gebruikt in functies DateDiff met een andere gedragskolomDateTime(TZI)/DateOnly
.
- De kolom voor lokaal gebruikersgedrag kan niet worden vergeleken of gebruikt met een gedragskolom
- De datum/tijd-kolommen en datum/tijd-functies
UTCNow()
Now()
kunnen niet als parameter worden doorgegeven aan tekenreeksfuncties.
Gebruik van formulekolommen in samengetelde velden
- Een eenvoudige formulekolom is waar de formule kolommen uit dezelfde record gebruikt of hardgecodeerde waarden gebruikt. Voor samengetelde kolommen moeten formulekolommen eenvoudige formulekolommen zijn, zoals dit voorbeeld van een samengetelde kolom.
- Een formulekolom die afhankelijk is van tijdgebonden functies
UTCNow()
enUTCToday()
kan niet worden gebruikt in een samengeteld veld.
Aanbevelingen voor Power Fx-tekstfuncties
Formulekolommen ondersteunen geen functies
Text()
met een enkel argument van het type Getal. Getal kan geheel, decimaal of valuta zijn.Formulekolommen bieden geen ondersteuning voor het gebruik van getallen in de volgende configuraties:
- In tekenreeksfuncties. Dit zijn tekenreeksfuncties die overal worden geplaatst waar een tekstargument wordt verwacht: Upper, Lower, Left, Right, Concatenate, Mid, Len, StartsWith, EndsWith, TrimEnds, Trim, Substitute en Replace.
- In de impliciete formules, zoals
12 & "foo"
of12 & 34
of"foo" & 12
. - Gedwongen interne conversie van getal naar tekst wordt niet ondersteund. We raden u aan
Text(Number, Format)
te gebruiken om een getal naar tekst te converteren. In het geval dat een argumentString
wordt doorgegeven in een functieText
, wordt het argumentFormat
niet ondersteund. - Hier is een voorbeeld waarbij de functie
Text
wordt gebruikt om een getal naar tekst te converteren en er een tekenreeks aan toe te voegen:
Concatenate(Text(123,"#"),"ab") Text(123,"#") & "foo"
Landspecifieke opmaaktokens, zoals '.' en ',', worden niet ondersteund in formulekolommen.
Bereikvalidaties op formulekolommen
- U kunt de eigenschappen Minimumwaarde of Maximumwaarde van een formulekolom niet instellen.
- Alle interne berekeningen moeten binnen het Dataverse-bereik liggen voor de formulekolommen van het decimale type (-100000000000 tot 100000000000).
- Een hardgecodeerde letterlijke waarde die in de formulebalk wordt ingevoerd, moet binnen het Dataverse-bereik liggen.
- Als er een numerieke kolom is die null is, wordt deze in de tussenliggende bewerking als 0 beschouwd.
a+b+c and If a = null, b=2, c=3
geeft dan bijvoorbeeld de formulekolom0 + 2 + 3 = 5
.- Dit gedrag verschilt in dit geval van berekende kolommen, omdat berekende kolommen
null + 2 + 3 = null
als resultaat opleveren.
- Dit gedrag verschilt in dit geval van berekende kolommen, omdat berekende kolommen
Algemene validaties op formulekolommen
- Formulekolommen kunnen naar andere formulekolommen verwijzen, maar een formulekolom kan niet naar zichzelf verwijzen.
- Formulekolommen ondersteunen geen cyclische ketens, zoals
F1 = F2 + 10, F2 = F1 * 2
. - De maximale lengte van formule-expressies in formulekolommen bedraagt 1000 tekens.
- De maximaal toegestane diepte in formulekolommen is 10. Diepte wordt gedefinieerd als de keten van formulekolommen die verwijzen naar andere formule- of samenvoegkolommen.
- Bijvoorbeeld:
table E1, F1 = 1*2, table E2, F2 - E1*2
. In dit voorbeeld is de diepte van F2 gelijk aan 1.
- Bijvoorbeeld:
- In modelgestuurde apps is sorteren uitgeschakeld voor:
- Een formulekolom die een kolom van een gerelateerde tabel bevat.
- Een formulekolom die een logische kolom bevat (bijvoorbeeld een adreskolom).
- Een formulekolom die een andere berekende kolom of formulekolom bevat.
- Een formulekolom die tijdgebonden functie
UTCNow()
gebruikt.
- Kolommen van het type Geheel getal met de indeling Taal, Duur en Tijdzone worden niet ondersteund in formulekolommen.
- Kolommen van het type Tekenreeks met de indeling E-mail, Tekstgebied, Beurssymbool en URL worden niet ondersteund in formulekolommen.
- Formulekolommen geven geen waarden weer als de app zich in de mobiele offlinemodus bevindt.
- U kunt geen werkstromen of invoegtoepassingen activeren voor formulekolommen.
- We raden u af berekende kolommen te gebruiken in formulekolommen en omgekeerd.
- De regels voor duplicatendetectie worden niet geactiveerd op formulekolommen.
- De functie
Now
kan worden gebruikt met formulekolommen.Now()
vertoont lokaal gebruikersgedrag enUTCNow()
heeft tijdzone-onafhankelijk gedrag. - U kunt de precisie-eigenschap voor decimale kolommen instellen.
- De standaardwaarde voor het formulegegevenstype is ingesteld op Decimaal voor numerieke waarden die formules retourneren.
- Het bijwerken van de opmaak van de kolom met gehele getallenformules wordt niet ondersteund.
Power Fx-funties worden momenteel niet ondersteund
- Power
- Sqrt
- Exp
- Ln
- ^ (operator)
Formulekolommen met gegevenstypen die niet kunnen worden geproduceerd
- Keuzen (behalve Ja/Nee-keuze)
- Valuta
Zie ook
Overzicht van Microsoft Power Fx
Formule-, berekende en samengetelde kolommen met behulp van code