Arbejde med formelkolonner
Formelkolonner er kolonner, der viser en beregnet værdi i en Microsoft Dataverse-tabel. Formler bruger Power Fx, et stærkt, men brugervenligt 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:
- Et Visningsnavn for kolonnen.
- Indtast eventuelt 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: Type af formel
- Vælg yderligere egenskaber:
- Under Søgbart skal du markere afkrydsningsfeltet, hvis du har brug for, at kolonnen er 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 der en formelkolonne med navnet Samlet pris. Kolonnen Antal enheder er datatypen Helt tal. Kolonnen Pris er en decimaldatatype.
I formelkolonnen vises 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, hvis kolonnetypen ikke ændres.
Formlen pris * rabat opretter f.eks. kolonnetypen tal. Du kan ændre pris * rabat til pris * (rabat +10 %), da kolonnetypen ikke ændres. Men du kan ikke ændre pris * rabat til Tekst (pris * rabat), da det ville kræve, at kolonnetypen ændres 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.
Vigtigt
Dette er en prøveversionsfunktion, der kun er tilgængelig i amerikanske områder.
Eksempelvisningsfunktionerne 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 findes en Kundebedømmelse-kundekolonne, som viser bedømmelse efter firma.
Angiv formlen på det naturlige sprog i feltet Hent formelforslag, f.eks. Hvis bedømmelse i kolonnen bedømmelse er lig med eller større end 5, skal du angive som God, og hvis der er mindre end 5, der angiver som Gennemsnitlig, og hvis værdien er tom eller nul, vises den som Forkert, og vælg derefter pileknappen (enter).
Kopiér derefter den Foreslåede formel.
Indsæt den 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 den beregnede formelkolonne Vurderingsbeskrivelse, der vises på denne måde.
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:
+, -, *, /, %, i, exactin, &
Du kan finde flere oplysninger i Operatorer i Power Apps.
Datatyper
Følgende datatyper kan vises i en formelkolonne:
- SMS-besked
- Decimaltal
- Vælg Ja/Nej (boolesk)
- Datetime
- Helt tal
Datatyperne valuta og valg (tidligere grupperede indstillinger) understøttes ikke i øjeblikket.
Funktionstyper
Følgende funktionstyper kan bruges i en formelkolonne:
- Decimal
- Streng
- Boolesk
- Grupperet indstilling
- 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 forfremmet til decimal
Funktioner
Følgende skalarfunktioner kan bruges i en formelkolonne:
Value *
Text *
Decimal *
* Funktionerne Text og Value 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) |
Oprette en decimalformelkolonne
Opret en formelkolonne, der returnerer et decimaltal.
- Når du opretter en kolonne, skal du angive følgende oplysninger:
- Et Visningsnavn for kolonnen.
- Indtast eventuelt en Beskrivelse af kolonnen.
- For Datatype skal du vælge fx Formel.
- Angiv en formel, der returnerer en numerisk værdi på formellinjen . I dette eksempel oprettes en formelkolonne med navnet Samlet beløb. Kolonnen pris pr. enhed er af decimaldatatypen.
- Udvid Avancerede indstillinger, vælg Decimal som datatype Formel, og angiv derefter det nødvendige antal decimaler.
- Vælg Gem.
Oprette en formelkolonne med heltal
Opret en formelkolonne, der returnerer et heltal.
- Når du opretter en kolonne, skal du angive følgende oplysninger:
- Et Visningsnavn for kolonnen.
- Indtast eventuelt en Beskrivelse af kolonnen.
- For Datatype skal du vælge fx Formel.
- Angiv en formel, der returnerer en numerisk værdi på formellinjen . I dette eksempel oprettes en formelkolonne med navnet Antal enheder. Kolonnerne Samlet pris og pris pr. enhed er af decimaldatatypen.
- Udvid Avancerede indstillinger, og vælg Heltal som datatype Formel, og angiv det ønskede format for kolonnen Heltal.
- Vælg Gem.
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 kolonnerne for valuta og valutakurs 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 kolonnetype for valuta sammen med en kombination af valutakurskolonner 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.
- I forbindelse med kolonner med dato- og klokkeslætsformularer skal du kontrollere følgende, mens du bruger funktionen
DateDiff
:- Kolonnen for funktionsmåden for brugers lokaltid kan ikke sammenlignes eller bruges med en kolonne med funktionsmåden for
DateTime(TZI)/DateOnly
. - Kolonner for funktionsmåden for brugers lokaltid kan kun sammenlignes eller bruges med en anden kolonne med funktionsmåden for brugers lokaltid.
- Kolonner med funktionsmåden for
DateTime(TZI)
kan sammenlignes eller bruges iDateDiff
-funktioner med en anden kolonne med funktionsmåden forDateTime(TZI)/DateOnly
. - Kolonner med funktionsmåden for
DateOnly
kan sammenlignes eller bruges i DateDiff-funktioner med en anden kolonne med funktionsmåden forDateTime(TZI)/DateOnly
.
- Kolonnen for funktionsmåden for brugers lokaltid kan ikke sammenlignes eller bruges med en kolonne med funktionsmåden for
- Dato-/klokkeslætskolonner og dato-/klokkeslætsfunktionerne
UTCNow()
Now()
kan ikke overføres som en parameter til strengfunktioner.
Brug af formelkolonner i akkumuleringsfelter
- En simpel formelkolonne er det sted, hvor formlen bruger kolonner fra den samme post, eller hvor der bruges hard-codede kodede værdier. I forbindelse med akkumuleringskolonner skal formelkolonner være simple formelkolonner, f.eks. som i dette eksempel på en akkumuleringskolonne.
- En formelkolonne, der er afhængig af de tidsbundne funktioner
UTCNow()
ogUTCToday()
, kan ikke bruges i et akkumuleringsfelt.
Anbefalinger til Power Fx-tekstfunktion
Formelkolonner understøtter ikke
Text()
-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"
eller12 & 34
eller"foo" & 12
. - Intern konvertering af tal til tekst understøttes ikke. Det anbefales, at
Text(Number, Format)
bruges til at konvertere et tal til tekst. Hvis etString
-argument overføres i enText
-funktion, understøttesFormat
-argumentet ikke. - Her er et eksempel på, hvordan
Text
-funktionen kan bruges 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 Minimum value eller Maximum value 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. Hvis du f.eks. har
a+b+c and If a = null, b=2, c=3
, bliver formelkolonnen0 + 2 + 3 = 5
.- Denne funktionsmåde er forskellig fra beregnede kolonner i dette tilfælde, fordi beregnede kolonner giver
null + 2 + 3 = null
.
- Denne funktionsmåde er forskellig 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. Dybden defineres som en kæde af formelkolonner, der refererer til andre formelkolonner eller akkumuleringskolonner.
- F.eks.,
table E1, F1 = 1*2, table E2, F2 - E1*2
. I dette eksempel er dybden for F2 1.
- F.eks.,
- 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 den tidsbaserede 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 funktionsmåden for en brugers lokaltid, ogUTCNow()
har en uafhængig funktionsmåde for tidszone. - 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.
Power Fx-funktioner, der ikke understøttes i øjeblikket
- Power
- Sqrt
- Exp
- Ln
- ^ (operator)
Formelkolonner med datatyper, der ikke kan produceres
- Valg (undtagen Ja/Nej-valg)
- Valuta
Se også
Oversigt over Microsoft Power Fx
Formel, beregnede kolonner og akkumuleringskolonner, der bruger kode