Fonctions GroupBy et Ungroup dans PowerAppsGroupBy and Ungroup functions in PowerApps

Regroupe et dissocie les enregistrements d’une table.Groups and ungroups records of a table.

DescriptionDescription

La fonction GroupBy renvoie une table dans laquelle les enregistrements sont regroupés en fonction des valeurs contenues dans une ou plusieurs colonnes.The GroupBy function returns a table with records grouped together based on the values in one or more columns. Les enregistrements d’un même groupe sont placés dans un enregistrement unique, avec une colonne en plus qui contient une table imbriquée des colonnes 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 fonction Ungroup inverse le processus de la fonction GroupBy.The Ungroup function reverses the GroupBy process. Cette fonction renvoie une table dans laquelle les enregistrements qui avaient été regroupés sont séparés en enregistrements distincts.This function returns a table, breaking into separate records any records that were grouped together.

Vous pouvez regrouper les enregistrements à l’aide de la fonction GroupBy, modifier la table renvoyée, puis dissocier les enregistrements dans la table modifiée à l’aide de la fonction Ungroup.You can group records by using GroupBy, modify the table that it returns, and then ungroup records in the modified table by using Ungroup. Par exemple, vous pouvez supprimer un groupe d’enregistrements en suivant cette approche :For example, you can remove a group of records by following this approach:

  • Utilisez la fonction GroupBy.Use the GroupBy function.
  • Utilisez la fonction Filter pour supprimer le groupe d’enregistrements complet.Use the Filter function to remove the entire group of records.
  • Utilisez la fonction Ungroup.Use the Ungroup function.

Vous pouvez également agréger des résultats en fonction d’un regroupement :You can also aggregate results based on a grouping:

  • Utilisez la fonction GroupBy.Use the GroupBy function.
  • Utilisez la fonction AddColumns avec les fonctions Sum, Average et d’autres fonctions d’agrégation pour ajouter une nouvelle colonne constituant un agrégat des tables de groupes.Use the AddColumns function with Sum, Average, and other aggregate functions to add a new column which is an aggregate of the group tables.
  • Utilisez la fonction DropColumns pour supprimer la table de groupes.Use the DropColumns function to drop the group table.

La fonction Ungroup essaie de préserver l’ordre d’origine des enregistrements auxquels la fonction GroupBy a été appliquée.Ungroup tries to preserve the original order of the records that were fed to GroupBy. Cela n’est pas toujours possible (par exemple, si la table d’origine contient des enregistrements vides).This isn't always possible (for example, if the original table contains blank records).

Une table est une valeur dans PowerApps, au même titre qu’une chaîne ou qu’un chiffre.A table is a value in PowerApps, just like a string or a number. Vous pouvez spécifier une table en tant qu’argument pour une fonction et une fonction peut renvoyer une table.You can specify a table as an argument for a function, and a function can return a table. Les fonctions GroupBy et Ungroup ne modifient pas une table ; au lieu de cela, elles prennent une table en tant qu’argument et renvoient une autre table.GroupBy and Ungroup don't modify a table; instead they take a table as an argument and return a different table. Pour plus d’informations, voir Utilisation des tables.See working with tables for more details.

SyntaxeSyntax

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

  • Table - Requis.Table - Required. Table contenant les enregistrements à regrouper.Table to be grouped.
  • ColumnName(s) - Requis.ColumnName(s) - Required. Noms des colonnes de la table en fonction desquelles regrouper les enregistrements.The column names in Table by which to group records. Ces colonnes deviennent des colonnes dans la table renvoyée.These columns become columns in the resulting table.
  • GroupColumnName : requis.GroupColumnName - Required. Nom de colonne pour le stockage des données d’enregistrements ne figurant pas dans les ColumnName(s).The column name for the storage of record data not in the ColumnName(s).

    Remarque : pour des sources de données Excel ou SharePoint contenant des noms de colonne avec des espaces, spécifiez chacune d’elles sous la forme « _x0020_ ».Note: For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Par exemple, spécifiez « Nom de colonne » sous la forme « Nom_x0020_de_x0020_colonne ».For example, specify "Column Name" as "Column_x0020_Name".

Ungroup( Table, GroupColumnName )Ungroup( Table, GroupColumnName )

  • Table - Requis.Table - Required. Table contenant les enregistrements à dissocier.Table to be ungrouped.
  • GroupColumnName : requis.GroupColumnName - Required. Colonne qui contient les données d’enregistrements à part obtenues à l’aide de la fonction GroupBy.The column that contains the record data setup with the GroupBy function.

    Remarque : pour des sources de données Excel ou SharePoint contenant des noms de colonne avec des espaces, spécifiez chacune d’elles sous la forme « _x0020_ ».Note: For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Par exemple, spécifiez « Nom de colonne » sous la forme « Nom_x0020_de_x0020_colonne ».For example, specify "Column Name" as "Column_x0020_Name".

ExemplesExamples

Créer une collectionCreate a collection

  1. Ajoutez un bouton, puis définissez sa propriété Text de sorte qu’il affiche Original.Add a button, and set its Text property so that the button shows Original.
  2. Définissez la propriété OnSelect du bouton Original sur la formule suivante :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. Appuyez sur F5, sélectionnez le bouton Original, puis appuyez sur Échap.Press F5, select the Original button, and then press Esc.

    Vous venez de créer une collection, nommée CityPopulations, qui contient ces données :You just created a collection, named CityPopulations, that contains this data:

  4. Pour afficher cette collection, sélectionnez Collections dans le menu File (Fichier), puis sélectionnez la collection CityPopulations.To display this collection, select Collections on the File menu and then select the CityPopulations collection. Les cinq premiers enregistrements de la collection s’affichent :The first five records in the collection appear:

Regrouper les enregistrementsGroup records

  1. Ajoutez un autre bouton, puis définissez sa propriété Text sur "Group".Add another button, and set its Text property to "Group".
  2. Définissez la propriété OnSelect de ce bouton sur la formule suivante :Set the OnSelect property of this button to this formula:

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

  3. Appuyez sur F5, sélectionnez le bouton Group, puis appuyez sur Échap.Press F5, select the Group button, and then press Esc.

    Vous venez de créer une collection nommée CitiesByCountry, dans laquelle les enregistrements de la collection précédente sont regroupés en fonction de la colonne Country.You just created a collection, named CitiesByCountry, in which the records of the previous collection are grouped by the Country column.

  4. Pour afficher les cinq premiers enregistrements de cette collection, sélectionnez Collections dans le menu File (Fichier).To display the first five records in this collection, select Collections on the File menu.

  5. Pour afficher la population des villes d’un pays spécifique, sélectionnez l’icône de table dans la colonne Cities pour ce pays (par exemple, Germany (Allemagne)) :To display the populations of cities in a country, select the table icon in the Cities column for that country (for example, Germany):

Filtrer et dissocier les enregistrementsFilter and ungroup records

  1. Ajoutez un autre bouton, puis définissez sa propriété Text de sorte qu’il affiche Filter.Add another button, and set its Text property so that the button shows "Filter".
  2. Définissez la propriété OnSelect de ce bouton sur la formule suivante :Set the OnSelect property of this button to this formula:

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

  3. Appuyez sur F5, sélectionnez le bouton que vous avez ajouté, puis appuyez sur Échap.Press F5, select the button that you added, and then press Esc.

    Vous venez de créer une troisième collection, nommée CitiesByCountryFiltered, qui inclut uniquement les pays dont le nom contient la lettre « e » (à savoir tous les pays à l’exception de Spain (Espagne) et Italy (Italie)).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. Ajoutez un autre bouton, puis définissez sa propriété Text de sorte qu’il affiche Ungroup.Add one more button, and set its Text property so that the button shows "Ungroup".
  5. Définissez la propriété OnSelect de ce bouton sur la formule suivante :Set the OnSelect property of this button to this formula:

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

    Ce qui donne la résultat suivant :Which results in:

Agréger les résultatsAggregate results

Une table d’enregistrements regroupés permet également d’agréger les résultats.Something else we can do with a grouped table is to aggregate the results. Dans cet exemple, nous allons additionner la population des villes principales de chaque pays.In this example, we will sum the population of the major cities in each country.

  1. Ajoutez un autre bouton, puis définissez sa propriété Text de sorte qu’il affiche Sum.Add another button, and set its Text property so that the button shows "Sum".
  2. Définissez la propriété OnSelect du bouton Sum sur la formule suivante :Set the OnSelect property of the "Sum" button to this formula:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, "Sum of City Populations", Sum( Cities, Population ) ) )ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, "Sum of City Populations", Sum( Cities, Population ) ) )

    Ce qui donne la résultat suivant :Which results in:

    La fonction AddColumns commence par la collection de base CitiesByCountry et ajoute une nouvelle colonne Sum of City Populations.AddColumns starts with the base CitiesByCountry collection and adds a new column Sum of City Populations. Les valeurs de cette colonne sont calculées ligne par ligne selon la formule Sum( Cities, Population ).This column's values are calculated row-by-row, based on the formula Sum( Cities, Population ). La fonction AddColumns fournit la valeur de la colonne Cities (une table) pour chaque ligne, et la fonction Sum additionne les valeurs de la colonne Population pour chaque ligne de cette sous-table.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. Maintenant que nous avons la somme souhaitée, nous pouvons utiliser la fonction DropColumns pour supprimer les sous-tables.Now that we have the sum that we want, we can use DropColumns to remove the sub tables. Modifiez la propriété OnSelect de sorte qu’elle utilise la formule suivante :Modify the OnSelect property to use this formula:

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

    Ce qui donne la résultat suivant :Which results in:

    Notez que nous n’avons pas eu besoin de dissocier cette table.Note that we did not need to ungroup this table.