Table.FuzzyGroup
Table.FuzzyGroup(table as table, key as any, aggregatedColumns as list, optional options as nullable record) as table
Seskupí řádky table
podle přibližné shody hodnot v zadaném sloupci key
pro každý řádek. Pro každou skupinu se vytvoří záznam obsahující klíčové sloupce (a jejich hodnoty) spolu s agregovanými sloupci určenými aggregatedColumns
. Tato funkce nemůže zaručit vrácení pevného pořadí řádků.
K určení způsobu porovnání klíčových sloupců může být zahrnuta volitelná sada options
. Mezi možnosti patří:
-
Culture
: Umožňuje seskupování záznamů na základě kulturních pravidel. Může to být libovolný platný kulturní název. Například možnost Kultura "ja-JP" seskupí záznamy na základě japonské kultury. Výchozí hodnota je "", která seskupuje na základě invariantní anglické jazykové verze. -
IgnoreCase
: Logická hodnota (true/false), která umožňuje seskupování klíčů bez rozlišování malých a velkých písmen. Například když je to pravdivé, jsou "Hrozny" seskupeny s "hrozny". Výchozí hodnota je true. -
IgnoreSpace
: Logická hodnota (true/false), která umožňuje kombinování textových částí, aby bylo možné najít skupiny. Pokud je například pravda, "Gra pes" je seskupený s "Hrozny". Výchozí hodnota je true. -
SimilarityColumnName
: Název sloupce, který zobrazuje podobnost mezi vstupní hodnotou a reprezentativní hodnotou pro daný vstup. Výchozí hodnota je null, v takovém případě se nepřidá nový sloupec pro podobnosti. -
Threshold
: Číslo od 0,00 do 1,00, které určuje skóre podobnosti, při kterém budou seskupeny dvě hodnoty. Například "Hrozny" a "Graes" (chybí "p") jsou seskupené dohromady pouze v případě, že je tato možnost nastavená na méně než 0,90. Prahová hodnota 1,00 umožňuje pouze přesné shody. (Všimněte si, že přibližná "přesná shoda" může ignorovat rozdíly, jako jsou velikost textu, pořadí slov a interpunkce.) Výchozí hodnota je 0,80. -
TransformationTable
: Tabulka, která umožňuje seskupování záznamů na základě vlastních mapování hodnot. Měl by obsahovat sloupce Od a Komu. Například "Hrozny" se seskupí s "Rozinky", pokud je k dispozici transformační tabulka se sloupcem "From" obsahujícím "Hrozny" a sloupcem "To" obsahujícím "Rozinky". Všimněte si, že transformace se použije u všech výskytů textu v transformační tabulce. S výše uvedenou transformační tabulkou se také "Hrozny jsou sladké" seskupí s "Rozinky jsou sladké".
Seskupte tabulku přidáním agregovaného sloupce [Count], který obsahuje počet zaměstnanců v každém umístění (each Table.RowCount(_)
).
využití
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]
)
výstupní
Table.FromRecords({
[Location = "Seattle", Count = 4],
[Location = "Vancouver", Count = 3]
})