Arbeide med formelkolonner
Formelkolonner er kolonner som viser en beregnet verdi i en Microsoft Dataverse-tabell. Formler bruker Power Fx, et avansert, men menneskevennlig programmeringsspråk. Du bygger en formel i en Dataverse-formelkolonne på samme måte som du ville bygge en formel i Microsoft Excel. Etter hvert som du skriver, foreslår Intellisense funksjoner og syntaks og hjelper deg også med å rette opp feil.
Legg til en formelkolonne
Logg på Power Apps på https://make.powerapps.com.
Velg Tabeller, og velg deretter tabellen der du vil legge til en formelkolonne. Hvis elementet ikke finnes i sideruten, velger du ...Mer og deretter elementet du vil ha.
Velg Kolonner-området, og velg deretter Ny kolonne.
Angi følgende informasjon:
- Visningsnavn for kolonnen.
- Du kan også skrive inn en beskrivelse av kolonnen.
For Datatype velger du fx-formel.
Skriv inn formelen, eller bruk formelforslag:
Skriv inn Power Fx-formelen i Formel-boksen. Mer informasjon: Skriv inn en formel
- Velg tilleggsegenskaper:
- Velg Søkbar hvis du vil at denne kolonnen skal være tilgjengelig i visninger, diagrammer, instrumentbord og Avansert søk.
- Avanserte alternativer:
- Hvis formelen evalueres til en desimalverdi, utvider du Avanserte alternativer for å endre antall presisjonspunkter mellom 0 og 10. Standardverdien er 2.
- Velg Lagre.
Skriv inn en formel
Eksemplet nedenfor oppretter en formelkolonne kalt Totalpris. Kolonnen Antall enheter er en heltallsdatatype. Pris-kolonnen er en desimaldatatype.
Formelkolonnen viser resultatet av Pris multiplisert med Antall enheter.
Formelen du skriver inn, bestemmer kolonnetypen. Du kan ikke endre en kolonnetype etter at kolonnen er opprettet. Dette betyr at du bare kan endre kolonnen etter at du har opprettet den, hvis den ikke endrer kolonnetypen.
Formelen pris * rabatt oppretter for eksempel en kolonnetype med tall. Du kan endre pris * rabatt til pris * (rabatt + 10 %) fordi dette ikke endrer kolonnetypen. Du kan imidlertid ikke endre prisrabatt* til Tekst (prisrabatt)* fordi dette ville kreve endring av kolonnetypen til streng.
Få formelforslag (forhåndsversjon)
[Dette emnet inneholder dokumentasjon for forhåndsversjonen, og kan bli endret.]
Beskriv hva du vil at formelen skal gjøre, og hent KI-genererte resultater. Formelforslag kan ta imot inndata på naturlig språk for å tolke og foreslå en Power Fx-formel ved hjelp av en modell for kunstig intelligens som er basert på GPT.
Viktig
Dette er en evalueringsfunksjonalitet som bare er tilgjengelig i USA.
Forhåndsfunksjonene er ikke ment for produksjonsbruk og kan ha begrenset funksjonalitet. Disse funksjonene er tilgjengelige før en offisielle utgivelsen, slik at kunder kan få tidlig tilgang og gi tilbakemeldinger.
For øyeblikket støttes formelforslag som refererer til én enkelt tabell. Formelforslag som refererer til en kolonne i en relatert tabell, støttes ikke.
Forutsetning
For å kunne aktivere denne funksjonen må du aktivere miljøinnstillingen KI-forslag for formelkolonner. Mer informasjon: KI-forslag for formelkolonner
Eksempel på naturlig språkinndata
Tenk deg at det finnes en Kunderangering-kolonne som viser vurderingen etter forretningsforbindelse.
I boksen Hent formelforslag angir du formelen på naturlig språk, for eksempel Hvis vurderingen i vurderingskolonnen er lik eller større enn 5, angir du som God, og hvis under 5, angir som Gjennomsnitt,og hvis verdien er tom eller null, vises Dårlig, og deretter velger du pilknappen (enter).
Deretter kopierer du Foreslått formel.
Og lim den inn i boksen Skriv inn en formel. Velg Lagre.
Slik vises formelen når den limes inn.
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"
)
Kontroller den beregnede formelkolonnen Vurderingsbeskrivelse, som vises slik.
Ansvarlig kunstig intelligens
Hvis du vil ha informasjon om ansvarlig KI, kan du gå til disse ressursene:
- Vanlige spørsmål om bygging av apper og tabeller via samtaler
- Vanlige spørsmål om bruk av KI på en ansvarlig måte i Power Apps
Operatorer
Du kan bruke følgende operatorer i en formelkolonne:
+, -, *, /, %, in, exactin, &
Hvis du vil ha mer informasjon, kan du gå til Operatorer i Power Apps.
Datatyper
Du kan vise følgende datatyper i en formelkolonne:
- Tekstmelding
- Desimaltall
- Valg, Ja/Nei (boolsk)
- Datetime
- Heltall
Datatypene valuta og valg (tidligere alternativsett) støttes ikke for øyeblikket.
Funksjonstyper
Du kan bruke følgende funksjonstyper i en formelkolonne:
- Desimal
- Streng
- Boolsk
- Alternativsett
- DateTime (TZI)
- DateTime (brukerlokal) (begrenset til sammenligninger med andre brukerlokalverdier DateAdd- og DateDiff-funksjoner)
- DateTime (Bare dato) (begrenset til sammenligninger med andre Bare dato-verdier, DateAdd- og DateDiff-funksjoner)
- Valuta
- Heltall, forfremmet til desimal
Funksjoner
Du kan bruke følgende skalarfunksjoner i en formelkolonne:
Value *
Text *
Desimal *
* Funksjonene Text og Value fungerer bare med heltall der desimalskilletegn ikke er involvert. Desimalskilletegnet varierer på tvers av nasjonale innstillinger. Siden formelkolonner evalueres uten kunnskap om nasjonale data, kan du ikke tolke eller generere desimalskilletegnet på riktig måte.
* StartOfWeek-argument støttes ikke for funksjonene WeekNum og Weekday i formelkolonner.
Funksjonseksempel
Description | Eksempel |
---|---|
Hent en datoverdi. | DateAdd(UTCNow(),-1,TimeUnit.Years) |
Opprette en kolonne med desimalformel
Opprett en formelkolonne som returnerer et desimaltall.
- Når du oppretter en kolonne, angir du følgende informasjon:
- Visningsnavn for kolonnen.
- Du kan også skrive inn en beskrivelse av kolonnen.
- For Datatype velger du fx-formel.
- Skriv inn en formel som returnerer en numerisk verdi på formellinjen . Dette eksemplet oppretter en formelkolonne kalt Totalbeløp. Kolonnen pris per enhet er av desimaldatatypen.
- Utvid Avanserte alternativer, VelgDesimal · som Formel-datatype, og angi deretter ønsket antall desimaler.
- Velg Lagre.
Opprette en formelkolonne for heltall
Opprett en formelkolonne som returnerer et heltall.
- Når du oppretter en kolonne, angir du følgende informasjon:
- Visningsnavn for kolonnen.
- Du kan også skrive inn en beskrivelse av kolonnen.
- For Datatype velger du fx-formel.
- Skriv inn en formel som returnerer en numerisk verdi på formellinjen . Dette eksemplet oppretter en formelkolonne kalt Antall enheter. Totalpris og pris per enhetkolonner er av desimaldatatypen.
- Utvid Avanserte alternativer, og VelgHeltall som Formel-datatype , og angi ønsket format for heltallskolonnen.
- Velg Lagre.
Retningslinjer og begrensninger
Denne delen beskriver retningslinjer og kjente begrensninger for formelkolonner i Dataverse.
Bruksvalideringer for valutafelt
- Formelkolonner støtter ikke bruk av en relatert tabellvalutakolonne i formelen, for eksempel i dette eksemplet.
- Direkte bruk av valutakolonner og valutakurs i formelen støttes ikke for øyeblikket. Bruk av valuta- og valutakurskolonner oppnås ved hjelp av
Decimal
-funksjonen, for eksempelDecimal(currency column)
ellerDecimal(exchange rate)
. FunksjonenDecimal
kontrollerer at utdataene er innenfor det tillatte området. Hvis kolonneverdien for valutaen eller valutakursen overskrider det tillatte området, returnerer formelen null. - Standardvalutakolonner støttes ikke i formelkolonneuttrykkene, fordi de er systemkolonner som brukes til rapporteringsformål. Hvis du ønsker et lignende resultat, kan du bruke en valutakolonnetype sammen med en kombinasjon av valutakurskolonner som
CurrencyField_Base = (CurrencyField / ExchangeRate)
.
Bruksvalideringer for dato/klokkeslett-kolonner
- Virkemåten til formelkolonner for dato og klokkeslett kan bare oppdateres når den ikke brukes i en annen formelkolonne.
- For formelkolonner for dato/klokkeslett når funksjonen
DateDiff
brukes, kontrollerer du følgende:- Kolonne for brukerlokal virkemåte kan ikke sammenlignes eller brukes med en
DateTime(TZI)/DateOnly
-virkemåtekolonne. - Kolonner for brukerlokal virkemåte kan bare sammenlignes eller brukes med en annen kolonne for brukerlokal virkemåte.
DateTime(TZI)
-virkemåtekolonne kan sammenlignes eller brukes iDateDiff
-funksjoner med en annenDateTime(TZI)/DateOnly
-virkemåtekolonne.DateOnly
-virkemåtekolonner kan sammenlignes eller brukes i DateDiff-funksjonen med en annenDateTime(TZI)/DateOnly
-virkemåtekolonne.
- Kolonne for brukerlokal virkemåte kan ikke sammenlignes eller brukes med en
- Dato/klokkeslett-kolonner og dato/klokkeslett-funksjonene
UTCNow()
,Now()
kan ikke sendes som en parameter til strengfunksjoner.
Bruk av formelkolonner i felt for beregnet verdi
- En enkel formelkolonne er der formelen bruker kolonner fra samme oppføring eller hardkodede verdier. For kolonner for beregnet verdi må formelkolonner være enkle formelkolonner, for eksempel denne kolonnen for beregnet verdi.
- En formelkolonne som er avhengig av de tidsbundne funksjonene
UTCNow()
ogUTCToday()
kan ikke brukes i et felt for beregnet verdi.
Power Fx-tekstfunksjonsanbefalinger
Formelkolonner støtter ikke
Text()
-funksjoner med ett enkelt argument av typen Tall. Tall kan være heltall, desimaler eller valutaer.Formelkolonner støtter ikke bruk av tall i følgende konfigurasjoner:
- I strengfunksjoner: Dette er strengfunksjoner som plasseres der et tekstargument forventes: Upper, Lower, Left, Right, Concatenate, Mid, Len, StartsWith, EndsWith, TrimEnds, Trim, Substitute og Replace.
- I implisitte formler, for eksempel
12 & "foo"
eller12 & 34
eller"foo" & 12
. - Internt tall-til-tekst-konvertering støttes ikke. Vi anbefaler at du bruker
Text(Number, Format)
til å konvertere et tall til tekst. I tilfellet der etString
-argument sendes i enText
-funksjon, støttes ikkeFormat
-argumentet. - Her er et eksempel på hvordan du bruker
Text
-funksjonen til å konvertere et tall til tekst og føye til en streng i den:
Concatenate(Text(123,"#"),"ab") Text(123,"#") & "foo"
Spesifikke formateringstokener for nasjonal innstilling som «.» og «,» støttes ikke i formelkolonner.
Områdevalideringer for formelkolonner
- Du kan ikke angi egenskapene Minimumsverdi eller Maksimumsverdi for en formelkolonne.
- Alle interne beregninger må være innenfor Dataverse-området for formelkolonner av desimaltypen (-100000000000 til 100000000000).
- En hardkodet litteralverdi som er angitt på formellinjen, må være innenfor Dataverse-området.
- Hvis det finnes en numerisk kolonne som er null, regnes den som 0 i den midlertidige operasjonen. For eksempel
a+b+c and If a = null, b=2, c=3
gir formelkolonnen0 + 2 + 3 = 5
.- Denne virkemåten er forskjellig fra beregnede kolonner i dette tilfellet fordi beregnede kolonner gir
null + 2 + 3 = null
.
- Denne virkemåten er forskjellig fra beregnede kolonner i dette tilfellet fordi beregnede kolonner gir
Generelle valideringer for formelkolonner
- Formelkolonner kan referere til andre formelkolonner, men en formelkolonne kan ikke referere til seg selv.
- Formelkolonner støtter ikke sykliske kjeder, for eksempel
F1 = F2 + 10, F2 = F1 * 2
. - Maksimal lengde på formeluttrykk i formelkolonner er 1000 tegn.
- Maksimal dybde som er tillatt i formelkolonner, er 10. Dybde defineres som kjeden av formelkolonner som refererer til andre kolonner for formel eller beregnet verdi.
- Eksempel:
table E1, F1 = 1*2, table E2, F2 - E1*2
. I dette eksemplet er dybden F2 1.
- Eksempel:
- I modelldrevne apper er sortering deaktivert etter:
- En formel som inneholder en kolonne fra en relatert tabell.
- En formelkolonne som inneholder en logisk kolonne (for eksempel adressekolonnen).
- En formelkolonne som inneholder en annen beregnet kolonne eller formelkolonne.
- En formelkolonne som bruker tidsbundet funksjon
UTCNow()
.
- Kolonner av typen Heltall med formatet Språk, Varighet, Tidssone støttes ikke i formelkolonner.
- Kolonner av typen Streng med formatet E-post, Tekstområde, Ticker-kode, Nettadresse støttes ikke i formelkolonner.
- Formelkolonner viser ikke verdier når appen er i Mobile offline-modus.
- Du kan ikke utløse arbeidsflyter eller programtillegg i formelkolonner.
- Vi anbefaler ikke å bruke beregnede kolonner i formelkolonner, og omvendt.
- Duplikatregistreringsregler utløses ikke for formelkolonner.
Now
-funksjonen kan brukes med formelkolonner.Now()
har brukerlokal virkemåte ogUTCNow()
har tidssoneuavhengig funksjonalitet.- Du kan angi presisjonsegenskapen for desimalkolonner.
- Standard formeldatatypeverdi er satt til Desimal for numeriske verdireturnerende formler.
- Oppdatering av formatet for heltallsformelkolonnen støttes ikke.
Power Fx-funksjoner som ikke støttes for øyeblikket
- Power
- Sqrt
- Exp
- Ln
- ^ (operator)
Formelkolonner med datatyper som ikke kan lages
- Valg (unntatt Ja/Nei-valg)
- Valuta
Se også
Oversikt over Microsoft Power Fx
Formel- og beregnede kolonner og kolonner for beregnet verdi ved hjelp av kode