Table.FuzzyGroup
Table.FuzzyGroup(table as table, key as any, aggregatedColumns as list, optional options as nullable record) as table
Agrupa as linhas de table
pelos valores com correspondência difusa na coluna especificada, key
, para cada linha. Para cada grupo, é construído um registro contendo as colunas de chave (e seus valores) com as colunas agregadas especificadas por aggregatedColumns
. Essa função não pode garantir o retorno de uma ordem fixa de linhas.
Um conjunto opcional de options
pode ser incluído para especificar como comparar as colunas de chave. As opções incluem:
Culture
: permite agrupar registros com base em regras específicas da cultura. Pode ser qualquer nome de cultura válido. Por exemplo, a opção de Culture "ja-JP" agrupa registros com base no idioma japonês. O valor padrão é "", que faz o agrupamento com base na cultura inglês invariável.IgnoreCase
: um valor lógico (true/false) que permite fazer o agrupamento de chaves sem diferenciar maiúsculas de minúsculas. Por exemplo, quando true, "Grapes" é agrupado com "grapes". O valor padrão é true.IgnoreSpace
: um valor lógico (true/false) que permite a combinação de partes de textos a fim de localizar grupos. Por exemplo, quando true, "Gra pes" é agrupado com "Grapes". O valor padrão é true.SimilarityColumnName
: um nome para a coluna que mostra a similaridade entre um valor de entrada e o valor representativo dessa entrada. O valor padrão é nulo e, nesse caso, não será adicionada uma nova coluna de similaridades.Threshold
: um número entre 0.00 e 1.00 que especifica a pontuação de similaridade com a qual dois valores serão agrupados. Por exemplo, "Grapes" e "Graes" (sem o "p") serão agrupados somente se essa opção estiver configurada como inferior a 0,90. Um limite de 1,00 só permite correspondências exatas. (Observe que uma "correspondência exata" difusa pode ignorar diferenças como maiúsculas, ordem de palavras e pontuação.) O valor padrão é 0,80.TransformationTable
: uma tabela que permite agrupar registros com base em mapeamentos de valor personalizados. Deve conter as colunas "From" e "To". Por exemplo, "Grapes" será agrupado com "Raisins" se for fornecida uma tabela de transformação com a coluna "From" contendo "Grapes" e a coluna "To" contendo "Raisins". Observe que a transformação será aplicada a todas as ocorrências do texto na tabela de transformação. Com a tabela de transformação acima, a frase "Grapes are sweet" também será agrupada com a frase "Raisins are sweet".
Agrupe a tabela adicionando uma coluna de agregação [Count] que contém o número de funcionários em cada local (each Table.RowCount(_)
).
Usage
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]
)
Saída
Table.FromRecords({
[Location = "Seattle", Count = 4],
[Location = "Vancouver", Count = 3]
})