Compartir a través de


FilterFunciones , Searchy LookUp

Se aplica a: Aplicaciones de lienzo Copilot Studio Desktop fluyen aplicaciones controladas por modelos de power Platform FUNCIONES de Power Platform Dataverse Power Pages

Busca uno o varios registros en una tabla.

Vea este vídeo para aprender a usar Filterlas funciones , Searchy LookUp :

Nota

Los comandos pac power-fx de la CLI pac no admiten la Search función .

Description

La Filter función busca registros en una tabla que satisfacen una fórmula. Use Filter para buscar un conjunto de registros que coincidan con uno o varios criterios y descartar los registros que no lo hacen.

La LookUp función busca el primer registro de una tabla que satisface una fórmula. Use LookUp para buscar un único registro que coincida con uno o varios criterios.

En ambos casos, la fórmula se evalúa para cada registro de la tabla. Los registros que dan como resultado true se incluyen en el resultado. Además de los operadores de la fórmula normal, puede usar los operadores in y exactin para las coincidencias de subcadenas.

Los campos de registro que se están procesando actualmente estarán disponibles en la formula. Use el operador ThisRecord o simplemente haga referencia a los campos por nombre como lo haría con cualquier otro valor. El operador As también se puede usar para nombrar el registro que se está procesando, lo que puede ayudar a que su fórmula sea más fácil de entender y hacer accesibles los registros anidados. Para obtener más información, vea los ejemplos siguientes y trabajar con el ámbito de registros.

La Search función busca registros en una tabla que contienen una cadena en una de sus columnas. La cadena puede estar en cualquier lugar de la columna. Por ejemplo, si busca "rob" o "bert" encontrará una coincidencia si una columna contiene "Roberto". La búsqueda no distingue mayúsculas de minúsculas. A diferencia Filter de y LookUp, la Search función usa una sola cadena para buscar coincidencias en lugar de una fórmula.

Filter y Search devuelven una tabla que contiene las mismas columnas que la tabla original y los registros que coinciden con los criterios. LookUp devuelve solo el primer registro encontrado, después de aplicar una fórmula para reducir el registro a un solo valor. Si no se encuentra Filter ningún registro y Search devuelve una tabla vacía y LookUp devuelve en blanco.

Las tablas son un valor en Power Apps, al igual que una cadena o un número. Se pueden pasar a funciones y las funciones pueden devolverlas. Filter, Searchy LookUp no modifiquen una tabla. En vez de eso, usan la tabla como argumento y devuelven una tabla, un registro o un solo valor de ella. Consulte cómo trabajar con tablas para más detalles.

Delegación

Siempre que sea posible, Power Apps delegará las operaciones de filtrado y ordenación al origen de datos y se desplazará por los resultados a petición. Por ejemplo, cuando se inicia una aplicación que muestra un control Galería lleno de datos, inicialmente solo se traerá al dispositivo el primer conjunto de registros. A medida que el usuario se desplace por los datos, se traerán más datos del origen de datos. El resultado es un inicio más rápido de la aplicación y acceso a conjuntos de datos muy grandes.

Sin embargo, la delegación no siempre es posible. La compatibilidad de funciones y operadores con la delegación varía según el origen de datos. Si la delegación completa de una fórmula no es posible, el entorno de creación indicará la parte que no se puede delegar con una advertencia. Si es posible, considere la posibilidad de cambiar la fórmula para que no incluya las funciones y los operadores que no se pueden delegar. La lista de delegación detalla qué orígenes de datos y operaciones se pueden delegar.

Si la delegación no es posible, Power Apps solo descargará un conjunto reducido de registros para trabajar localmente. Filter y las funciones de ordenación funcionarán en un conjunto reducido de registros. En la Galería puede no estará disponible la historia completa, y esto puede resultar confuso a los usuarios.

Consulte la información general sobre delegación para obtener más información.

Sintaxis

Filter(Table*, Formula1 [, *Formula2*, ... ] )

  • Tabla - Obligatorio. La tabla en la que se va a buscar.
  • Fórmulas - Obligatorio. La fórmula por la que se evalúa cada registro de la tabla. La función devuelve todos los registros cuyo resultado es true. Puede hacer referencia a columnas dentro de la tabla. Si se proporciona más de una fórmula, los resultados de todas las fórmulas se combinan con la función And.

Search(Table*, SearchString, Column1 [, *Column2*, ... ] )

  • Tabla - Obligatorio. La tabla en la que se va a buscar.
  • SearchString - Obligatorio. La cadena que se va a buscar. Si es blank o es una cadena vacía, se devolverán todos los registros.
  • Columnas - Obligatorio. Los nombres de las columnas dentro de Table que se van a buscar. Si se encuentra SearchString dentro de los datos de cualquiera de estas columnas como una coincidencia parcial, se devolverá el registro completo.

Nota

En Power Apps anterior a la versión 3.24042, los nombres de columna de la Search función se especificaron con una cadena de texto con comillas dobles y, si están conectados a un origen de datos, también tenían que ser nombres lógicos. Por ejemplo, se utilizó el nombre lógico "cr43e_name" con comillas dobles en lugar del nombre Name sin comillas. Para orígenes de datos de SharePoint y Excel que contienen nombres de columnas con espacios, cada espacio se especificó con "_x0020_", por ejemplo "Column Name" como "Column_x0020_Name". Después de esta versión, todas las aplicaciones se actualizaron automáticamente a la nueva sintaxis descrita en este artículo.

LookUp(Tabla*, Fórmula [, *ReductionFormula* ] )

  • Tabla - Obligatorio. La tabla en la que se va a buscar. En la interfaz de usuario, la sintaxis se muestra como origen encima del cuadro de función.
  • Fórmula - Obligatoria. La fórmula por la que se evalúa cada registro de la tabla. La función devuelve el primer registro cuyo resultado es true. Puede hacer referencia a columnas dentro de la tabla. En la interfaz de usuario, la sintaxis se muestra como condición encima del cuadro de función.
  • Fórmula de reducción - Opcional. Esta fórmula se evalúa en el registro que se ha encontrado y luego el registro se reduce a un valor único. Puede hacer referencia a columnas dentro de la tabla. Si no se usa este parámetro, la función devuelve el registro completo de la tabla. En la interfaz de usuario, la sintaxis se muestra como resultado encima del cuadro de función.

Ejemplos

Los ejemplos siguientes usan el origen de datosIceCream:

Origen de datos Helado.

Fórmula Description Result
Filter(IceCream, OnOrder > 0) Devuelve aquellos registros en los que OnOrder es mayor que cero. Filter En orden.
Filter(IceCream, Quantity + OnOrder > 225) Devuelve aquellos registros en los que la suma de las columnas Quantity y OnOrder es mayor que 225. Filter cantidad y pedido.
Filter(IceCream, "chocolate" en Lower(Flavor )) Devuelve aquellos registros donde aparece la palabra "chocolate" en el nombre Flavor, sin tener en cuenta mayúsculas o minúsculas. Filter en la parte inferior.
Filter(IceCream, Quantity < 10 && OnOrder < 20) Devuelve aquellos registros donde Quantity es menor que 10 y la cantidad OnOrder es menor que 20. No hay registros que coincidan con estos criterios, por lo que se devolverá una tabla vacía. Filter cantidad.
Search(IceCream, "choc", Flavor) Devuelve aquellos registros donde aparece la cadena "choc" en el nombre Flavor, sin tener en cuenta mayúsculas o minúsculas. Search Artículos.
Search(IceCream, "", Flavor) Dado que el término de búsqueda está vacío, se devolverán todos los registros. Search todos los elementos.
LookUp(IceCream, Flavor = "Chocolate", Quantity) Busca un registro cuyo valor de Flavor sea igual a "Chocolate". En este caso, devuelve uno. Para el primer registro que se encuentra, devuelve el valor de Cantidad de ese registro. 100
LookUp(IceCream, Quantity > 150, Quantity + OnOrder) Busca un registro cuyo valor de Quantity sea mayor que 150. En este caso, devuelve varios. Para el primer registro que se encuentra, que es el Flavor "Vanilla", devuelve la suma de las columnas Quantity y OnOrder. 250
LookUp(IceCream, Flavor = "Pistachio", OnOrder) Busca un registro cuyo valor de Flavor sea igual a "Pistachio". En este caso no devuelve ninguno. Como no se encuentra ninguno, Búsqueda devuelve blank. blanco
LookUp(IceCream, Flavor = "Vanilla") Busca un registro cuyo valor de Flavor sea igual a "Vanilla". En este caso, devuelve uno. Como no se proporcionó ninguna fórmula de reducción, se devuelve todo el registro. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Filtrado con columnas de elección

El siguiente ejemplo usa la tabla Cuenta en Microsoft Dataverse como origen de datos. En este ejemplo se muestra cómo enumerar Filter las cuentas en función de los valores de control de cuadro combinado seleccionados:

Paso a paso

  1. Abra una aplicación en blanco.

  2. Agregue una nueva pantalla seleccionando la opción Nueva pantalla.

  3. En la pestaña Insertar, seleccione Galería y luego seleccione Vertical.

  4. En al pestaña Propiedades del panel de la derecha, abra origen de datos y luego seleccione Cuentas.

  5. (Opcional) En la lista Diseño, seleccione diferentes opciones.

  6. En la pestaña Insertar, seleccione Entrada y, a continuación, Cuadro combinado. Repita el paso para agregar dos controles de cuadro combinado más.

  7. Para cada control de cuadro combinado, en la pestaña Propiedades del panel de la derecha, abra origen de datos y luego seleccione Cuentas. Seleccione Editar junto a la opción Campos y luego seleccione los valores Texto principal y Campo de búsqueda. Texto principal debe ser la columna de opciones que desea agregar al cuadro combinado. Repita el paso para los otros dos controles de cuadro combinado.

    Establecer valores de cuadro combinado.

  8. Ahora seleccione el control Gallery y establezca la propiedad Items en la siguiente fórmula:

    Filter(Accounts,
     'Industry' = ComboBox3.Selected.Industry Or IsBlank(ComboBox3.Selected.Industry),
     'Relationship Type' = ComboBox2.Selected.'Relationship Type' Or
       IsBlank(ComboBox2.Selected.'Relationship Type'),
     'Preferred Method of Contact' = ComboBox1.Selected.'Preferred Method of Contact' Or
       IsBlank(ComboBox1.Selected.'Preferred Method of Contact'))
    

    Origen de datos de cuentas.

Search experiencia del usuario

Los ejemplos siguientes usan el origen de datosIceCream:

En muchas aplicaciones, puede escribir uno o varios caracteres en un cuadro de búsqueda para filtrar una lista de registros en un conjunto de datos grande. A medida que escribe, la lista muestra solo los registros que coinciden con los criterios de búsqueda.

Los ejemplos que aparecen en el resto de este artículo muestran los resultados de buscar en una lista denominada Customers, que contiene estos datos:

Search en clientes.

Para crear este origen de datos como una colección, cree un control Button y establezca la propiedad OnSelect en esta fórmula:

ClearCollect(Clientes, Tabla({ Nombre: "Fred Garcia", Empresa: "Northwind Traders" }, { Nombre: "Cole Miller", Empresa: "Contoso" }, { Nombre: "Glenda Johnson", Empresa: "Contoso" }, { Nombre: "Mike Collins", Empresa: "Adventure Works" }, { Nombre: "Colleen Jones", Empresa: "Adventure Works" }) )

Como en este ejemplo, puede mostrar una lista de registros en un control Gallery en la parte inferior de una pantalla. Cerca de la parte superior de la pantalla, puede agregar un control Text input denominado SearchInput, de modo que los usuarios puedan especificar los registros que más les interesen.

Search mediante la entrada de búsqueda.

A medida que el usuario escribe caracteres en SearchInput, automáticamente se filtran los resultados en la galería. En este caso, se configura la galería para que muestre los registros para los que el nombre del cliente (no el nombre de la empresa) comienza con la secuencia de caracteres de SearchInput. Si el usuario escribe co en el cuadro de búsqueda, la galería muestra estos resultados:

Search con comienza con.

Para filtrar según la columna Nombre, establezca la propiedad Items del control Gallery en una de estas fórmulas:

Fórmula Description Result
Filter(Customers, StartsWith(Name, SearchInput.Text) ) Filtra el origen de datos Clientes para los registros en los que la cadena de búsqueda aparece al principio de la columna Name. La prueba no distingue mayúsculas de minúsculas. Si el usuario escribe co en el cuadro de búsqueda, la galería mostrará Colleen Jones y Cole Miller. La galería no mostrará Mike Collins porque la columna Name de ese registro no comienza por la cadena de búsqueda. Filter con empezar.
Filter(Clientes, SearchInput.Text en nombre) Filtra el origen de datos Clientes para los registros en los que la cadena de búsqueda aparece en cualquier parte de la columna Name. La prueba no distingue mayúsculas de minúsculas. Si el usuario escribe co en el cuadro de búsqueda, la galería mostrará Colleen Jones,Cole Miller y Mike Collins, ya que la cadena de búsqueda aparece en algún lugar de la columna Name de todos esos registros. Filter con entrada de búsqueda.
Search(Customers, SearchInput.Text, Name) De forma similar al uso del operador in , la Search función busca una coincidencia en cualquier lugar dentro de la columna Nombre de cada registro. Debe incluir el nombre de la columna entre comillas dobles. Search clientela.

Puede expandir la búsqueda para incluir la columna Empresa y la columna Nombre:

Fórmula Description Result
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) Filtra el origen de datos Customer para buscar registros en los que la columna Name o la columna Company comienza por la cadena de búsqueda (por ejemplo, co). El || operador será true si la función StartsWith es también true. Filter los clientes empiezan por.
Filter(Clientes, SearchInput.Text en nombre || SearchInput. Texto de la compañía) Filtra el origen de datos Clientes de aquellos registros en los que la columna Name o la columna Company contienen la cadena de búsqueda en cualquier lugar (por ejemplo, co). Filter clientes buscan la entrada.
Search(Customers, SearchInput.Text, Name, Company) De forma similar al uso del operador in , la Search función busca en el origen de datos Customers los registros en los que la columna Nombre o la columna Company contiene la cadena de búsqueda (por ejemplo, co) en cualquier parte de ella. La Search función es más fácil de leer y escribir que Filter si desea especificar varias columnas y varias en operadores. Search clientes con entrada de búsqueda.