Treballar amb columnes de fórmules
Les columnes de fórmula són columnes que mostren un valor calculat en una taula del Microsoft Dataverse. Ús Power Fx de fórmules, un llenguatge de programació potent però amigable amb els humans. Creeu una fórmula en una columna de fórmula del Dataverse de la mateixa manera que crearíeu una fórmula al Microsoft Excel. A l'hora d'escriure, Intellisense suggereix funcions i sintaxi, i fins i tot us ajuda a corregir els errors.
Afegir una columna de fórmula
Inicieu sessió a Power Apps at https://make.powerapps.com.
Seleccioneu Taules i, a continuació, seleccioneu la taula on voleu afegir una columna de fórmula. Si l'element no és a la subfinestra del tauler lateral, seleccioneu ... Més i seleccioneu l'element que vulgueu.
Seleccioneu l'àrea Columnes i, a continuació, seleccioneu Columna nova.
Introduïu la informació següent:
- Nom de visualització de la columna.
- Opcionalment, introduïu una Descripció de la columna.
Per a Tipus de dades, seleccioneu fx Fórmula.
Escriviu la fórmula o utilitzeu suggeriments de fórmules:
Introduïu la Power Fx fórmula al quadre Fórmula . Més informació: Escriure una fórmula
- Seleccioneu propietats addicionals:
- Seleccioneu Es pot cercar si voleu que aquesta columna estigui disponible a les visualitzacions, als gràfics, als escriptoris digitals i a la cerca avançada.
- Opcions avançades:
- Si la fórmula s'avalua com a valor decimal, expandiu Opcions avançades per canviar el nombre de punts de precisió, entre 0 i 10. El valor per defecte és 2.
- Seleccioneu Desa.
Escriviu una fórmula
L'exemple següent crea una columna de fórmula anomenada Preu total. La columna Nombre d'unitats és un tipus de dades de nombre enter. La columna Preu és un tipus de dades decimals.
La columna de fórmules mostra el resultat de Preu multiplicat pel nombre d'unitats.
La fórmula que introduïu determina el tipus de columna. Després de crear-la, no podeu canviar el tipus de la columna. Això vol dir que podeu canviar la fórmula després de crear la columna només quan no canviï el tipus de columna.
Per exemple, la fórmula preu * descompte crea un tipus de columna de número. Podeu canviar el preu * descompte pel preu * (descompte + 10%) perquè això no canvia el tipus de columna. Tanmateix, no podeu canviar price * discount a Text(price * discount) perquè això requeriria canviar el tipus de columna a string.
Obtenir suggeriments de fórmules (versió preliminar)
[Aquest tema forma part de la documentació preliminar i està subjecte a canvis.]
Descriviu què voleu que faci la fórmula i obteniu resultats generats per IA. Els suggeriments de fórmules accepten la vostra entrada de llenguatge natural per interpretar i suggerir una fórmula mitjançant un Power Fx model d'IA basat en GPT.
Important
Aquesta és una versió preliminar disponible només a les regions dels EUA.
Les característiques de visualització prèvia no estan dissenyades per a un entorn de producció i poden tenir una funcionalitat restringida. Aquestes característiques estan disponibles abans d’un llançament oficial de producte per tal que els clients el puguin utilitzar abans i enviar-nos els seus comentaris.
Actualment, s'admeten suggeriments de fórmules que fan referència a una sola taula. No s'admeten els suggeriments de fórmules que fan referència a una columna d'una taula relacionada.
Requisits previs
Per habilitar aquesta funció, heu d'habilitar la configuració de l'entorn de suggeriments d'IA per a columnes de fórmules. Més informació: Suggeriments d'IA per a columnes de fórmules
Exemple d'entrada de llenguatge natural
Imagineu que hi ha una columna de puntuació del client que mostra la seva puntuació per compte.
Al quadre Obtén suggeriments de fórmules, introduïu la fórmula en llenguatge natural, com ara Si la puntuació de la columna de classificació és igual o superior a 5, indiqueu com a Bona i si és inferior a 5 indiqueu com a Mitjana i si el valor està en blanc o zero, mostreu-la com a Dolenta i, a continuació, seleccioneu el botó de fletxa (Retorn).
A continuació, copieu la fórmula suggerida.
I enganxeu-lo al quadre Escriviu una fórmula . Seleccioneu Desa.
Així és com apareix la fórmula quan s'enganxa.
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"
)
Comproveu la columna de la fórmula Descripció de la qualificació calculada , que apareix així.
IA responsable
Per obtenir informació sobre la IA responsable, aneu a aquests recursos:
- Preguntes freqüents sobre la creació d'aplicacions i taules a través de la conversa
- Preguntes freqüents sobre l'ús responsable de la IA a Power Apps
Operadors
Podeu utilitzar els operadors següents en una columna de fórmula:
+, -, *, /, %, in, exactin, &
Per obtenir més informació, aneu a Operadors a Power Apps.
Data Types
Podeu mostrar els següents tipus de dades en una columna de fórmula:
- SMS
- Nombre decimal
- Nombre enter
- Flotar
- Elecció booleana (Sí/No)
- Elecció (abans conjunts d'opcions)
- Datetime
Més informació: Crear columnes de fórmules amb tipus de dades decimal, nombre enter, flotant i opció\
Actualment no s'admet el tipus de dades de moneda.
Tipus de funció
Podeu utilitzar els tipus de dades de funció següents en una columna de fórmula:
- Decimal
- String
- Boolean
- Elecció
- DateTime (TZI)
- DateTime (usuari local) (limitat a comparacions amb altres valors locals d'usuari funcions DateAdd i DateDiff)
- DateTime (només Date) (limitat a comparacions amb altres valors de només data, funcions DateAdd i DateDiff)
- Moneda
- Número enter
Funcions
Per a les funcions escalars que podeu utilitzar en una columna de fórmula, aneu a Referència de fórmules - Dataverse columnes de fórmula.
* Les funcions Text i Valor només funcionen amb nombres enters, on no hi ha cap separador decimal. El separador de decimals varia en diferents regions. Atès que les columnes de fórmula s'avaluen sense coneixements regionals, no hi ha manera d'interpretar ni generar correctament el separador decimal.
* L'argument StartOfWeek no s'admet per a les funcions WeekNum i Weekday a les columnes de fórmules.
Exemple de funció
Descripció | Exemple |
---|---|
Recupera un valor de data. | DateAdd(UTCNow(),-1,TimeUnit.Years) |
Directrius i limitacions
Aquesta secció descriu les directrius i les limitacions conegudes amb les columnes Dataverse de fórmula.
Validacions d'ús dels camps de moneda
- Les columnes de fórmules no admeten l'ús d'una columna de moneda de taula relacionada a la fórmula, com en aquest exemple.
- Actualment no s'admet l'ús directe de les columnes de moneda i el tipus de canvi a la fórmula. L'ús de columnes de moneda i tipus de canvi s'aconsegueix mitjançant la
Decimal
funció, comDecimal(currency column)
ara orDecimal(exchange rate)
. LaDecimal
funció s'assegura que la sortida estigui dins del rang acceptat. Si el valor de la columna de moneda o tipus de canvi supera l'interval acceptat, la fórmula retorna null. - Les columnes de moneda base no s'admeten a les expressions de columna de fórmula, ja que són columnes del sistema que s'utilitzen amb finalitats d'informes. Si voleu un resultat similar, podeu utilitzar un tipus de columna de moneda juntament amb una combinació de columnes de tipus de canvi com
CurrencyField_Base = (CurrencyField / ExchangeRate)
.
Validacions d'ús de columnes de data i hora
- El comportament de les columnes de fórmules de data i hora només es pot actualitzar quan no s'utilitza en una altra columna de fórmula.
- Per a les columnes de fórmules de data i hora, mentre utilitzeu la
DateDiff
funció, assegureu-vos que:- La columna de comportament local de l'usuari no es pot comparar ni utilitzar amb una columna
DateTime(TZI)/DateOnly
de comportament. - Les columnes de comportament local de l'usuari només es poden comparar o utilitzar amb una altra columna de comportament local de l'usuari.
DateTime(TZI)
Les columnes de comportament es poden comparar o utilitzar enDateDiff
funcions amb una altraDateTime(TZI)/DateOnly
columna de comportament.DateOnly
Les columnes de comportament es poden comparar o utilitzar a la funció DateDiff amb una altraDateTime(TZI)/DateOnly
columna de comportament.
- La columna de comportament local de l'usuari no es pot comparar ni utilitzar amb una columna
- Les columnes de data i hora i les funcions
UTCNow()
de data i hora,Now()
no es poden passar com a paràmetre a les funcions de cadena.
Ús de columnes de fórmules als camps d'informe
- Una columna de fórmula simple és on la fórmula utilitza columnes del mateix registre o utilitza valors codificats. Per a les columnes d'informe, les columnes de fórmules han de ser columnes de fórmules simples, com ara aquesta columna d'informe d'exemple.
- Una columna de fórmula, que depèn de funcions
UTCNow()
limitades en el temps iUTCToday()
no es pot utilitzar en un camp d'informe.
Power Fx Recomanacions de funcions de text
Les columnes de fórmules no admeten
Text()
funcions amb un sol argument de tipus Number. El nombre pot ser sencer, decimal o moneda.Les columnes de fórmules no admeten l'ús de números en les configuracions següents:
- En funcions de cadena. Aquestes són funcions de cadena col·locades allà on s'espera un argument de text: Upper, Lower, Left, Right, Concatenate, Mid, Len, StartsWith, EndsWith, TrimEnds, Trim, Substitute i Replace.
- En les fórmules implícites, com ara
12 & "foo"
, o12 & 34
, o"foo" & 12
. - No s'admet la coerció interna de número a text. Us recomanem que utilitzeu
Text(Number, Format)
per convertir un número en text. En el cas que es passi unString
argument en unaText
funció, l'argumentFormat
no és compatible. - Aquí hi ha un exemple d'ús de la
Text
funció per convertir un número en text i afegir-hi una cadena:
Concatenate(Text(123,"#"),"ab") Text(123,"#") & "foo"
Els testimonis de format específics de la configuració regional, com ara "." i "", no s'admeten a les columnes de fórmules.
Validacions d'interval a les columnes de fórmules
- No podeu definir les propietats Valor mínim o Valor màxim d'una columna de fórmula.
- Tots els càlculs interns haurien d'estar dins de l'interval Dataverse per a les columnes de fórmules de tipus decimal (-100000000000 a 100000000000).
- Un valor literal codificat introduït a la barra de fórmules hauria d'estar dins de l'interval Dataverse .
- Si hi ha una columna nul·la que es considera 0 en l'operació intermèdia. Per exemple,
a+b+c and If a = null, b=2, c=3
llavors la columna de fórmula dona0 + 2 + 3 = 5
.- Aquest comportament és diferent de les columnes calculades en aquest cas perquè les columnes calculades donen
null + 2 + 3 = null
.
- Aquest comportament és diferent de les columnes calculades en aquest cas perquè les columnes calculades donen
Validacions generals a les columnes de fórmules
- Les columnes de fórmules poden fer referència a altres columnes de fórmules, però una columna de fórmules no pot fer referència a si mateixa.
- Les columnes de fórmules no admeten cadenes cícliques, com ara
F1 = F2 + 10, F2 = F1 * 2
. - La longitud màxima de l'expressió de fórmules a les columnes de fórmules és de 1.000 caràcters.
- La profunditat màxima permesa a les columnes de fórmules és 10. La profunditat es defineix com la cadena de columnes de fórmules que fan referència a altres columnes de fórmules o d'informe.
- Per exemple,
table E1, F1 = 1*2, table E2, F2 - E1*2
. En aquest exemple, la profunditat de F2 és 1.
- Per exemple,
- A les aplicacions basades en models, l'ordenació està inhabilitada el:
- Columna de fórmules que conté una columna d'una taula relacionada.
- Columna de fórmula que conté una columna lògica (per exemple, columna d'adreça).
- Columna de fórmula que conté una altra columna calculada o de fórmula.
- Columna de fórmules que utilitza la funció
UTCNow()
limitada en el temps.
- Les columnes de tipus Nombre enter amb el format Idioma, Durada, Fús horari no s'admeten a les columnes de fórmules.
- Les columnes de tipus Cadena amb el format Correu electrònic, Àrea de text, Símbol de cotització, URL no s'admeten a les columnes de fórmules.
- Les columnes de fórmules no mostren valors quan l'aplicació està en mode Mobile Offline.
- No podeu activar fluxos de treball ni complements a les columnes de fórmules.
- No recomanem utilitzar columnes calculades a les columnes de fórmules i viceversa.
- Les regles de detecció de duplicats no s'activen a les columnes de fórmules.
- La
Now
funció es pot utilitzar amb columnes de fórmules.Now()
té un comportament local de l'usuari iUTCNow()
té un comportament independent de la zona horària. - Podeu definir la propietat de precisió per a les columnes decimals.
- El valor del tipus de dades de la fórmula per defecte es defineix com a Decimal per a les fórmules de valor numèric que retornen.
- No s'admet l'actualització del format de la columna de fórmules de nombres enters.
Columnes de fórmules dels tipus de dades que no es poden produir
- Moneda