Table.FuzzyGroup
Table.FuzzyGroup(table as table, key as any, aggregatedColumns as list, optional options as nullable record) as table
Csoportosítja a table
sorait minden sor esetén a megadott oszlopban lévő key
-hez hozzávetőlegesen illeszkedő értékek alapján. Minden csoporthoz létrejön egy rekord, amely tartalmazza a kulcsoszlopokat (és azok értékeit), valamint a aggregatedColumns
által megadott összesítő oszlopokat. Ez a függvény nem garantálja a sorok rögzített sorrendjének visszaadását.
A kulcsoszlopok összehasonlításának módjának megadásához választható options
is szerepelhet. A lehetőségek a következők:
-
Culture
: Lehetővé teszi a rekordok kultúraspecifikus szabályok alapján történő csoportosítását. Bármilyen érvényes kulturális név lehet. Például a "ja-JP" Kultúra lehetőség a japán kultúra alapján csoportosítja a rekordokat. Az alapértelmezett érték az üres ("") karakterlánc, amely az invariáns angol kultúra szerint csoportosít. -
IgnoreCase
: Logikai (igaz/hamis) érték, amely lehetővé teszi a kis- és nagybetűkre nem érzékeny kulcs-csoportosítást. Amikor például igaz, a "Szőlő" a "szőlővel" együtt van csoportosítva. Az alapértelmezett érték igaz. -
IgnoreSpace
: Logikai (igaz/hamis) érték, amely lehetővé teszi a szövegrészek kombinálását a csoportok kereséséhez. Ha például igaz, a "Gra pes" a "Szőlő" csoportba van csoportosítva. Az alapértelmezett érték igaz. -
SimilarityColumnName
: Az oszlop neve, amely egy bemeneti érték és az adott bemenet reprezentatív értéke közötti hasonlóságot mutatja. Az alapértelmezett érték null, ebben az esetben a rendszer nem ad hozzá új oszlopot a hasonlóságokhoz. -
Threshold
: Egy 0,00 és 1,00 közötti szám, amely meghatározza a hasonlósági pontszámot, amelyben két érték lesz csoportosítva. Például a "Szőlő" és a "Graes" (hiányzik a "p") csak akkor lesz összecsoportosítva, ha ez a beállítás kevesebb mint 0,90-re van állítva. Az 1,00-s küszöbérték csak pontos egyezéseket tesz lehetővé. (Vegye figyelembe, hogy a homályos "pontos egyezés" figyelmen kívül hagyhatja a különbségeket, például a burkolatot, a szósorrendet és az írásjeleket.) Az alapértelmezett érték 0,80. -
TransformationTable
: Olyan tábla, amely lehetővé teszi a rekordok egyéni értékleképezések alapján történő csoportosítását. Tartalmaznia kell a "From" és "To" oszlopokat. Például a "Szőlő" a "Mazsola" kategóriába van csoportosítva, ha van egy olyan átalakítási táblázat, amelyben az "Ebből" oszlop a "Szőlő" és az "Ez lesz" oszlop a "Mazsola" értéket tartalmazza. Vegye figyelembe, hogy az átalakítás az átalakítási táblázat szövegének minden előfordulására érvényes lesz. A fenti átalakítási táblázattal a "Szőlő édes" is egy csoportba kerül a "Mazsola édes"-sel.
Csoportosítsa a táblát, és adjon hozzá egy összesítő oszlopot [Darabszám], amely az egyes helyeken (each Table.RowCount(_)
) lévő alkalmazottak számát tartalmazza.
használat
Table.FuzzyGroup(
Table.FromRecords(
{
[EmployeeID = 1, Location = "Seattle"],
[EmployeeID = 2, Location = "seattl"],
[EmployeeID = 3, Location = "Vancouver"],
[EmployeeID = 4, Location = "Seatle"],
[EmployeeID = 5, Location = "vancover"],
[EmployeeID = 6, Location = "Seattle"],
[EmployeeID = 7, Location = "Vancouver"]
},
type table [EmployeeID = nullable number, Location = nullable text]
),
"Location",
{"Count", each Table.RowCount(_)},
[IgnoreCase = true, IgnoreSpace = true]
)
kimeneti
Table.FromRecords({
[Location = "Seattle", Count = 4],
[Location = "Vancouver", Count = 3]
})