Zdieľať cez


Table.FuzzyGroup

Syntax

Table.FuzzyGroup(table as table, key as any, aggregatedColumns as list, optional options as nullable record) as table

O

Zoskupí riadky table podľa približných zhôd s hodnotami v zadanom stĺpci keypre 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 aggregatedColumns. Táto funkcia nemôže zaručiť, že dôjde k vráteniu pevného poradia riadkov.

Možno zahrnúť voliteľnú množinu options na určenie spôsobu porovnania kľúčových stĺpcov. 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 textom "ja-JP" zoskupuje 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 bez rozlišovania 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 pre dve hodnoty budú zoskupené. 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é".

Príklad č. 1

Zoskupte tabuľku pridaním agregovaného stĺpca [Count], ktorý obsahuje počet zamestnancov v každom mieste (each Table.RowCount(_)).

používania

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ýstupu

Table.FromRecords({
    [Location = "Seattle", Count = 4],
    [Location = "Vancouver", Count = 3]
})