Læs på engelsk

Del via


Table.FuzzyGroup

Syntaks

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

Om

Grupperer rækkerne i table efter fuzzily matchende værdier i den angivne kolonne, , keyfor hver række. For hver gruppe oprettes en post, der indeholder nøglekolonnerne (og deres værdier) sammen med alle aggregerede kolonner, der er angivet af aggregatedColumns. Denne funktion kan ikke garantere, at der returneres en fast rækkerækkefølge.

Der kan inkluderes et valgfrit sæt for options at angive, hvordan nøglekolonnerne skal sammenlignes. Der findes følgende valgmuligheder:

  • Culture: Tillader gruppering af poster baseret på kulturspecifikke regler. Det kan være et vilkårligt gyldigt kulturnavn. En kulturindstilling med "ja-JP" grupperer f.eks. poster baseret på den japanske kultur. Standardværdien er "", som grupperer baseret på den invariante engelske kultur.
  • IgnoreCase: En logisk værdi (true/false), der tillader nøglegruppering, hvor der ikke skelnes mellem store og små bogstaver. Når true f.eks. er "Druer" grupperet med "druer". Standardværdien er true.
  • IgnoreSpace: En logisk værdi (true/false), der gør det muligt at kombinere tekstdele for at finde grupper. Når sand er "Gra pes" f.eks. grupperet med "Druer". Standardværdien er true.
  • SimilarityColumnName: Et navn på den kolonne, der viser ligheden mellem en inputværdi og den repræsentative værdi for det pågældende input. Standardværdien er null, og i så fald tilføjes der ikke en ny kolonne for ligheder.
  • Threshold: Et tal mellem 0,00 og 1,00, der angiver den lighedsscore, hvor to værdier grupperes. "Druer" og "Graes" (mangler "p") grupperes f.eks. kun, hvis denne indstilling er angivet til mindre end 0,90. En grænse på 1,00 tillader kun nøjagtige match. Bemærk, at et fuzzy "nøjagtigt match" kan ignorere forskelle, f.eks. kasse, ordrækkefølge og tegnsætning. Standardværdien er 0,80.
  • TransformationTable: En tabel, der tillader gruppering af poster baseret på brugerdefinerede værditilknytninger. Den skal indeholde kolonnerne "Fra" og "Til". "Druer" er f.eks. grupperet med "Rosiner", hvis der er angivet en transformationstabel med kolonnen "Fra", der indeholder "Druer" og kolonnen "Til", der indeholder "Rosiner". Bemærk, at transformationen anvendes på alle forekomster af teksten i transformationstabellen. Med ovenstående transformationstabel grupperes "Druer er søde" også med "Rosiner er søde".

Eksempel 1

Gruppér tabellen ved at tilføje en aggregeringskolonne [Count], der indeholder antallet af medarbejdere på hver placering (each Table.RowCount(_)).

Brug

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]
)

Output

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