Table.FuzzyGroup
Sintassi
Table.FuzzyGroup(table as table, key as any, aggregatedColumns as list, optional options as nullable record) as table
Informazioni su
Raggruppa le righe di table
tramite corrispondenza fuzzy dei valori nella colonna specificata key
, per ogni riga. Per ogni gruppo, viene creato un record contenente le colonne chiave, e i relativi valori, insieme a tutte le colonne aggregate specificate da aggregatedColumns
. Questa funzione potrebbe non può restituire un ordine di righe fisso.
È possibile includere un set facoltativo di options
per specificare la modalità di confronto delle colonne chiave. Le opzioni includono:
-
Culture
: consente di raggruppare i record in base a regole specifiche delle impostazioni cultura. Può essere qualsiasi nome di impostazioni cultura valido. Ad esempio, con l'opzione Culture "ja-JP" i record vengono raggruppati in base alle impostazioni cultura Giapponese. Il valore predefinito è "", che esegue il raggruppamento in base alle impostazioni cultura Inglese invariante. -
IgnoreCase
: valore logico (true/false) che consente il raggruppamento di chiavi senza distinzione tra maiuscole e minuscole. Ad esempio, se true, "Uva" viene raggruppato con "uva". Il valore predefinito è true. -
IgnoreSpace
: valore logico (true/false) che consente la combinazione di parti di testo per trovare i gruppi. Ad esempio, se true, "U va" viene raggruppato con "Uva". Il valore predefinito è true. -
SimilarityColumnName
: nome della colonna che mostra la somiglianza tra un valore di input e il valore rappresentativo per tale input. Il valore predefinito è Null, nel qual caso non verrà aggiunta una nuova colonna per le somiglianze. -
Threshold
: numero compreso tra 0,00 e 1,00 che specifica il punteggio di somiglianza in corrispondenza del quale verranno raggruppati due valori. Ad esempio, "Uva" e "Uv" (senza la "a") vengono raggruppati solo se questa opzione è impostata su meno di 0,90. Una soglia di 1,00 consente solo corrispondenze esatte. Si noti che una "corrispondenza esatta" fuzzy potrebbe ignorare le differenze, ad esempio maiuscole e minuscole, ordine delle parole e punteggiatura. Il valore predefinito è 0,80. -
TransformationTable
: tabella che consente il raggruppamento di record in base ai mapping di valori personalizzati. Deve contenere le colonne "From" e "To". Ad esempio, "Uva" viene raggruppato con "Uva passa" se si specifica una tabella di trasformazione in cui la colonna "From" contiene "Uva" e la colonna "To" contiene "Uva passa". Si noti che la trasformazione verrà applicata a tutte le occorrenze del testo nella tabella di trasformazione. Con la tabella di trasformazione precedente, "Uva è dolce" sarà raggruppato anche con "Uva passa è dolce".
Esempio 1
Raggruppare la tabella aggiungendo una colonna aggregata [Count] contenente il numero di dipendenti in ogni sede (each Table.RowCount(_)
).
Utilizzo
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]
})