Trabajar con columnas de fórmulas
Las columnas de fórmula son columnas que muestran un valor calculado en una tabla de Microsoft Dataverse. Las fórmulas usan Power Fx, un lenguaje de programación poderoso pero amigable para los humanos. Construya una fórmula en una columna de fórmula de Dataverse de la misma manera que construiría una fórmula en Microsoft Excel. A medida que escribe, Intellisense sugiere funciones y sintaxis, e incluso lo ayuda a corregir errores.
Agregar una columna de fórmula
Iniciar sesión en Power Apps en https://make.powerapps.com.
Seleccione Tablas y luego seleccione la tabla donde desea añadir una columna de fórmula. Si el elemento no se encuentra en el panel lateral, seleccione …Más y, a continuación, el elemento que desee.
Seleccione el área Columnas y, a continuación, Nueva columna.
Escriba la siguiente información:
- Un Nombre para mostrar de la columna.
- Opcionalmente, escriba una descripción de la columna.
Para Tipo de datos seleccione fx Fórmula.
Escriba la fórmula o utilice sugerencias de fórmula:
Introduzca la fórmula de Power Fx en el cuadro Fórmula. Más información: Escribir una fórmula
- Seleccionar propiedades adicionales:
- Seleccione Buscable si desea que esta columna esté disponible en vistas, gráficos, paneles y búsqueda avanzada.
- Opciones avanzadas:
- Si la fórmula se evalúa como un valor decimal, expanda Opciones avanzadas para cambiar el número de puntos de precisión, entre 0 y 10. El valor predeterminado es 2.
- Seleccione Guardar.
Escriba una fórmula
El siguiente ejemplo crea una columna de fórmula llamada Precio total. La columna Número de unidades es un tipo de datos de número entero. La columna Precio es un tipo de datos decimal.
La columna de fórmula muestra el resultado de Precio multiplicado por Número de unidades.
La fórmula que introduzca determina el tipo de columna. No puede cambiar un tipo de columna una vez creada. Por lo tanto, puede cambiar la fórmula después de haber creado la columna solo si no cambia el tipo de columna.
Por ejemplo, la fórmula precio * descuento crea un tipo de columna de número. Puede cambiar precio * descuento a precio * (descuento + 10 %) porque eso no cambia el tipo de columna. Sin embargo, no puede cambiar la fórmula precio * descuento a Texto(precio * descuento), porque eso requeriría cambiar el tipo de columna a cadena.
Obtener sugerencias de fórmulas (versión preliminar)
[Este tema es documentación preliminar y está sujeto a modificaciones.]
Describa lo que quiere que haga la fórmula y obtenga los resultados generados por la IA. Las sugerencias de fórmulas aceptan su entrada en lenguaje natural para interpretar y sugerir una fórmula Power Fx utilizando un modelo de IA basado en GPT.
Importante
Se trata de una característica en vista previa disponible solo en las regiones de EE. UU.
Las vistas previas de características no se han diseñado para un uso de producción y pueden tener una funcionalidad restringida. Estas características están disponibles antes del lanzamiento oficial para que los clientes puedan tener un acceso anticipado y proporcionar comentarios.
Actualmente, se admiten sugerencias de fórmulas que hacen referencia a una única tabla. No se admiten sugerencias de fórmulas que hagan referencia a una columna de una tabla relacionada.
Requisitos previos
Para habilitar esta función, debe habilitar la configuración del entorno Sugerencias de IA para columnas de fórmula. Más información: Sugerencias de IA para columnas de fórmulas
Ejemplo de entrada en lenguaje natural
Imagine que hay una columna Calificación de clientes que muestra su calificación por cuenta.
En el cuadro Obtener sugerencias de fórmulas introduzca la fórmula en lenguaje natural, como Si la calificación en la columna de calificación es igual o mayor que 5, entonces indíquelo como Bueno y si es inferior a 5, indique como Promedio y si el valor está en blanco o cero, entonces muestre como Malo y luego seleccione el botón de flecha (Entrar).
Luego copie la Fórmula sugerida.
Y péguela en el cuadro Escribir una fórmula . Seleccione Guardar.
Así es como aparece la fórmula cuando se pega.
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"
)
Verifique la columna de fórmula Descripción de calificación calculada, que aparece así.
IA responsable
Para obtener información sobre la IA responsable, consulte estos recursos:
- Preguntas frecuentes para crear aplicaciones y tablas a través de conversaciones
- Preguntas frecuentes sobre el uso responsable de la IA en Power Apps
Operadores
Puede usar los siguientes oepradores en una columna de fórmula:
+, -, *, /, %, in, exactin, &
Para obtener más información, vaya a Operadores en Power Apps.
Tipos de datos
Puede mostrar los siguientes tipos de datos en una columna de fórmula:
- Text
- Número decimal
- Elección Sí/No (booleano)
- Datetime
- Número entero
Los tipos de datos de moneda y elección (anteriormente conjuntos de opciones) no son compatibles actualmente.
Tipos de función
Puede usar los siguientes tipos de función en una columna de fórmula:
- Decimal
- Cadena
- Booleana
- Conjunto de opciones
- DateTime (TZI)
- DateTime (usuario local) (limitado a comparaciones con otras funciones DateAdd y DateDiff de valores locales de usuario local)
- DateTime (solo fecha) (limitado a comparaciones con otros valores de solo fecha, DateAdd y funciones DateDiff)
- Moneda
- Número entero, ascendido a decimal
Funciones
Para las funciones escalares que puede utilizar en una columna de fórmula, vaya a Referencia de fórmulas - Dataverse columnas de fórmulas.
* Las funciones Text y Value solo funcionan con números enteros, donde no hay separador decimal. El separador decimal varía según las configuraciones regionales. Dado que las columnas de fórmula se evalúan sin conocimiento de la configuración regional, no hay forma de interpretar o generar correctamente el separador decimal.
* El argumento StartOfWeek no es compatible con las funciones WeekNum y Weekday en las columnas de fórmula.
Ejemplo de función
Description | Ejemplo |
---|---|
Recuperar un valor de fecha. | DateAdd(UTCNow(),-1,TimeUnit.Years) |
Crear una columna de fórmula decimal
Crea una columna de fórmula que devuelva un número decimal.
- Al crear una columna, ingrese la siguiente información:
- Un Nombre para mostrar de la columna.
- Opcionalmente, escriba una descripción de la columna.
- Para Tipo de datos seleccione fx Fórmula.
- Introduzca una fórmula que devuelva un valor numérico en la barra de Fórmula . Este ejemplo crea una columna de fórmula llamada Importe total. La columna precio por unidad es de tipo de datos decimal.
- Expanda Opciones avanzadas, Seleccionar Decimal como el Tipo de datos de fórmula, y luego configure la cantidad requerida de decimales.
- Seleccione Guardar.
Crear una columna de fórmula de número entero
Crea una columna de fórmula que devuelva un número entero.
- Al crear una columna, ingrese la siguiente información:
- Un Nombre para mostrar de la columna.
- Opcionalmente, escriba una descripción de la columna.
- Para Tipo de datos seleccione fx Fórmula.
- Introduzca una fórmula que devuelva un valor numérico en la barra de Fórmula . Este ejemplo crea una columna de fórmula llamada Número de unidades. Las columnas Precio total y precio por unidad son de tipo de datos decimal.
- Expanda Opciones avanzadas y Seleccionar Número entero como el Tipo de datos de fórmula y establezca el formato requerido para la columna de números enteros.
- Seleccione Guardar.
Instrucciones y limitaciones
En esta sección se describen las instrucciones y limitaciones conocidas con las columnas de fórmula de Dataverse.
Validaciones de uso de campos de moneda
- Las columnas de fórmula no admiten el uso de una columna de moneda de tabla relacionada en la fórmula, como en este ejemplo.
- Actualmente no se admite el uso directo de columnas de moneda y tipo de cambio en la fórmula. El uso de columnas de moneda y tipo de cambio se logra mediante la función
Decimal
, comoDecimal(currency column)
oDecimal(exchange rate)
. La funciónDecimal
se asegura de que la salida esté dentro del rango aceptado. Si el valor de la columna de moneda o tipo de cambio excede el rango aceptado, la fórmula devuelve nulo. - Las columnas de moneda base no se admiten en las expresiones de las columnas de fórmula porque son columnas del sistema que se utilizan con fines de generación de informes. Si desea un resultado similar, puede utilizar un tipo de columna de moneda junto con una combinación de columnas de tipo de cambio como
CurrencyField_Base = (CurrencyField / ExchangeRate)
.
Validaciones de uso de columnas de fecha y hora
- El comportamiento de las columnas de fórmula de fecha y hora solo se puede actualizar cuando no se utiliza en otra columna de fórmula.
- Para las columnas de fórmula de fecha y hora, mientras usa la función
DateDiff
, asegúrese de que:- La columna de comportamiento local del usuario no se puede comparar ni utilizar con una columna de comportamiento
DateTime(TZI)/DateOnly
. - Las columnas de comportamiento local del usuario solo se pueden comparar o utilizar con una columna de comportamiento de usuario local.
- Las columnas de comportamiento
DateTime(TZI)
se pueden comparar o utilizar en funcionesDateDiff
con otra columna de comportamientoDateTime(TZI)/DateOnly
. - Las columnas de comportamiento
DateOnly
se pueden comparar o utilizar en la función DateDiff con otra columna de comportamientoDateTime(TZI)/DateOnly
.
- La columna de comportamiento local del usuario no se puede comparar ni utilizar con una columna de comportamiento
- Las columnas de fecha y hora y las funciones de fecha y hora
UTCNow()
,Now()
no se pueden pasar como parámetro a funciones de cadena.
Uso de columnas de fórmula en campos consolidados
- Una columna de fórmula simple es donde la fórmula usa columnas del mismo registro o usa valores codificados. Para las columnas consolidadas, las columnas de fórmula deben ser columnas de fórmula simples, como esta columna consolidada de ejemplo.
- Una columna de fórmula que depende de las funciones con límite de tiempo
UTCNow()
yUTCToday()
no se puede utilizar en un campo consolidado.
Recomendaciones de función de tecto de Power Fx
Las columnas de fórmula no admiten funciones
Text()
con un único argumento de tipo Número. Los números pueden ser enteros, decimales o monedas.Las columnas de fórmula no admiten el uso de números en las siguientes configuraciones:
- En funciones de cadena. Estas son funciones de cadena ubicadas donde se espera un argumento de texto: Upper, Lower, Left, Right, Concatenate, Mid, Len, StartsWith, EndsWith, TrimEnds, Trim, Substitute, y Replace.
- En las fórmulas implícitas, como
12 & "foo"
, o12 & 34
, o"foo" & 12
. - No se admite la coacción de números internos a mensajes de texto. Recomendamos usar
Text(Number, Format)
para convertir un número en texto. En el caso de que se pase un argumentoString
en una funciónText
entonces el argumentoFormat
no es compatible. - A continuación se muestra un ejemplo que utiliza la función
Text
para convertir un número en texto y agregarle una cadena:
Concatenate(Text(123,"#"),"ab") Text(123,"#") & "foo"
No se admiten tokens de formato específicos de la configuración regional, como "." y "," en las columnas de fórmula.
Validaciones de rango en columnas de fórmula
- No puede establecer las propiedades Valor mínimo o Valor máximo de una columna de fórmula.
- Todos los cálculos internos deben estar dentro del rango Dataverse para las columnas de fórmula de tipo decimal (-100000000000 a 100000000000).
- Un valor literal codificado ingresado en la barra de fórmulas debe estar dentro del rango Dataverse.
- Si hay una columna numérica que es nula, se considera 0 en la operación intermedia. Por ejemplo,
a+b+c and If a = null, b=2, c=3
luego la columna de fórmula da0 + 2 + 3 = 5
.- En este caso, este comportamiento es diferente de las columnas calculadas porque las columnas calculadas dan
null + 2 + 3 = null
.
- En este caso, este comportamiento es diferente de las columnas calculadas porque las columnas calculadas dan
Validaciones generales en columnas de fórmula
- Las columnas de fórmula pueden hacer referencia a otras columnas de fórmula, pero una columna de fórmula no puede hacer referencia a sí misma.
- Las columnas de fórmula no admiten cadenas cíclicas, como
F1 = F2 + 10, F2 = F1 * 2
. - La longitud máxima de la expresión de fórmula en las columnas de fórmula es de 1000 caracteres.
- La profundidad máxima permitida en las columnas de fórmula es 10. Profundidad se define como la cadena de columnas de fórmula que hacen referencia a otras fórmulas o columnas acumuladas.
- Por ejemplo,
table E1, F1 = 1*2, table E2, F2 - E1*2
. En este ejemplo, la profundidad de F2 es 1.
- Por ejemplo,
- En las aplicaciones basadas en modelos, la ordenación está deshabilitada en:
- Una columna de fórmula que contiene una columna de una tabla relacionada.
- Una columna de fórmula que contiene una columna lógica (por ejemplo, la columna de dirección).
- Una columna de fórmula que contiene otra columna calculada o de fórmula.
- Una columna de fórmula que utiliza la función de duración determinada
UTCNow()
.
- Las columnas de tipo Número entero con formato Idioma, Duración y Zona horaria no se admiten en las columnas de fórmula.
- Las columnas de tipo Cadena con formato Correo electrónico, Área de texto, Símbolo de cotización y URL no se admiten en las columnas de fórmula.
- Las columnas de fórmula no muestran valores cuando la aplicación está en el modo móvil sin conexión.
- No se pueden desencadenar flujos de trabajo o complementos en las columnas de fórmula.
- No recomendamos utilizar columnas calculadas en columnas de fórmula y viceversa.
- Las reglas de detección de duplicados no se activan en columnas de fórmula.
- La función
Now
puede usarse con columnas de fórmula.Now()
tiene un comportamiento local del usuario yUTCNow()
tiene un comportamiento independiente de la zona horaria. - Puede establecer la propiedad de precisión para columnas decimales.
- El valor del tipo de datos de fórmula predeterminado se establece en Decimal para fórmulas que devuelven valores numéricos.
- No se admite la actualización del formato de la columna de fórmula de números enteros.
Las funciones Power Fx no se admiten actualmente
- Potencia
- Sqrt
- Exp
- Ln
- ^ (operador)
Columnas de fórmula de tipos de datos que no se pueden generar
- Elecciones (salvo la elección Sí/No)
- Moneda
Consulte también
Información general de Microsoft Power Fx
Columnas de fórmula, calculadas y consolidadas usando código