Table.FuzzyGroup
Table.FuzzyGroup(table as table, key as any, aggregatedColumns as list, optional options as nullable record) as table
Zoskupí riadky tabuľky podľa približných table
zhôd s hodnotami v zadanom stĺpci key
pre každý riadok. Pre každú skupinu sa vytvorí záznam obsahujúci kľúčové stĺpce (a ich hodnoty) spolu so všetkými agregovanými stĺpcami zadanými hodnotou aggregatedColumns
. Táto funkcia nemôže zaručiť, že dôjde k vráteniu pevného poradia riadkov.
Voliteľná množina stĺpcov, ktorá options
určuje spôsob porovnania kľúčových stĺpcov, môže byť tiež zahrnutá. Možnosti zahŕňajú:
Culture
: Umožňuje zoskupovanie záznamov na základe pravidiel špecifických pre jazykovú verziu. Môže ísť o ľubovoľný platný názov jazykovej verzie. Napríklad možnosť Culture s "sk-SK" zoskupí záznamy na základe japonskej kultúry. Predvolená hodnota je "", ktorá zoskupuje na základe invariantnej anglickej jazykovej verzie.IgnoreCase
: Logická hodnota (true/false), ktorá umožňuje zoskupovanie kľúčov s rozlišovaním veľkých a malých písmen. Napríklad, ak je hodnota True, reťazec "Hrozno" bude zoskupené s reťazcom "hrozno". Predvolená hodnota je True.IgnoreSpace
: Logická hodnota (true/false), ktorá umožňuje kombinovať textové časti s cieľom vyhľadať skupiny. Napríklad, ak je hodnota True, reťazec "H hrozno" bude zoskupené s reťazcom "Hrozno". Predvolená hodnota je True.SimilarityColumnName
: Názov stĺpca, ktorý zobrazuje podobnosť medzi vstupnou hodnotou a reprezentatívnou hodnotou pre daný vstup. Predvolená hodnota je null, v takom prípade sa nový stĺpec pre podobnosti nepridá.Threshold
: Číslo medzi 0,00 a 1,00, ktoré určuje skóre podobnosti, pri ktorom sa budú zoskupovať dve hodnoty. Napríklad reťazec "Hrozno" sa zoskupí s názvom "Graes" (chýba písmeno "z") iba v prípade, že je táto možnosť nastavená na hodnotu menšiu ako 0,90. Prahová hodnota 1,00 umožňuje len presné zhody. (Všimnite si, že približná "presná zhoda" môže ignorovať rozdiely, ako je napríklad puzdro, poradie slov a interpunkčné znenie.) Predvolená hodnota je 0,80.TransformationTable
: Tabuľka, ktorá umožňuje zoskupovanie záznamov na základe mapovaní vlastných hodnôt. Mala by obsahovať stĺpce "Od" a "Do". Napríklad reťazec "Hrozno" sa zoskupí s reťazcom "Hrozienka", ak je v transformačnej tabuľke uvedené v stĺpci "Od" hodnota "Hrozno" a v stĺpci "Do" je uvedená hodnota "Hrozienka". Všimnite si, že transformácia sa použije na všetky výskyty textu v tabuľke transformácie. S vyššie uvedenou tabuľkou transformácie sa položka "Hrozno je sladké" zoskupí s reťazcom "Hrozienka sú sladké".
Zoskupte tabuľku pridaním agregovaného stĺpca [Count], ktorý obsahuje počet zamestnancov v každom mieste (each Table.RowCount(_)
).
Použitie
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ýkon
Table.FromRecords({
[Location = "Seattle", Count = 4],
[Location = "Vancouver", Count = 3]
})