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