Megosztás a következőn keresztül:


Table.Group

Syntax

Table.Group(table as table, key as any, aggregatedColumns as list, optional groupKind as nullable number, optional comparer as nullable function) as table

Névjegy

A sorok csoportosítása table a megadott kulcsoszlopok szerint key. Ez key lehet egyetlen oszlopnév vagy oszlopnevek listája. Minden csoporthoz létrejön egy rekord, amely tartalmazza a kulcsoszlopokat (és azok értékeit), valamint a megadott aggregatedColumnsösszesítő oszlopokat. Igény szerint, groupKind és comparer megadható is.

Ha az adatokat már a kulcsoszlopok rendezik, akkor groupKind a GroupKind.Local egyikét is meg lehet adni. Ez bizonyos esetekben javíthatja a csoportosítás teljesítményét, mivel a rendszer feltételezi, hogy az adott kulcsértékekkel rendelkező összes sor egybefüggő.

Amikor átad egy comparer, vegye figyelembe, hogy ha a különböző kulcsokat egyenlőként kezeli, akkor egy sor olyan csoportba helyezhető, amelynek kulcsai eltérnek a sajátjától.

Ez a függvény nem garantálja a visszaadott sorok sorrendjét.

1\. példa

Csoportosítsa a táblát egy összesítő oszlop [total] hozzáadásával, amely tartalmazza az árak összegét ("minden List.Sum([price])").

Használat

Table.Group(
    Table.FromRecords({
        [CustomerID = 1, price = 20],
        [CustomerID = 2, price = 10],
        [CustomerID = 2, price = 20],
        [CustomerID = 1, price = 10],
        [CustomerID = 3, price = 20],
        [CustomerID = 3, price = 5]
    }),
    "CustomerID",
    {"total", each List.Sum([price])}
)

Hozam

Table.FromRecords(
    {
        [CustomerID = 1, total = 30],
        [CustomerID = 2, total = 30],
        [CustomerID = 3, total = 25]
    },
    {"CustomerID", "total"}
)