Dela via


Arbeta med formelkolumner

Formelkolumner är kolumner som visar ett beräknat värde i en Microsoft Dataverse tabell. Formler använder Power Fx, ett kraftfullt men människovänligt programmeringsspråk. Skapa en formel i en Dataverse formelkolumn på samma sätt som du bygger en formel i Microsoft Excel. När du skriver föreslår Intellisense-funktioner och syntax, och hjälper dig till och med att åtgärda fel.

Lägg till en formelkolumn

  1. Logga in i Power Apps på https://make.powerapps.com.

  2. Välj Tabeller och välj sedan tabellen där du vill lägga till en formelkolumn. Om objektet inte finns i sidopanelsfönstret väljer du ... Mer och markerar sedan det objekt du vill använda.

  3. Välj den Kolumner och sedan VäljNy kolumn.

  4. Ange följande information:

    • Avisningsnamnför kolumnen.
    • Du kan också ange en Beskrivning av kolumnen .
  5. För Datatyp Väljfx Formel.

  6. Skriv formeln eller använd förslag på formeln:

    Ange formeln Power Fx i rutan Formel . Mer information: Skriv en formel


  1. Välj ytterligare egenskaper:
    • VäljSökbar om du vill att den här kolumnen ska vara tillgänglig i vyer, diagram, instrumentpaneler och Avancerad sökning.
    • Avancerade alternativ:
      • Om formeln utvärderas till ett decimalvärde expanderar du Avancerade alternativ för att ändra antalet precisionspunkter, mellan 0 och 10. Standardvärdet är 2.
  2. Välj Spara.

Skriv en formel

I följande exempel skapas en formelkolumn med namnet Totalt pris. Kolumnen Antal enheter är en datatyp för heltal. Kolumnen Price är en decimaldatatyp.

Skärmbild av en kolumndefinition för en formel.

Formelkolumnen visar resultatet av Pris multiplicerat med Antal enheter.

Skärmbild av en post med en formelkolumn.

Formeln du anger bestämmer kolumntypen. Du kan inte ändra en kolumntyp efter att kolumnen har skapats. Det innebär att du bara kan ändra formeln när du har skapat kolumnen när den inte ändrar kolumntypen.

Formeln pris * rabatt skapar till exempel en kolumntyp av tal. Du kan ändra pris * rabatt till pris * (rabatt + 10 %) eftersom det inte ändrar kolumntypen. Du kan dock inte ändra pris * rabatt till Text (pris * rabatt) eftersom det skulle kräva att kolumntypen ändras till sträng.

Få formelförslag (förhandsversion)

[Det här avsnittet utgör förhandsdokumentation och kan komma att ändras.]

Beskriv vad du vill att formeln ska göra och få AI-genererade resultat. Formelförslag godkänner indata i ditt naturligt språk för att tolka och föreslår en Power Fx-formel med hjälp av GPT-baserad AI-modell.

Viktigt

Detta är en förhandsgranskningsfunktion och endast i USA-regioner.

Förhandsversionsfunktioner ska inte användas i produktion och funktionerna kan vara begränsade. funktionerna är tillgängliga före den officiella publiceringen så att kunderna kan få tillgång tidigare och ge oss feedback.

För närvarande stöds formelförslag som refererar till en enskild tabell. Formelförslag som refererar till en kolumn i en relaterad tabell stöds inte.

Förutsättningar

Om du vill aktivera den här funktionen måste du aktivera miljöinställningen AI-förslag för formelkolumner . Mer information:AI-förslag för formelkolumner

Exempel på inmatning av naturligt språk

Föreställ dig Dit är en kolumn för kundbetyg som visar deras betyg per konto. Exempel på kolumn för kundbetyg

I rutan Hämta formelförslag anger du formeln på naturligt språk, till exempel Om klassificeringen i betygskolumnen är lika med eller större än 5 anger du som Bra och om mindre än 5 anger du som Genomsnitt och om värdet är tomt eller noll visas det som Dåligt och Välj sedan pilknappen (Retur).

Kopiera sedan den föreslagna formeln . Föreslagen formel

Och klistra in den i rutan Skriv en formel . Välj Spara. Klistra in formel i rutan Skriv en formel.

Så här ser formeln ut när den klistras in.

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

Kontrollera den beräknade formelkolumnen för klassificeringsbeskrivning , som ser ut så här.

Kontrollera resultatet för formelkolumnen

Ansvarsfull AI

För information om ansvarsfull AI, gå till dessa resurser:

Operatorer

Du kan använda följande operatorer i en formelkolumn:
+, -, *, /, %, in, exactin, &

Mer information finns i Operatorer i Power Apps.

Datatyper

Du kan visa följande datatyper i en formelkolumn:

Mer information: Skapa formelkolumner med datatyperna decimal, heltal, flyttal och val\

Valutadatatypen stöds inte för närvarande.

Funktionstyper

Du kan använda följande funktionstyper i en formelkolumn:

  • Decimal
  • String
  • Booleskt
  • Alternativ
  • DateTime (TZI)
  • DateTime (lokal användare) (begränsad till jämförelser med andra lokala användarvärden, funktionerna DateAdd och DateDiff)
  • DateTime (endast datum) (begränsad till jämförelser med andra endast datum-värden och funktionen DateAdd och DateDiff)
  • Valuta
  • Heltal

Funktioner

För de skalära funktioner som du kan använda i en formelkolumn, gå till Formelreferens - Dataverse formelkolumner.

* Funktionerna Text och Värde fungerar bara med heltal, där ingen decimal är inblandad. Decimalavgränsaren varierar mellan olika språk. Eftersom formelkolumnerna utvärderas utan kunskap om språken går det inte att tolka eller skapa decimalavgränsaren på ett korrekt sätt.

* Argumentet StartOfWeek stöds inte för funktionerna WeekNum och Weekday i formelkolumner.

Exempel på funktion

Description Exempel
Hämta ett datumvärde. DateAdd(UTCNow(),-1,TimeUnit.Years)

Riktlinjer och begränsningar

I det här avsnittet beskrivs riktlinjer och kända begränsningar med formelkolumner i Dataverse.

Användningsvalidering för valutafält

  • Formelkolumner stöder inte användning av en relaterad tabellvalutakolumn i formeln, till exempel i det här exemplet. Formelkolumn med formeln Account.Annual Revenue som inte stöds
  • För närvarande stöds inte direkt användning av valutakolumner och växelkurser i formeln. Användningen av valuta- och valutakurskolumner uppnås via Decimal funktionen, till exempel Decimal(currency column) eller Decimal(exchange rate). Funktionen Decimal ser till att utdata ligger inom det accepterade intervallet. Om kolumnvärdet i valutan eller växelkursen överskrider det godkända intervallet returneras null i formeln.
  • Basvalutakolumner stöds inte i formelkolumnen eftersom de är systemkolumner som används för rapporteringssyfte. Om du vill ha ett liknande resultat kan du använda en kolumntyp av valuta tillsammans med en kombination av valutakurskolumner som CurrencyField_Base = (CurrencyField / ExchangeRate).

Användningsvalidering för datum- och tidskolumner

  • Formelkolumnerna för datum- och tidsbeteenden kan bara uppdateras när de inte används i någon annan formelkolumn.
  • För datum/tid-formelkolumner ska du se till att följande gäller när du DateDiff använder funktionen:
    • Kolumnen Användarens lokala beteende kan inte jämföras eller användas med en DateTime(TZI)/DateOnly beteendekolumn.
    • Kolumner för Lokalt beteende för användare kan endast jämföras eller användas med en annan användarlokal beteendekolumn.
    • DateTime(TZI) Beteendekolumner kan jämföras eller användas i DateDiff funktioner med en annan DateTime(TZI)/DateOnly beteendekolumn.
    • DateOnly beteendekolumner kan jämföras eller användas i funktionen DateDiff med en annan DateTime(TZI)/DateOnly beteendekolumn. Datum/tid-konfiguration som inte stöds med en formelkolumn
  • Datum/tid-kolumner och datum/tid-funktioner UTCNow() Now() kan inte skickas som en parameter till strängfunktioner. Formelkolumn med datum/tid-parameter som inte stöds och som skickas i formeln

Användning av formelkolumner i sammanslagningsfält

  • En enkel formelkolumn är när formeln använder kolumner från samma post eller använder hårdkodade värden. För sammanslagningskolumner måste formelkolumnerna vara enkla formelkolumner, till exempel den här exempelkolumnen för sammanslagning. Exempel på enkel formelkolumn för en sammanslagningskolumnExempel på konfiguration av sammanslagningskolumn
  • En formelkolumn som är beroende av tidsbundna funktioner UTCNow() och UTCToday() inte kan användas i ett sammanslagningsfält.

Power Fx rekommendationer av textfunktion

  • Formelkolumner stöder Text() inte funktioner med ett enda argument av typen Tal. Tal kan vara heltal, decimaltal eller valuta. Formelkolumn med textfunktion som inte stöds med ett numeriskt argument

  • Formelkolumner stöder inte användning av tal i följande konfigurationer:

    • I strängfunktioner. Dessa är strängfunktioner placerade varhelst ett textargument förväntas: Upper, Lower, Left, Right, Concatenate, Mid, Len, StartsWith, EndsWith, TrimEnds, Trim, Substitute och Replace.
    • I de implicita formlerna, till exempel 12 & "foo", eller 12 & 34, eller "foo" & 12.
    • Internt nummer till textkonvertering stöds inte. Vi rekommenderar att du använder Text(Number, Format) för att konvertera ett tal till text. Om ett String argument skickas i en funktion stöds inte argumentet Text Format .
    • Hit är ett exempel på hur du Text använder funktionen för att konvertera ett tal till text och lägga till en sträng i den:
    Concatenate(Text(123,"#"),"ab")
    Text(123,"#") & "foo"
    
  • Språkspecifika formateringstoken som "." och "," stöds inte i formelkolumner. Språkspecifik formateringstoken som skickas som parameter till funktionen Text i formeln stöds inte

Intervallvalidering på formelkolumner

  • Du kan inte ange egenskaperna Lägsta värde eller Högsta värde för en formelkolumn.
  • Alla interna beräkningar bör finnas inom Dataverse-intervallet för decimalformelkolumner (-100 000 000 000 till 100 000 000 000).
  • Ett hårdkodat litervärde som anges i formelfältet ska finnas inom Dataverse-intervallet.
  • Om det finns en numerisk kolumn som är null betraktas den som 0 i den mellanliggande åtgärden. Till exempel, a+b+c and If a = null, b=2, c=3 då ger formelkolumnen 0 + 2 + 3 = 5.
    • Det här beteendet skiljer sig från beräknade kolumner i det här fallet eftersom beräknade kolumner ger null + 2 + 3 = null.

Allmän validering på formelkolumner

  • Formelkolumner kan referera till andra formelkolumner, men en formelkolumn kan inte referera till sig själv.
  • Formelkolumner stöder inte cykliska kedjor, till exempel F1 = F2 + 10, F2 = F1 * 2.
  • Maximal längd på formelns uttryck i formelkolumner är 1 000 tecken.
  • Det maximala djup som tillåts i formelkolumner är 10. Djup definieras som kedjan av formelkolumner som refererar till andra formel- eller sammanslagningskolumner.
    • Till exempel, table E1, F1 = 1*2, table E2, F2 - E1*2. I det här exemplet är djupet för F2 1.
  • I modellbaserade appar är sortering inaktiverat på:
    • En formelkolumn som innehåller en kolumn för en relaterad tabell.
    • En formelkolumn som innehåller en logisk kolumn (till exempel adresskolumnen).
    • En formelkolumn som innehåller en annan beräknad eller formelkolumn.
    • En formelkolumn som använder en tidsbunden funktion UTCNow().
  • Kolumner av typen Heltal med formatet Språk, Varaktighet, Tidszon stöds inte i formelkolumner.
  • Kolumner av typen Sträng med formatet E-post, Textområde, Börssymbol, URL stöds inte i formelkolumner.
  • Formelkolumner visar inte värden när appen är i mobilt offlineläge.
  • Du kan inte utlösa arbetsflöden eller plugin-program på formelkolumner.
  • Vi rekommenderar inte att du använder beräknade kolumner i formelkolumner och vice versa.
  • Regler för dubblettidentifiering utlöses inte för formelkolumner.
  • Funktionen Now kan användas med formelkolumner. Now() har användarlokalt beteende och UTCNow() har tidszonsoberoende beteende.
  • Du kan ange precisionsegenskapen för decimalkolumner.
  • Standardvärdet för formeldatatypen är inställt på Decimal för numeriska värdereturnerande formler.
  • Det går inte att uppdatera formatet för heltalsformelkolumnen.

Formelkolumner med datatyper som inte kan skapas

  • Valuta

Se även

Typer av kolumner

Microsoft Power Fx - översikt

Formel, beräknade kolumner och sammanslagningskolumner med hjälp av kod