Arbeide med formelkolonner
Formelkolonner er kolonner som viser en beregnet verdi i en Microsoft Dataverse-tabell. Formler bruker Power Fx, et kraftig, 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 deg 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 ikonet Kolonner-området , og deretter Velg Ny kolonne.
Angi følgende informasjon:
- ENVisningsnavnfor kolonnen.
- Du kan også angi en Beskrivelse av kolonnen.
For Datatype Velg fx-formel .
Skriv inn formelen, eller bruk formelforslag:
Skriv inn formelen Power Fx i Formel-boksen . Mer informasjon: Skrive inn en formel
- Velg flere egenskaper:
- VelgSø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
I eksemplet nedenfor opprettes en formelkolonne kalt Totalpris. Kolonnen Antall enheter er en datatype for heltall. 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. Det betyr at du bare kan endre formelen etter at du har opprettet kolonnen når den ikke endrer kolonnetypen.
Formelen pris * rabatt oppretter for eksempel en kolonnetype med tall. Du kan endre pris * rabatt til pris * (rabatt + 10 %) fordi det ikke endrer kolonnetypen. Du kan imidlertid ikke endre pris * rabatt til Tekst(pris * rabatt) fordi det vil kreve å endre 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åndsversjonsfunksjonene er ikke ment for produksjonsbruk og kan ha begrenset funksjonalitet. Disse funksjonene er tilgjengelige før en offisiell utgivelse, 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
Hvis du vil aktivere denne funksjonen, må du aktivere miljøinnstillingen AI-forslag for formelkolonner . Mer informasjon: AI-forslag for formelkolonner
Eksempel på naturlig språkinndata
Tenk deg at Der er en Kundevurdering-kolonne som viser vurderingen deres etter konto.
Skriv inn formelen på naturlig språk i boksen Få formelforslag , for eksempel Hvis rangeringen i vurderingskolonnen er lik eller større enn 5, angi som God, og hvis mindre enn 5, angi som Gjennomsnitt, og hvis verdien er tom eller null, vises den som Dårlig, og Velg deretter pilknappen (ENTER).
Kopier deretter den foreslåtte formelen .
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 for vurderingsbeskrivelse , som ser slik ut.
Ansvarlig kunstig intelligens
Hvis du vil ha informasjon om ansvarlig KI, kan du gå til disse ressursene:
- Vanlige spørsmål om å bygge apper og tabeller gjennom samtale
- Vanlige spørsmål om ansvarlig bruk av AI 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
- Heltall
- Flyte
- Boolsk valg (ja/nei)
- Valg (tidligere alternativsett)
- Datetime
Mer informasjon: Opprette formelkolonner med datatypene desimaler, heltall, flyttall og valg\
Valutadatatypen støttes ikke for øyeblikket.
Funksjonstyper
Du kan bruke følgende funksjonstyper i en formelkolonne:
- Decimal
- String
- Bolsk
- Valg
- 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
Funksjoner
For skalarfunksjonene du kan bruke i en formelkolonne, gå til Formelreferanse - Dataverse formelkolonner.
* Tekst - og verdifunksjonene fungerer bare med heltall, der det ikke er noen desimalskilletegn 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-argumentet støttes ikke for funksjonene WeekNum og Weekday i formelkolonner.
Funksjonseksempel
Description | Eksempel |
---|---|
Hent en datoverdi. | DateAdd(UTCNow(),-1,TimeUnit.Years) |
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. Bruken av valuta- og valutakurskolonner oppnås gjennom
Decimal
funksjonen, for eksempelDecimal(currency column)
ellerDecimal(exchange rate)
. FunksjonenDecimal
sørger for at utgangen er innenfor det aksepterte 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 vil ha et lignende resultat, kan du bruke en valuta-kolonnetype sammen med en kolonnekombinasjon av valutakurs 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 og klokkeslett, mens du bruker
DateDiff
funksjonen, må du kontrollere at:- Kolonnen for brukerens lokale atferd kan ikke sammenlignes eller brukes med en
DateTime(TZI)/DateOnly
atferdskolonne. - Kolonner for brukerlokal virkemåte kan bare sammenlignes eller brukes med en annen kolonne for brukerlokal virkemåte.
DateTime(TZI)
Virkemåtekolonner 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.
- Kolonnen for brukerens lokale atferd kan ikke sammenlignes eller brukes med en
- Dato/klokkeslett-kolonner og dato/klokkeslett-funksjoner
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 post eller bruker 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 tidsbundne funksjoner
UTCNow()
ogUTCToday()
ikke kan brukes i et felt for beregnet verdi.
Power Fx-tekstfunksjonsanbefalinger
Formelkolonner støtter
Text()
ikke 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 de implisitte formlene, for eksempel
12 & "foo"
, eller12 & 34
, eller"foo" & 12
. - Internt tall-til-tekst-konvertering støttes ikke. Vi anbefaler å bruke
Text(Number, Format)
til å konvertere et tall til tekst. Hvis etString
argument sendes i enText
funksjon, støttes ikke argumentetFormat
. - Her er et eksempel på bruk av
Text
funksjonen til å konvertere et tall til tekst og legge til en streng til det:
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,da
a+b+c and If a = null, b=2, c=3
formel kolonne gir0 + 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 er definert som kjeden av formelkolonner som refererer til andre formel- eller kolonner for beregnet verdi.
- For eksempel,
table E1, F1 = 1*2, table E2, F2 - E1*2
. I dette eksemplet er dybden F2 1.
- For eksempel,
- I modelldrevne apper er sortering deaktivert for:
- 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.
- Funksjonen
Now
kan brukes med formelkolonner.Now()
har brukerlokal virkemåte ogUTCNow()
har tidssoneuavhengig virkemåte. - Du kan angi presisjonsegenskapen for desimalkolonner.
- Standard formeldatatypeverdi er satt til Desimal for numeriske verdireturnerende formler.
- Oppdatering av formatet for heltallsformelkolonnen støttes ikke.
Formelkolonner med datatyper som ikke kan lages
- Valuta
Se også
Oversikt over Microsoft Power Fx
Formel- og beregnede kolonner og kolonner for beregnet verdi ved hjelp av kode