Funciones AgruparPor y Desagrupar en PowerAppsGroupBy and Ungroup functions in PowerApps

Agrupa y desagrupa registros de una tabla.Groups and ungroups records of a table.

DescripciónDescription

La función AgruparPor devuelve una tabla con registros agrupados en función de los valores de una o varias columnas.The GroupBy function returns a table with records grouped together based on the values in one or more columns. Los registros del mismo grupo se colocan en un único registro, con una columna agregada que contiene una tabla anidada de las columnas restantes.Records in the same group are placed into a single record, with a column added that holds a nested table of the remaining columns.

La función Desagrupar invierte el proceso realizado por Agrupar por.The Ungroup function reverses the GroupBy process. Esta función devuelve una tabla y divide en registros individuales todos los registros que estaban agrupados.This function returns a table, breaking into separate records any records that were grouped together.

Puede agrupar los registros mediante AgruparPor, modificar la tabla que devuelve y, a continuación, desagrupar los registros de la tabla modificada mediante la función Desagrupar.You can group records by using GroupBy, modify the table that it returns, and then ungroup records in the modified table by using Ungroup. Por ejemplo, puede quitar un grupo de registros siguiendo este enfoque:For example, you can remove a group of records by following this approach:

  • Use la función AgruparPor.Use the GroupBy function.
  • Use la función Filtrar para quitar todo el grupo de registros.Use the Filter function to remove the entire group of records.
  • Use la función Desagrupar.Use the Ungroup function.

También puede agregar los resultados en función de una agrupación:You can also aggregate results based on a grouping:

  • Use la función AgruparPor.Use the GroupBy function.
  • Use la función AddColumns con Suma, Promedio y otras funciones de agregado para agregar una nueva columna que sea un agregado de las tablas de grupos.Use the AddColumns function with Sum, Average, and other aggregate functions to add a new column which is an aggregate of the group tables.
  • Use la función DropColumns para quitar la tabla de grupo.Use the DropColumns function to drop the group table.

Desagrupar intenta conservar el orden original de los registros que se proporcionan a AgruparPor.Ungroup tries to preserve the original order of the records that were fed to GroupBy. Esto no siempre es posible (por ejemplo, si la tabla original contiene registros en blanco).This isn't always possible (for example, if the original table contains blank records).

Una tabla es un valor en PowerApps, como una cadena o un número.A table is a value in PowerApps, just like a string or a number. Puede especificar una tabla como argumento para una función y una función puede devolver una tabla.You can specify a table as an argument for a function, and a function can return a table. AgruparPor y Desagrupar no modifican una tabla; en lugar de eso, toman una tabla como argumento y devuelven una tabla diferente.GroupBy and Ungroup don't modify a table; instead they take a table as an argument and return a different table. Consulte cómo trabajar con tablas para más detalles.See working with tables for more details.

SintaxisSyntax

AgruparPor( Tabla, ColumnName1 [, ColumnName2, ... ], GroupColumnName )GroupBy( Table, ColumnName1 [, ColumnName2, ... ], GroupColumnName )

  • Table: requerido.Table - Required. Tabla que se desea agrupar.Table to be grouped.
  • ColumnName(s): requerido.ColumnName(s) - Required. Los nombres de columna en Tabla mediante los que se van a agrupar los registros.The column names in Table by which to group records. Estas columnas se convierten en columnas en la tabla resultante.These columns become columns in the resulting table.
  • GroupColumnName: requerido.GroupColumnName - Required. El nombre de la columna para el almacenamiento de datos de registro que no están en el ColumnName(s).The column name for the storage of record data not in the ColumnName(s).

    Nota: Para orígenes de datos de SharePoint y Excel que contienen nombres de columna con espacios, especifique cada uno de ellos como "_x0020_".Note: For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Por ejemplo, especifique "Nombre de columna" como "Nombre_x0020_de_columna".For example, specify "Column Name" as "Column_x0020_Name".

Desagrupar( Tabla, GroupColumnName )Ungroup( Table, GroupColumnName )

  • Table: requerido.Table - Required. Tabla que se desea desagrupar.Table to be ungrouped.
  • GroupColumnName: requerido.GroupColumnName - Required. La columna que contiene la configuración de los datos de registro con la función AgruparPor.The column that contains the record data setup with the GroupBy function.

    Nota: Para orígenes de datos de SharePoint y Excel que contienen nombres de columna con espacios, especifique cada uno de ellos como "_x0020_".Note: For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Por ejemplo, especifique "Nombre de columna" como "Nombre_x0020_de_columna".For example, specify "Column Name" as "Column_x0020_Name".

EjemplosExamples

Crear una colecciónCreate a collection

  1. Agregue un botón y establezca su propiedad Texto para que el botón muestre Original.Add a button, and set its Text property so that the button shows Original.
  2. Establezca la propiedad AlSeleccionar del botón Original en esta fórmula:Set the OnSelect property of the Original button to this formula:

    ClearCollect(CityPopulations, {City:"London", Country:"United Kingdom", Population:8615000}, {City:"Berlin", Country:"Germany", Population:3562000}, {City:"Madrid", Country:"Spain", Population:3165000}, {City:"Rome", Country:"Italy", Population:2874000}, {City:"Paris", Country:"France", Population:2273000}, {City:"Hamburg", Country:"Germany", Population:1760000}, {City:"Barcelona", Country:"Spain", Population:1602000}, {City:"Munich", Country:"Germany", Population:1494000}, {City:"Milan", Country:"Italy", Population:1344000})ClearCollect(CityPopulations, {City:"London", Country:"United Kingdom", Population:8615000}, {City:"Berlin", Country:"Germany", Population:3562000}, {City:"Madrid", Country:"Spain", Population:3165000}, {City:"Rome", Country:"Italy", Population:2874000}, {City:"Paris", Country:"France", Population:2273000}, {City:"Hamburg", Country:"Germany", Population:1760000}, {City:"Barcelona", Country:"Spain", Population:1602000}, {City:"Munich", Country:"Germany", Population:1494000}, {City:"Milan", Country:"Italy", Population:1344000})

  3. Presione F5, seleccione el botón Original y presione Esc.Press F5, select the Original button, and then press Esc.

    Acaba de crear una colección, que se denomina CityPopulations, que contiene estos datos:You just created a collection, named CityPopulations, that contains this data:

  4. Para mostrar esta colección, seleccione Colecciones en el menú Archivo y, a continuación, seleccione la colección CityPopulations.To display this collection, select Collections on the File menu and then select the CityPopulations collection. Aparecerán los cinco primeros registros de la colección:The first five records in the collection appear:

Registros de grupoGroup records

  1. Agregue otro botón y establezca su propiedad Texto en "Group".Add another button, and set its Text property to "Group".
  2. Establezca la propiedad AlSeleccionar de este botón en esta fórmula:Set the OnSelect property of this button to this formula:

    ClearCollect( CitiesByCountry, AgruparPor( CityPopulations, "Country", "Ciudades" ) )ClearCollect( CitiesByCountry, GroupBy( CityPopulations, "Country", "Cities" ) )

  3. Presione F5, seleccione el botón Grupo y presione Esc.Press F5, select the Group button, and then press Esc.

    Acaba de crear una recopilación denominada CitiesByCountry, en la que se agrupan los registros de la colección anterior mediante la columna País.You just created a collection, named CitiesByCountry, in which the records of the previous collection are grouped by the Country column.

  4. Para mostrar los primeros cinco registros de esta colección, seleccione Colecciones en el menú Archivo.To display the first five records in this collection, select Collections on the File menu.

  5. Para mostrar la población de las ciudades de un país o región, seleccione el icono de tabla de la columna Ciudades de ese país (por ejemplo, Alemania):To display the populations of cities in a country, select the table icon in the Cities column for that country (for example, Germany):

Filtrado y desagrupación de registrosFilter and ungroup records

  1. Agregue otro botón y establezca su propiedad Texto para que el botón muestre "Filtrar".Add another button, and set its Text property so that the button shows "Filter".
  2. Establezca la propiedad AlSeleccionar de este botón en esta fórmula:Set the OnSelect property of this button to this formula:

    ClearCollect( CitiesByCountryFiltered, Filtrar( CitiesByCountry, "e" in Country ) )ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" in Country ) )

  3. Presione F5, seleccione el botón que agregó y presione Esc.Press F5, select the button that you added, and then press Esc.

    Acaba de crear una tercera colección denominada CitiesByCountryFiltered, que incluye solo aquellos países que tienen una "e" en sus nombres (es decir, no España o Italia, por ejemplo).You just created a third collection, named CitiesByCountryFiltered, that includes only those countries that have an "e" in their names (that is, not Spain or Italy).

  4. Agregue un botón más y establezca su propiedad Texto para que el botón muestre "Desagrupar".Add one more button, and set its Text property so that the button shows "Ungroup".
  5. Establezca la propiedad AlSeleccionar de este botón en esta fórmula:Set the OnSelect property of this button to this formula:

    ClearCollect( CityPopulationsUngrouped, Desagrupar( CitiesByCountryFiltered, "Ciudades" ) )ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, "Cities" ) )

    Que da como resultado:Which results in:

Agregación de resultadosAggregate results

Otra cosa que podemos hacer con una tabla agrupada consiste en agregar los resultados.Something else we can do with a grouped table is to aggregate the results. En este ejemplo, se sumará la población de las ciudades más importantes de cada país.In this example, we will sum the population of the major cities in each country.

  1. Agregue otro botón y establezca su propiedad Texto para que el botón muestre "Suma".Add another button, and set its Text property so that the button shows "Sum".
  2. Establezca la propiedad AlSeleccionar del botón "Suma" en esta fórmula:Set the OnSelect property of the "Sum" button to this formula:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, "Suma de las poblaciones de las ciudades", Suma( Ciudades, Population ) ) )ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, "Sum of City Populations", Sum( Cities, Population ) ) )

    Que da como resultado:Which results in:

    AddColumns comienza con la colección básica de CitiesByCountry y agrega una nueva columna denominada Suma de las poblaciones de las ciudades.AddColumns starts with the base CitiesByCountry collection and adds a new column Sum of City Populations. Los valores de esta columna se calculan fila por fila según la fórmula Suma( Ciudades, Population ).This column's values are calculated row-by-row, based on the formula Sum( Cities, Population ). AddColumns proporciona el valor de la columna Ciudades (una tabla) para cada fila y Suma la Población de cada fila de esta subtabla.AddColumns provides the value of the Cities column (a table) for each row, and Sum adds up the Population for each row of this sub table.

  3. Ahora que tenemos la suma que queremos, podemos usar la función DropColumns para quitar las subtablas.Now that we have the sum that we want, we can use DropColumns to remove the sub tables. Modifique la propiedad AlSeleccionar para que use esta fórmula:Modify the OnSelect property to use this formula:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, "Ciudades" ) )ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, "Cities" ) )

    Que da como resultado:Which results in:

    Tenga en cuenta que no fue necesario desagrupar esta tabla.Note that we did not need to ungroup this table.