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

  1. Log på Power Apps på https://make.powerapps.com.

  2. 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.

  3. Vælg området Kolonner, og vælg derefter Ny kolonne.

  4. Angiv følgende oplysninger:

    • Et Visningsnavn for kolonnen.
    • Indtast eventuelt en Beskrivelse af kolonnen.
  5. For Datatype skal du vælge fx Formel.

  6. Skriv formlen, eller brug formelforslag:

    Angiv Power Fx-formlen i feltet Formel. Flere oplysninger: Type af formel


  1. 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.
  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.

Skærmbillede af en formelkolonnedefinition.

I formelkolonnen vises resultatet af Pris ganget med Antal enheder.

Skærmbillede af en post med en formelkolonne.

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. Eksempel på kundebedømmelseskolonne

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. Foreslået formel

Indsæt den i feltet Skriv en formel. Vælg Gem. Indsæt formlen i feltet Skriv en formel.

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.

Kontrollere resultaterne for kolonnen Formel

Ansvarlig AI

Du kan finde oplysninger om ansvarlig AI ved at gå til disse ressourcer:

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

Datatyperne Valuta, Heltal og Valg (tidligere grupperet indstilling) 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:

Abs

And

Day

Value *

If

Int

Len

Max

Mid

Min

Mod

Not

Or

Sum

Text *

Nu

* 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)

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. Formelkolonne med ikke-understøttet formel for Firma. Årlig omsætning
  • 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) eller Decimal(exchange rate). Funktionen Decimal 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 i DateDiff-funktioner med en anden kolonne med funktionsmåden for DateTime(TZI)/DateOnly.
    • Kolonner med funktionsmåden for DateOnly kan sammenlignes eller bruges i DateDiff-funktioner med en anden kolonne med funktionsmåden for DateTime(TZI)/DateOnly. Konfiguration af ikke-understøttet dato og klokkeslæt med en formelkolonne
  • Dato-/klokkeslætskolonner og dato-/klokkeslætsfunktionerne UTCNow() Now() kan ikke overføres som en parameter til strengfunktioner. Formelkolonne, hvor parameter for dato og klokkeslæt, der ikke understøttes, er overført i formel

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. Eksempel på en simpel formelkolonne for en akkumuleringskolonne Eksempel på konfiguration af akkumuleringskolonne
  • En formelkolonne, der er afhængig af de tidsbundne funktioner UTCNow() og UTCToday(), 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. Formelkolonne med ikke-understøttet tekstfunktion med et talargument

  • 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 12 & 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 et String-argument overføres i en Text-funktion, understøttes Format-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. Ikke-understøttet landebaseret formateringstoken overføres som parameter til funktionen Text i formel

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 formelkolonnen 0 + 2 + 3 = 5.
    • Denne funktionsmåde er forskellig fra beregnede kolonner i dette tilfælde, fordi beregnede kolonner giver null + 2 + 3 = null.

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.
  • 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, og UTCNow() har en uafhængig funktionsmåde for tidszone.
  • Du kan angive præcisionsegenskaben for decimalkolonner.

Power Fx-funktioner, der ikke understøttes i øjeblikket

  • Power
  • Sqrt
  • Exp
  • Ln
  • ^ (operator)

Formelkolonner med datatyper, der ikke kan produceres

  • Helt tal
  • Valg (undtagen Ja/Nej-valg)
  • Valuta

Se også

Typer kolonner

Oversigt over Microsoft Power Fx

Formel, beregnede kolonner og akkumuleringskolonner, der bruger kode