Uso de expresiones en condiciones para comprobar varios valoresUse expressions in conditions to check multiple values

En este tutorial, aprenderá a utilizar expresiones y condiciones para comparar varios valores en modo avanzado.In this walkthrough, you'll learn to use expressions and Conditions to compare multiple values in Advanced mode.

Cuando se crea un flujo, puede usar la tarjeta Condición en modo básico para comparar rápidamente un valor individual con otro.When you create a flow, you can use the Condition card in basic mode to quickly compare a single value with another value. Sin embargo, hay veces en las que necesita comparar varios valores.However, there're times when you need to compare multiple values. Por ejemplo, puede comprobar el valor de varias columnas de una hoja de cálculo o de una tabla de base de datos.For example, you may want to check the value of a few columns in a spreadsheet or database table.

En las condiciones puede usar cualquier combinación de las siguientes expresiones lógicas.You can use any combination of the following logical expressions in your conditions.

ExpressionExpression DescripciónDescription EjemploExample
yand Toma dos argumentos y devuelve true si ambos valores son true.Takes two arguments and returns true if both values are true.
Nota: ambos argumentos deben ser valores booleanos.Note: Both arguments must be Booleans.
Esta expresión devuelve false:This expression returns false:
and(greater(1,10),equals(0,0))and(greater(1,10),equals(0,0))
oor Toma dos argumentos y devuelve true si cualquiera de los dos argumentos es true.Takes two arguments and returns true if either argument is true.
Nota: ambos argumentos deben ser valores booleanos.Note: Both arguments must be Booleans.
Esta expresión devuelve true:This expression returns true:
or(greater(1,10),equals(0,0))or(greater(1,10),equals(0,0))
es igual aequals Devuelve true si los dos valores son iguales.Returns true if two values are equal. Por ejemplo, si el valor de parameter1 es someValue, esta expresión devuelve true:For example, if parameter1 is someValue, this expression returns true:
equals(parameters('parameter1'), 'someValue')equals(parameters('parameter1'), 'someValue')
menosless Toma dos argumentos y devuelve true si el primer argumento es menor que el segundo.Takes two arguments and returns true if the first argument is less than the second argument.
Nota: los tipos admitidos son integer, float y string.Note: The supported types are integer, float, and string.
Esta expresión devuelve true:This expression returns true:
less(10,100)less(10,100)
lessOrEqualslessOrEquals Toma dos argumentos y devuelve true si el primer argumento es menor o igual que el segundo.Takes two arguments and returns true if the first argument is less than or equal to the second argument.
Nota: los tipos admitidos son integer, float y string.Note: The supported types are integer, float, and string.
Esta expresión devuelve true:This expression returns true:
lessOrEquals(10,10)lessOrEquals(10,10)
mayor quegreater Toma dos argumentos y devuelve true si el primero es mayor que el segundo.Takes two arguments and returns true if the first argument is greater than the second argument.
Nota: los tipos admitidos son integer, float y string.Note: The supported types are integer, float, and string.
Esta expresión devuelve false:This expression returns false:
greater(10,10)greater(10,10)
greaterOrEqualsgreaterOrEquals Toma dos argumentos y devuelve true si el primer argumento es mayor o igual que el segundo.Takes two arguments and returns true if the first argument is greater than or equal to the second argument.
Nota: los tipos admitidos son integer, float y string.Note: The supported types are integer, float, and string.
Esta expresión devuelve false:This expression returns false:
greaterOrEquals(10,100)greaterOrEquals(10,100)
emptyempty Devuelve true si el objeto, matriz o cadena están vacíos.Returns true if the object, array, or string is empty. Esta expresión devuelve true:This expression returns true:
empty('')empty('')
notnot Devuelve el opuesto de un valor booleano.Returns the opposite of a boolean value. Esta expresión devuelve true:This expression returns true:
not(contains('200 Success','Fail'))not(contains('200 Success','Fail'))
ifif Devuelve un valor específico si el resultado de la expresión es true o false.Returns a specific value if the expression results in true or false. Esta expresión devuelve "yes":This expression returns "yes":
if(equals(1, 1), 'yes', 'no')if(equals(1, 1), 'yes', 'no')

Requisitos previosPrerequisites

  • Obtenga acceso a Power Automate.Access to Power Automate.
  • Una hoja de cálculo con las tablas que se describirán más adelante en este tutorial.A spreadsheet with the tables described later in this walkthrough. Asegúrese de guardar la hoja de cálculo en una ubicación como Dropbox o Microsoft OneDrive para que Power Automate pueda acceder a ella.Be sure to save your spreadsheet in a location such as Dropbox or Microsoft OneDrive so that Power Automate can access it.
  • Microsoft Office 365 Outlook (aunque aquí se usa Office 365 Outlook, se puede utilizar cualquier servicio de correo electrónico compatible en los flujos).Microsoft Office 365 Outlook (While we use Office 365 Outlook, you can use any supported email service in your flows.)

Use la expresión orUse the or expression

En ocasiones un flujo de trabajo debe realizar una acción si el valor de un elemento es valueA o valueB.Sometimes your workflow needs to take an action if the value of an item is valueA or valueB. Por ejemplo, puede hacer un seguimiento del estado de las tareas de una tabla de una hoja de cálculo.For example, you may be tracking the status of tasks in a spreadsheet table. Suponga que la tabla tiene una columna denominada Estado y los posibles valores en la columna Estado son:Assume that the table has a column named Status and the possible values in the Status column are:

  • completedcompleted
  • blockedblocked
  • unnecessaryunnecessary
  • not startednot started

A continuación se muestra un ejemplo del aspecto que podría tener la hoja de cálculo:Here's an example of what the spreadsheet might look like:

hoja de cálculo de ejemplo

Dada la hoja de cálculo anterior, es posible que desea usar Power Automate para quitar todas las filas con una columna Estado que se establece en completed o unnecesary.Given the preceding spreadsheet, you want to use Power Automate to remove all rows with a Status column that's set to completed or unnecessary.

Vamos a crear el flujo.Let's create the flow.

Comience con un flujo en blancoStart with a blank flow

  1. Inicie sesión en Power Automate.Sign into Power Automate.

    iniciar sesión

  2. Seleccione la pestaña Mis flujos.Select the My flows tab.

    seleccionar mis flujos

  3. Seleccione Crear desde cero.Select Create from blank.

    crear desde cero

Agregue un desencadenador al flujoAdd a trigger to your flow

  1. Busque Programación y seleccione el desencadenador Programación - PeriodicidadSearch for Schedule, and then select the Schedule - Recurrence trigger

    desencadenador de programación

  2. Configure la programación para que se ejecute una vez al día.Set the schedule to run once daily.

    configurar programación

Seleccione la hoja de cálculo y obtenga todas las filasSelect the spreadsheet and get all rows

  1. Seleccione Nuevo paso > Agregar una acción.Select New step > Add an action.

    nuevo paso

  2. Busque filas y seleccione Excel - Obtener filas.Search for rows, and then select Excel - Get rows.

    Nota: Seleccione la acción "obtener filas" que corresponda a la hoja de cálculo que vaya a usar.Note: Select the "get rows" action that corresponds to the spreadsheet that you're using. Por ejemplo, si va a utilizar Hojas de cálculo de Google, seleccione Hojas de cálculo de Google - Obtener filas.For example, if you're using Google Sheets, select Google Sheets - Get rows.

    obtener filas

  3. Seleccione el icono de la carpeta en el cuadro Nombre de archivo, busque la hoja de cálculo que contiene los datos y selecciónela.Select the folder icon in the File name box, browse to, and then select the spreadsheet that contains your data.

    seleccionar hoja de cálculo

  4. Seleccione la tabla que contiene los datos en la lista Nombre de tabla.Select the table that contains your data from the Table name list.

    seleccionar tabla

Compruebe la columna de estado de cada filaCheck the status column of each row

  1. Seleccione Nuevo paso > Más > Agregar Aplicar a cada uno.Select New step > More > Add an apply to each.

    seleccionar tabla

  2. Agregue el token Valor al cuadro Seleccionar una salida de los pasos.Add the Value token to the Select an output from previous steps box.

    seleccionar tabla

  3. Seleccione Agregar una condición > Editar en el modo avanzado.Select Add a condition > Edit in advanced mode.

  4. Agregue la siguiente expresión or.Add the following or expression. Esta expresión or comprueba el valor de cada fila de la tabla (una fila se conoce como un elemento cuando se accede a ella en una expresión).This or expression checks the value of each row in the table (a row is known as an item when accessed in a expression). Si el valor de la columna status es completed o unnecesary, la expresión or se evalúa como "true".If the value of the status column is completed or unnecessary, the or expression evaluates to "true".

    La expresión or aparece como se muestra aquí:The or expression appears as shown here:

    @or(equals(item()?['status'], 'unnecessary'), equals(item()?['status'], 'completed'))

    La tarjeta Condición es como la que aparece en esta imagen:Your Condition card resembles this image:

    Imagen de la expresión or

Eliminación de las filas coincidentes de la hoja de cálculoDelete matching rows from the spreadsheet

  1. Seleccione Agregar una acción en la sección IF YES, DO NOTHING (En caso positivo, no hacer nada) de la condición.Select Add an action on the IF YES, DO NOTHING branch of the condition.

  2. Busque Eliminar filay, después, seleccione Excel - Eliminar fila.Search for Delete row, and then select Excel - Delete row.

    imagen de eliminar fila

  3. En el cuadro Nombre de archivo, busque y seleccione el archivo de la hoja de cálculo que contiene los datos que desea eliminar.In the File name box, search for, and select the spreadsheet file that contains the data you want to delete.

  4. En la lista Nombre de tabla, seleccione la tabla que contiene los datos.In the Table name list, select the table that contains your data.

  5. Coloque el token Id. de fila en el cuadro Id. de fila.Place the Row id token in the Row id box.

    archivo de hoja de cálculo

Asigne un nombre al flujo y guárdeloName the flow and save it

  1. Asigne un nombre al flujo y haga clic en el botón Crear flujo.Give your flow a name and then select the Create flow button.

    guardar el flujo

Ejecución del flujo con la expresión orRun the flow with the or expression

El flujo se ejecuta después de que se guarda.The flow runs after you save it. Si ha creado la hoja de cálculo que se ha mostrado anteriormente en el tutorial, así debería ser una vez que se complete la ejecución:If you created the spreadsheet shown earlier in this walkthrough, here's what the it looks like after the run completes:

Se completa la expresión or

Observe que se han eliminado todos los datos de las filas en los que aparece "completed" o "unnecessary" en la columna Status.Notice all data from rows that had "completed" or "unnecessary" in the Status column were deleted.

Use la expresión andUse the and expression

Suponga que tiene una tabla de hoja de cálculo con dos columnas,Assume you have a spreadsheet table with two columns. cuyos nombres son Status y Assigned.The column names are Status and Assigned. Suponga también que desea eliminar todas las filas si el valor de la columna Status es "blocked" y el valor de la columna Assigned es "John Wonder".Assume also that you want to delete all rows if the Status column's value is "blocked" and the Assigned column's value is "John Wonder". Para realizar esta tarea, siga todos los pasos indicados anteriormente en este tutorial, pero cuando edite la tarjeta Condición en modo avanzado, use la expresión and que se muestra aquí:To accomplish this task, follow all steps earlier in this walkthrough, however, when you edit the Condition card in advanced mode, use the and expression shown here:

@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))

La tarjeta Condición es como la que aparece en esta imagen:Your Condition card resembles this image:

Imagen de la expresión and

Ejecución del flujo con la expresión andRun the flow with the and expression

Si ha seguido todos los pasos, la hoja de cálculo se parecerá a la de la siguiente imagen:If you followed along, your spreadsheet resembles this image:

antes de que se ejecute and

Después de la ejecución del flujo, la hoja de cálculo es similar a la de esta imagen:After your flow runs, your spreadsheet resembles this image:

después de que se ejecute and

Utilice la expresión emptyUse the empty expression

Observe que ahora hay varias filas vacías en la hoja de cálculo.Notice that there are several empty rows in the spreadsheet now. Para quitarlas, utilice la expresión empty para identificar todas las filas que no tengan texto en las columnas Assigned y Status.To remove them, use the empty expression to identify all rows that don't have any text in the Assigned and Status columns.

Para realizar esta tarea, siga todos los pasos indicados en la sección Uso de la expresión and de este tutorial, sin embargo, cuando edite la tarjeta Condición en modo avanzado, use la expresión empty como se muestra a continuación:To accomplish this task, follow all steps listed in Use the and expression section earlier in this walkthrough, however, when you edit the Condition card in advanced mode, use the empty expression this way:

@and(empty(item()?['Status']), empty(item()?['Assigned']))

La tarjeta Condición es como la que aparece en esta imagen:Your Condition card resembles this image:

Imagen de la expresión empty

Después de la ejecución del flujo, la hoja de cálculo es similar a la de esta imagen:After your flow runs, the spreadsheet resembles this image:

después de que se ejecute empty

Tenga en cuenta que las líneas adicionales se quitan de la tabla.Notice extra lines are removed from the table.

Uso de la expresión greaterUse the greater expression

Imagine que ha comprado entradas para un partido de béisbol para sus compañeros de trabajo y que usa una hoja de cálculo para asegurarse de que todos se las pagan.Imagine you've bought baseball tickets for your coworkers and you're using a spreadsheet to ensure you're reimbursed by each person. Puede crear rápidamente un flujo que envíe un correo electrónico diario a cada persona que no haya pagado la cantidad total.You can quickly create a flow that sends a daily email to each person who hasn't paid the full amount.

Use la expresión greater para identificar los empleados que no hayan pagado la cantidad total.Use the greater expression to identify the employees who haven't paid the full amount. Posteriormente, puede enviar automáticamente un recordatorio amistoso por correo electrónico a quienes no hayan pagado la totalidad.You can then automatically send a friendly reminder email to those who haven't paid in full.

Esta es una vista de la hoja de cálculo:Here's a view of the spreadsheet:

vista de la hoja de cálculo

Esta es la implementación de la expresión greater que identifica a todas las personas que han pagado menos de lo que deben:Here's the implementation of the greater expression that identifies all persons who have paid less than the amount due from them:

@greater(item()?['Due'], item()?['Paid'])

Uso de la expresión lessUse the less expression

Suponga que ha comprado entradas para un partido de béisbol para sus compañeros de trabajo y que usa una hoja de cálculo para asegurarse de que todos se las pagan antes de la fecha acordada.Imagine you've bought baseball tickets for your coworkers, and you're using a spreadsheet to ensure you're reimbursed by each person by the date to which everyone agreed. Puede crear un flujo que envíe un recordatorio por correo electrónico a todos aquellos que no hayan pagado el importe íntegro si la fecha actual es menos de un día antes de la fecha de vencimiento.You can create a flow that sends a reminder email to each person who hasn't paid the full amount if the current date is less than one day before the due date.

Use la expresión and junto con la función less, ya que se deben validar dos condiciones:Use the and expression along with the less expression since there are two conditions being validated:

Condición que se validaCondition to validate expresión que se usaexpression to use EjemploExample
¿Se ha pagado el importe total que se debe?Has the full amount due been paid? mayor quegreater @greater(item()?['Due'], item()?['Paid'])@greater(item()?['Due'], item()?['Paid'])
¿Es el fecha de vencimiento inferior a un día?Is the due date less than one day away? menosless @less(item()?['DueDate'], addDays(utcNow(),1))@less(item()?['DueDate'], addDays(utcNow(),1))

Combinación de las expresiones greater y less en una expresión andCombine the greater and less expressions in an and expression

Utilice la expresión greater para identificar a los empleados que han pagado menos que la cantidad total que se debe y la expresión less para determinar si la fecha de vencimiento del pago sea inferior a un día desde la fecha actual.Use the greater expression to identify the employees who have paid less than the full amount due and use the less expression to determine if the payment due date is less than one day away from the current date. Luego puede usar la acción Enviar un correo electrónico para enviar un recordatorio amistoso por correo electrónico a aquellos que no hayan pagado la totalidad cuando la fecha de vencimiento sea inferior a un día.You can then the Send an email action to send friendly reminder email to those who haven't paid in full and the due date is less than one day away.

Esta es una vista de la tabla de la hoja de cálculo:Here's a view of the spreadsheet table:

vista de la hoja de cálculo

Esta es la implementación de la expresión and que identifica a todas las personas que han pagado una cantidad inferior a la que debe y cuya fecha de vencimiento sea inferior a un día desde la fecha actual:Here's the implementation of the and expression that identifies all persons who have paid less than the amount due from them and the due date is less than one day away from the current date:

@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))

Uso de funciones en expresionesUse functions in expressions

Algunas expresiones obtienen sus valores de acciones en tiempo de ejecución que es posible que aún no existan cuando un flujo empiece a ejecutarse.Some expressions get their values from runtime actions that might not yet exist when a flow starts to run. Para hacer referencia a estos valores o trabajar con ellos en expresiones, puede usar las funciones que proporciona el lenguaje de definición de flujo de trabajo.To reference or work with these values in expressions, you can use functions that the Workflow Definition Language provides. Más información: Referencia de funciones para el lenguaje de definición de flujo de trabajo en Power AutomateMore information: Functions reference for Workflow Definition Language in Power Automate