Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Table.FuzzyGroup

Składnia

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

Informacje

Grupuje wiersze według table rozmyte dopasowywania wartości w określonej kolumnie , keydla każdego wiersza. Dla każdej grupy tworzony jest rekord zawierający kolumny klucza (i ich wartości) wraz z wszystkimi zagregowanymi kolumnami określonymi przez aggregatedColumns. Ta funkcja nie może zagwarantować zwrócenia stałej kolejności wierszy.

Opcjonalny zestaw options może zostać uwzględniony w celu określenia sposobu porównywania kolumn kluczy. Dostępne opcje:

  • Culture: umożliwia grupowanie rekordów na podstawie reguł specyficznych dla kultury. Może to być dowolna prawidłowa nazwa kultury. Na przykład opcja Culture "ja-JP" grupuje rekordy na podstawie kultury japońskiej. Wartość domyślna to "", która grupuje się na podstawie niezmiennej kultury języka angielskiego.
  • IgnoreCase: wartość logiczna (prawda/fałsz), która umożliwia grupowanie kluczy bez uwzględniania wielkości liter. Na przykład, gdy wartość true, "Winogrona" jest grupowana z "winogronami". Wartość domyślna to true.
  • IgnoreSpace: wartość logiczna (prawda/fałsz), która umożliwia łączenie części tekstowych w celu znalezienia grup. Na przykład, gdy wartość true, "Gra pes" jest grupowana z "Winogronami". Wartość domyślna to true.
  • SimilarityColumnName: nazwa kolumny, która pokazuje podobieństwo między wartością wejściową a reprezentatywną wartością dla tych danych wejściowych. Wartość domyślna to null, w tym przypadku nowa kolumna podobieństwa nie zostanie dodana.
  • Threshold: Liczba z zakresu od 0,00 do 1,00 określająca wynik podobieństwa, w którym zostaną zgrupowane dwie wartości. Na przykład "Winogrona" i "Graes" (brak "p") są grupowane razem tylko wtedy, gdy ta opcja jest ustawiona na mniejszą niż 0,90. Próg 1,00 zezwala tylko na dokładne dopasowania. (Należy pamiętać, że rozmyte "dokładne dopasowanie" może ignorować różnice, takie jak wielkość liter, kolejność wyrazów i interpunkcja). Wartość domyślna to 0,80.
  • TransformationTable: tabela umożliwiająca grupowanie rekordów na podstawie mapowań wartości niestandardowych. Powinna zawierać kolumny "From" i "To". Na przykład wyrażenie "Owoce" jest grupowane z wartością "Raisins", jeśli tabela przekształceń jest dostarczana z kolumną "From" zawierającą "Winogrona" i kolumnę "Do" zawierającą "Rodzynki". Należy pamiętać, że przekształcenie zostanie zastosowane do wszystkich wystąpień tekstu w tabeli przekształceń. Po powyższej tabeli transformacji "Winogrona są słodkie" będą również zgrupowane z "Rodzynki są słodkie".

Przykład 1

Grupuj tabelę, dodając kolumnę agregacji [Count], która zawiera liczbę pracowników w każdej lokalizacji (each Table.RowCount(_)).

Użycie

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

Wyjście

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