Arbejde med formelkolonner
Formelkolonner er kolonner, der viser en beregnet værdi i en Microsoft Dataverse-tabel. Formler bruger Power Fx et kraftfuldt, men menneskevenligt programmeringssprog. Opret en formel i en Dataverse-formelkolonne på samme måde, som du ville oprette en formel i Microsoft Excel. Når du skriver, foreslår IntelliSense funktioner og syntaks, og det hjælper dig endda med at rette fejl.
Tilføje en formelkolonne
Log på Power Apps på https://make.powerapps.com.
Vælg Tabeller, og vælg den tabel, hvor du vil tilføje en formelkolonne. Hvis elementet ikke findes i sidepanelruden, skal du vælge ...Flere og derefter vælge det ønskede element.
Vælg området Kolonner , og vælg derefter Ny kolonne.
Angiv følgende oplysninger:
- AVisningsnavn for kolonnen.
- Du kan også angive en Beskrivelse af kolonnen.
For Datatype skal du vælge fx Formel.
Skriv formlen, eller brug formelforslag:
Angiv Power Fx formlen i feltet Formel . Flere oplysninger: Skrive en formel
- Vælg yderligere egenskaber:
- Vælg Søgbar, hvis du ønsker, at denne kolonne skal være tilgængelig i visninger, diagrammer, dashboards og Avanceret søgning.
- Avancerede indstillinger:
- Hvis formlen evalueres til en decimalværdi, skal du udvide Avancerede indstillinger for at ændre antallet af præcisionspunkter mellem 0 og 10. Standardværdien er 2.
- Vælg Gem.
Skriv en formular
I følgende eksempel oprettes en formelkolonne med navnet Samlet pris. Kolonnen Antal enheder er en datatype med heltal. Kolonnen Pris er en decimaldatatype.
Formelkolonnen viser resultatet af Pris ganget med Antal enheder.
Din indtastede formel bestemmer kolonnetypen. Når kolonnen er oprettet, kan du ikke ændre kolonnetypen. Det betyder, at du kun kan ændre formlen, når du har oprettet kolonnen, når den ikke ændrer kolonnetypen.
Formlen pris * rabat opretter f.eks. en kolonnetype med tal. Du kan ændre pris * rabat til pris * (rabat + 10 %), fordi det ikke ændrer kolonnetypen. Du kan dog ikke ændre pris * rabat til Tekst(pris * rabat), da det ville kræve, at du ændrer kolonnetypen til streng.
Hent formelforslag (forhåndsversion)
[Dette emne er til dokumentationen til den foreløbige udgivelse. Der kan forekomme ændringer.]
Beskriv, hvad du vil have formlen til at gøre, og få en AI-genererede resultater. Forslag til formler accepterer dit input på et naturligt sprog for at fortolke og foreslå en Power Fx-formel ved hjælp af GPT-baseret AI-model.
Vigtige oplysninger
Dette er en prøveversionsfunktion, der kun er tilgængelig i amerikanske områder.
Forhåndsversionsfunktionerne er ikke beregnet til produktionsformål og kan have begrænset funktionalitet. Disse funktioner er tilgængelige før en officiel udgivelse, så kunderne kan få tidlig adgang og give feedback.
Formelforslag, der refererer til en enkelt tabel, understøttes i øjeblikket. Formelforslag, der refererer til en kolonne på en relateret tabel, understøttes ikke.
Forudsætninger
Hvis du vil aktivere denne funktion, skal du aktivere miljøindstillingen AI-forslag til formelkolonner . Flere oplysninger: AI-forslag til formelkolonner
Eksempel på naturligt sproginput
Forestil dig, at der er en kolonne med bedømmelse af kunder, der viser deres bedømmelse efter konto.
I feltet Hent formelforslag skal du angive formlen på et naturligt sprog, f.eks. Hvis bedømmelsen i kolonnen bedømmelse er lig med eller større end 5, skal du angive den som God, og hvis den er mindre end 5, angives den som Gennemsnit, og hvis værdien er tom eller nul, skal den vises som Dårlig, og derefter vælge pileknappen (enter).
Kopier derefter den foreslåede formel.
Og indsæt det i feltet Skriv en formel . Vælg Gem.
Sådan vises formlen, når den indsættes.
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"
)
Kontrollér formelkolonnen Beskrivelse af computedbedømmelse , som ser sådan ud.
Ansvarlig AI
Du kan finde oplysninger om ansvarlig AI ved at gå til disse ressourcer:
- Ofte stillede spørgsmål om opbygning af apps og tabeller via samtale
- Ofte stillede spørgsmål om ansvarlig brug af AI i Power Apps
Operatorer
Du kan bruge følgende operatorer i en formelkolonne:
+, -, *, /, %, in, exactin, &
Du kan finde flere oplysninger ved at gå til Operatorer i Power Apps.
Datatyper
Følgende datatyper kan vises i en formelkolonne:
- SMS-besked
- Decimaltal
- Helt tal
- Flyde
- Boolesk valg (ja/nej)
- Valg( tidligere grupperede indstillinger)
- Datetime
Flere oplysninger: Oprette formelkolonner med datatyperne decimal, heltal, flydende og valgmuligheder\
Datatypen Valuta understøttes ikke i øjeblikket.
Funktionstyper
Følgende funktionstyper kan bruges i en formelkolonne:
- Decimaltal
- String
- Boolean
- Choice
- DateTime (TZI)
- DateTime (lokal bruger) (begrænset til sammenligning med andre lokale værdier DateAdd og DateDiff-funktioner)
- DateTime (Kun dato) (begrænset til sammenligning med datoværdier, DateAdd og DateDiff-funktioner)
- Valuta
- Helt tal
Funktioner
For de skalarfunktioner, du kan bruge i en formelkolonne, skal du gå til Formelreference - Dataverse formelkolonner.
* Funktionerne Tekst og Værdi fungerer kun med hele tal, hvor der ikke er nogen decimalseparator involveret. Decimalseparatoren varierer på tværs af landestandarder. Da formelkolonnerne evalueres uden landestandard, er det ikke muligt at fortolke eller oprette decimalseparatoren korrekt.
* Argumentet StartOfWeek understøttes ikke for funktionerne WeekNum og Weekday i formelkolonner.
Eksempel på funktion
Description | Eksempel |
---|---|
Hent en datoværdi. | DateAdd(UTCNow(),-1,TimeUnit.Years) |
Retningslinjer og begrænsninger
I dette afsnit beskrives retningslinjer og de kendte begrænsninger med formelkolonner i Dataverse.
Validering af brug af valutafelter
- Formelkolonner understøtter ikke brug af en tabelvaluta i en relateret kolonne i formlen, f.eks. som i dette eksempel.
- Direkte brug af valutakolonner og valutakurs i formlen understøttes i øjeblikket ikke. Brugen af valuta- og valutakurskolonner opnås via funktionen
Decimal
, f.eks.Decimal(currency column)
. ellerDecimal(exchange rate)
. FunktionenDecimal
sikrer, at outputtet er inden for det accepterede område. Hvis værdien i kolonnen for valuta eller valutakurs overstiger det accepterede område, returnerer formlen en null-værdi. - Kolonner for grundvaluta understøttes ikke i formelkolonneudtryk, da de er systemkolonner, der bruges til rapporteringsformål. Hvis du vil have et lignende resultat, kan du bruge en valuta-kolonnetype sammen med en valutakurskolonnekombination som
CurrencyField_Base = (CurrencyField / ExchangeRate)
.
Validering af brug af dato- og klokkeslætskolonner
- Funktionsmåden for kolonner med dato- og klokkeslætsformularer kan kun opdateres, når den ikke bruges i en anden formelkolonne.
- For formelkolonner for dato og klokkeslæt skal du sørge for, at, mens du bruger funktionen
DateDiff
, skal du sørge for, at:- Kolonnen Brugerens lokale adfærd kan ikke sammenlignes eller bruges med en
DateTime(TZI)/DateOnly
funktionsmådekolonne. - Kolonner for funktionsmåden for brugers lokaltid kan kun sammenlignes eller bruges med en anden kolonne med funktionsmåden for brugers lokaltid.
DateTime(TZI)
Funktionskolonner kan sammenlignes eller bruges iDateDiff
funktioner med en andenDateTime(TZI)/DateOnly
funktionsmåde.DateOnly
funktionskolonner kan sammenlignes eller bruges i funktionen DateDiff med en andenDateTime(TZI)/DateOnly
funktionsmåde.
- Kolonnen Brugerens lokale adfærd kan ikke sammenlignes eller bruges med en
- Dato- og klokkeslætskolonner og dato-/klokkeslætsfunktioner
UTCNow()
kanNow()
ikke overføres som en parameter til strengfunktioner.
Brug af formelkolonner i akkumuleringsfelter
- En simpel formelkolonne er, hvor formlen bruger kolonner fra den samme post eller bruger hårdt kodede værdier. I forbindelse med akkumuleringskolonner skal formelkolonner være simple formelkolonner, f.eks. som i dette eksempel på en akkumuleringskolonne.
- En formelkolonne, som er afhængig af tidsbundne funktioner
UTCNow()
ogUTCToday()
ikke kan bruges i et akkumuleringsfelt.
Anbefalinger til Power Fx-tekstfunktion
Formelkolonner understøtter
Text()
ikke funktioner med et enkelt argument af typen Tal. Tal kan være heltal, decimaler eller valuta.Formelkolonner understøtter ikke brug af tal i følgende konfigurationer:
- I strengfunktioner: Det er de strengfunktioner, der er placeret dér, hvor der forventes et tekstargument: Upper, Lower, Left, Right, Concatenate, Mid, Len, StartsWith, EndsWith, TrimEnds, Trim, Substitute og Replace.
- I de implicitte formler, f.eks.
12 & "foo"
. eller, eller12 & 34
"foo" & 12
. - Intern konvertering af tal til tekst understøttes ikke. Vi anbefaler at bruge
Text(Number, Format)
til at konvertere et tal til tekst. I det tilfælde, hvor etString
argument overføres i enText
funktion, understøttes argumentetFormat
ikke. - Her er et eksempel på, hvordan du
Text
bruger funktionen til at konvertere et tal til tekst og føje en streng til det:
Concatenate(Text(123,"#"),"ab") Text(123,"#") & "foo"
Landestandardspecifikke formateringstokener som "." og "," understøttes ikke i formelkolonner.
Områdevalidering for formelkolonner
- Du kan ikke angive egenskaberne Minimumværdi eller Maksimumværdi for en formelkolonne.
- Alle interne beregninger skal ligge inden for Dataverse-intervallet for formelkolonner af decimaltypen (-100000000000 til 100000000000).
- En hard-codet konstantværdi, der angives i formellinjen, skal være inden for Dataverse-intervallet.
- Hvis der findes en numerisk kolonne, der er null, opfattes den som 0 i den mellemliggende handling. For eksempel,
a+b+c and If a = null, b=2, c=3
så formel kolonne giver0 + 2 + 3 = 5
.- Denne funktionsmåde adskiller sig fra beregnede kolonner i dette tilfælde, fordi beregnede kolonner giver
null + 2 + 3 = null
.
- Denne funktionsmåde adskiller sig fra beregnede kolonner i dette tilfælde, fordi beregnede kolonner giver
Generel validering for formelkolonner
- Formelkolonner kan referere til andre formelkolonner, men en formelkolonne kan ikke referere til sig selv.
- Formelkolonner understøtter ikke cykliske kæder, f.eks.
F1 = F2 + 10, F2 = F1 * 2
. - Maksimumlængden for formeludtryk i formelkolonner er 1000 tegn.
- Den tilladte maksimumdybde i formelkolonner er 10. Dybde defineres som kæden af formelkolonner, der refererer til andre formel- eller akkumuleringskolonner.
- For eksempel,
table E1, F1 = 1*2, table E2, F2 - E1*2
. I dette eksempel er dybden for F2 1.
- For eksempel,
- I modelbaserede apps er sortering deaktiveret på:
- En formelkolonne, der indeholder en kolonne for en relateret række.
- En formelkolonne, der indeholder en logisk kolonne (for eksempel adressekolonne).
- En formelkolonne, der indeholder en anden beregnet kolonne eller en anden formelkolonne.
- En formelkolonne, der bruger tidsbundet funktion
UTCNow()
.
- Kolonner af typen Helt tal med formatet Sprog, Varighed og Tidszone understøttes ikke i formelkolonner.
- Kolonner af typen Streng med formatet Mail, Tekstområde, Aktiesymbol, URL-adresse understøttes ikke i formelkolonner.
- Formelkolonner viser ikke værdier, når appen er i mobile offline-tilstand.
- Du kan ikke udløse arbejdsprocesser eller plug-ins på formelkolonner.
- Det anbefales ikke at bruge beregnede kolonner i formelkolonner og omvendt.
- Regler for registrering af dubletter udløses ikke på formelkolonner.
- Funktionen
Now
kan bruges sammen med formelkolonner.Now()
har brugerens lokale adfærd ogUTCNow()
har tidszoneuafhængig adfærd. - Du kan angive præcisionsegenskaben for decimalkolonner.
- Standardværdien for formeldatatypen er angivet til Decimal for numeriske værdier, der returnerer formler.
- Opdatering af formatet for kolonnen med heltalsformel understøttes ikke.
Formelkolonner med datatyper, der ikke kan produceres
- Valuta
Se også
Oversigt over Microsoft Power Fx
Formel, beregnede kolonner og akkumuleringskolonner, der bruger kode