Table.FuzzyGroup
Table.FuzzyGroup(table as table, key as any, aggregatedColumns as list, optional options as nullable record) as table
Grupuje wiersze według table
rozmyte dopasowywania wartości w określonej kolumnie , key
dla 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".
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]
})