Table.FuzzyGroup

Syntax

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

Info

Gruppiert die Zeilen von table zeilenweise nach den Werten in der angegebenen Spalte key. Für jede Gruppe wird ein Datensatz erstellt, der die Schlüsselspalten (und deren Werte) zusammen mit allen durch aggregatedColumns angegebenen aggregierten Spalten enthält. Diese Funktion kann nicht garantieren, dass Zeilen in fester Reihenfolge zurückgegeben werden.

Optional können options einbezogen werden, um anzugeben, wie die Schlüsselspalten verglichen werden sollen. Beispiele für Optionen:

  • Culture: Hiermit ist das Gruppieren von Datensätzen basierend auf kulturspezifischen Regeln möglich. Dabei kann es sich um einen beliebigen Kulturnamen handeln. Beispielsweise werden bei der „Culture“-Option „ja-JP“ Datensätze basierend auf der japanischen Kultur gruppiert. Der Standardwert ist "", wodurch basierend auf der englischen Kultur gruppiert wird.
  • IgnoreCase: Dies ist ein logischer Wert (true/false), der das Gruppieren von Schlüsseln ermöglicht, bei denen die Groß- und Kleinschreibung beachtet wird. Bei „true“ wird „Trauben“ beispielsweise mit „trauben“ gruppiert. Der Standardwert ist true.
  • IgnoreSpace: Dies ist ein logischer Wert (true/false), der das Kombinieren von Textteilen ermöglicht, um Gruppen zu suchen. Bei „true“ wird „Trau ben“ beispielsweise mit „Trauben“ gruppiert. Der Standardwert ist true.
  • SimilarityColumnName: Dies ist ein Name für die Spalte, die die Ähnlichkeit zwischen einem Eingabewert und dem repräsentativen Wert für diese Eingabe anzeigt. Der Standardwert ist NULL. In Diesem Fall wird keine neue Spalte für Ähnlichkeiten hinzugefügt.
  • Threshold: Dies ist eine Zahl zwischen 0,00 und 1,00, die den Ähnlichkeitswert angibt, bei dem zwei Werte gruppiert werden. Beispiel: „Trauben“ und „Trauen“ (fehlendes „b“) werden nur dann gruppiert, wenn diese Option auf weniger als 0,90 festgelegt ist. Ein Schwellenwert von 1,00 erlaubt nur exakte Übereinstimmungen. (Beachten Sie, dass Unterschiede in der Groß- und Kleinschreibung, Wortreihenfolge und Interpunktion bei ungenauen „exakten Übereinstimmungen“ ignoriert werden können.) Der Standardwert ist 0,80.
  • TransformationTable: Dies ist eine Tabelle, die das Gruppieren von Datensätzen basierend auf benutzerdefinierten Wertzuordnungen ermöglicht. Dabei sollten die Spalten „From“ und „To“ enthalten sein. Beispiel: „Trauben“ wird mit „Rosinen“ gruppiert, wenn eine Transformationstabelle bereitgestellt wird, in der die Spalte „From“ den Wert „Trauben“ und die Spalte „To“ den Wert „Rosinen“ enthält. Beachten Sie, dass die Transformation auf alle Vorkommen des Texts in der Transformationstabelle angewendet wird. Bei der obigen Transformationstabelle wird „Trauben sind süß“ auch mit „Rosinen sind süß“ gruppiert.

Beispiel 1

Gruppieren Sie die Tabelle, indem Sie eine aggregierte Spalte hinzufügen [Count], die die Anzahl der Mitarbeiter an den einzelnen Standorten enthält (each Table.RowCount(_)).

Verwendung

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

Ausgabe

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