Condividi tramite


Table.FuzzyGroup

Sintassi

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

Informazioni

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 non può garantire di restituire un ordine fisso delle righe.

È 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 della cultura. Può essere qualsiasi nome cultura valido. Ad esempio, con l'opzione cultura "ja-JP" i record vengono raggruppati in base alla cultura giapponese. Il valore predefinito è "", che esegue il raggruppamento in base alla cultura invariata inglese.
  • IgnoreCase: valore logico (true/false) che consente il raggruppamento di chiavi senza distinzione tra maiuscole e minuscole. Ad esempio, quando è vero, "Uva" viene raggruppata 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, quando è vero, "Uva" 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 "Ua" (manca la "v") vengono raggruppati solo se questa opzione è impostata su meno di 0,90. Una soglia di 1,00 permette 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 raggruppata con "Uvetta" se si specifica una tabella di trasformazione in cui la colonna "From" contiene "Uva" e la colonna "To" contiene "Uvetta". 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]
})