Compartir a través de


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

  1. Iniciar sesión en Power Apps en https://make.powerapps.com.

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

  3. Seleccione el área Columnas y, a continuación, Nueva columna.

  4. Escriba la siguiente información:

    • Un Nombre para mostrar de la columna.
    • Opcionalmente, escriba una descripción de la columna.
  5. Para Tipo de datos seleccione fx Fórmula.

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


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

Captura de pantalla de una definición de columna de fórmula.

La columna de fórmula muestra el resultado de Precio multiplicado por Número de unidades.

Captura de pantalla de un registro con una columna de fórmula.

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. Ejemplo de columna de calificación de clientes

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. Fórmula sugerida

Y péguela en el cuadro Escribir una fórmula . Seleccione Guardar. Pegar la fórmula en el cuadro Escribir una fórmula

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

Verificar los resultados de la columna de fórmula

IA responsable

Para obtener información sobre la IA responsable, consulte estos recursos:

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:

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.

  1. Al crear una columna, ingrese la siguiente información:
    • Un Nombre para mostrar de la columna.
    • Opcionalmente, escriba una descripción de la columna.
  2. Para Tipo de datos seleccione fx Fórmula.
  3. 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. Captura de pantalla de un panel para crear una nueva columna de fórmula para usar con un número decimal.
  4. Expanda Opciones avanzadas, Seleccionar Decimal como el Tipo de datos de fórmula, y luego configure la cantidad requerida de decimales. Captura de pantalla de una fórmula decimal definición de columna.
  5. Seleccione Guardar.

Crear una columna de fórmula de número entero

Crea una columna de fórmula que devuelva un número entero.

  1. Al crear una columna, ingrese la siguiente información:
    • Un Nombre para mostrar de la columna.
    • Opcionalmente, escriba una descripción de la columna.
  2. Para Tipo de datos seleccione fx Fórmula.
  3. 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. Captura de pantalla de un panel para crear una nueva columna de fórmula para usar con un número entero.
  4. 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. Captura de pantalla de una fórmula de número entero definición de columna.
  5. 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. Columna de fórmula con fórmula no admitida de ingresos Account.Annual
  • 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, como Decimal(currency column) o Decimal(exchange rate). La función Decimal 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 funciones DateDiff con otra columna de comportamiento DateTime(TZI)/DateOnly.
    • Las columnas de comportamiento DateOnly se pueden comparar o utilizar en la función DateDiff con otra columna de comportamiento DateTime(TZI)/DateOnly. Configuración de fecha y hora no admitida con una columna de fórmula
  • 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. Columna de fórmula con parámetro de fecha y hora no admitido pasado en la fórmula

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. Ejemplo de columna de fórmula simple para una columna acumulada Ejemplo de configuración de columna acumulada
  • Una columna de fórmula que depende de las funciones con límite de tiempo UTCNow() y UTCToday() 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. Columna de fórmula con función de texto no compatible con un argumento numérico

  • 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", o 12 & 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 argumento String en una función Text entonces el argumento Format 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. Token de formato específico de la configuración regional no admitido pasado como parámetro a la función Texto en la 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 da 0 + 2 + 3 = 5.
    • En este caso, este comportamiento es diferente de las columnas calculadas porque las columnas calculadas dan null + 2 + 3 = null.

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.
  • 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 y UTCNow() 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

Tipos de columnas

Información general de Microsoft Power Fx

Columnas de fórmula, calculadas y consolidadas usando código