Arbeta med formelkolumner

Formelkolumner är kolumner som visar ett beräknat värde i en Microsoft Dataverse tabell. Formeln använder Power Fx, ett kraftfullt men användarvä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 på 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 området Kolumner och välj Ny kolumn.

  4. Ange följande information:

    • Ett Visningsnamn för kolumnen.
    • Ange alternativt en beskrivning av kolumnen.
  5. För Datatyp välj fx Formel.

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

    Ange Power Fx-formel i rutan Formel. Mer information: Skriv ett formulär


  1. Välj ytterligare egenskaper:
    • Välj sökbara om du vill att kolumnen ska visas i vyer, diagram, instrumentpaneler och avancerad sökning.
    • Avancerade alternativ:
      • Om formeln beräknas som ett decimalvärde expanderar du Avancerade alternativ och ändrar antalet precisionspunkter, mellan 0 och 10. Standardvärdet är 2.
  2. Välj Spara.

Skriv en formel

I följande exempel skapas formelkolumnen Totalpris. Kolumnen Antal enheter är en datatyp för helt nummer. Kolumnen Pris är en decimaldatatyp.

Skärmbild av en formel kolumndefinition.

I formelkolumnen visas resultatet av Pris multiplicerat av 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 kan ändra formeln när du har skapat kolumnen om den inte ändrar kolumntypen.

Till exempel formeln pris * rabatt skapar en kolumntyp för tal. Du kan ändra a pris * rabatt till pris * (rabatt +10 %) eftersom det inte ändrar kolumntypen. Du kan dock inte ändra pris * rabatt till Text(price * discount) eftersom det skulle kräva att kolumntypen ändras till sträng.

Få formelförslag (förhandsversion)

[Det här ämnet är en förhandsversion av dokumentationen och kan ä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

För att kunna aktivera den här funktionen måste du aktivera miljöinställningar 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 att det finns en kolumn för kundklassificering som visar deras klassificering per konto. Exempel på kolumn för kundklassificering

I rutan Få formelförslag ange formeln i naturligt språk, till exempel: Om betyget i betygskolumnen är lika med eller högre än 5, markera som Bra, om det är mindre än 5, markera som Medel, om värdet är tomt eller noll, visa som Dåligt, och välj sedan pilknappen (enter).

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

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

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 formelkolumnen Klassificeringsbeskrivning som ser ut så här.

Kontrollera resultaten 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:

Datatyperna valuta och alternativ (tidigare alternativuppsättningar) stöds inte för närvarande.

Funktionstyper

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

  • Decimal
  • String
  • Booleskt
  • Alternativuppsättning
  • 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, upphöjt till decimaltal

Funktioner

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

Abs

och

dag

Värde *

If

Int

Len

Max

Mid

Min

Mod

Not

Sum

Text *

Nu

* Funktionerna Text och Value fungerar endast med heltal, där ingen decimalavgränsare ä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.

* StartOfWeek argumentet stöds inte för funktionerna WeekNum och Weekday i formelkolumnerna.

Exempel på funktion

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

Skapa en kolumn för decimalformel

Skapa en formelkolumn som returnerar ett decimaltal.

  1. När du skapar en kolumn anger du följande information:
    • Ett Visningsnamn för kolumnen.
    • Ange alternativt en beskrivning av kolumnen.
  2. För Datatyp välj fx Formel.
  3. Ange en formel som returnerar ett numeriskt värde i formelfältet . I det här exemplet skapas en formelkolumn med namnet Total Amount. Kolumnen pris per enhet är av decimaldatatyp. Skärmbild av fönstret Skapa en ny formelkolumn för användning med ett decimaltal.
  4. Expandera Avancerade alternativ , väljDecimal som datatyp för Formel och ange sedan det antal decimaler som krävs. Skärmbild av en kolumndefinition för en decimalformel.
  5. Välj Spara.

Skapa en kolumn med en heltalsformel

Skapa en formelkolumn som returnerar ett heltal.

  1. När du skapar en kolumn anger du följande information:
    • Ett Visningsnamn för kolumnen.
    • Ange alternativt en beskrivning av kolumnen.
  2. För Datatyp välj fx Formel.
  3. Ange en formel som returnerar ett numeriskt värde i formelfältet . I det här exemplet skapas en formelkolumn med namnet Antal enheter. Kolumnerna Totalt pris och Pris per enhet är av decimaldatatyp. Skärmbild av ett fönster för att skapa en ny formelkolumn för användning med ett heltal.
  4. Expandera Avancerade alternativ och väljHeltal som datatyp för Formel och ange det format som krävs för kolumnen Heltal. Skärmbild av en kolumndefinition för en heltalsformel.
  5. Välj Spara.

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. Formelkolumnen 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ändning av kolumner för valuta och växelkurs uppnås genom funktionen Decimal, till exempel Decimal(currency column) eller Decimal(exchange rate). Med Decimal-funktionen ser du till att utdata ligger inom det godkända 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 kolumntypen för valuta tillsammans med en kombination av växelkurser och kolumner 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 formelkolumner med datumtid bör DateDiff du när du använder funktionen kontrollera att:
    • Kolumnen Lokalt beteende för användare 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 DateDiff-funktioner med en annan DateTime(TZI)/DateOnly beteendekolumn. Konfiguration av datumtid som inte stöds med en formelkolumn
  • Datumtidskolumner och datumtidsfunktioner UTCNow(), Now() kan inte skickas som en parameter till strängfunktioner. Formelkolumn med parametern date time som inte stöds som skickades i formeln

Användning av formelkolumner i sammanslagningsfält

  • En enkel formelkolumn är den plats dä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 sammanslagningskolumn Exempel på konfiguration av sammanslagningskolumner
  • En formelkolumn som är beroende av tidsbundna funktioner UTCNow() och UTCToday() som inte kan användas i ett sammanslagningsfält.

Power Fx rekommendationer av textfunktion

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

  • 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, som t.ex. 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 Text-funktion stöds inte Format-argumentet.
    • Här är ett exempel på hur du konverterar ett tal till text med hjälp av Text-funktionen och lägger 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 inte stöds skickas som parameter till textfunktionen i formeln

Intervallvalidering på formelkolumner

  • Du kan inte ange egenskaperna för minimivärde eller maximivä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 ger a+b+c and If a = null, b=2, c=3 formelkolumnen 0 + 2 + 3 = 5.
    • 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 grund för formelkolumner som hänvisar till andra formeln eller sammanslagningskolumner.
    • 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 inaktiveras sorteringen 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 tidsbundna funktioner 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.
  • Now-funktionen kan användas med formelkolumner. Now() har lokalt beteende och UTCNow() är oberoende av tidszon.
  • 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.

Power Fx-funktioner stöds för närvarande inte

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

Formelkolumner med datatyper som inte kan skapas

  • Alternativ (förutom Ja/Nej-val)
  • Valuta

Se även

Typer av kolumner

Microsoft Power Fx – översikt

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