Table.FuzzyGroup

Sintaxis

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

Acerca de

Agrupa las filas de table estableciendo la coincidencia parcial de los valores en la columna especificada, key, para cada fila. Para cada grupo, se crea un registro que contiene las columnas de clave (y sus valores) y cualquier columna agregada especificada mediante aggregatedColumns. Esta función no puede garantizar que se devuelva un orden fijo de filas.

Se puede incluir un conjunto opcional de options para especificar cómo se compararán las columnas de clave. Las opciones son:

  • Culture: permite agrupar registros a partir de reglas específicas de la referencia cultural. Puede ser cualquier nombre de referencia cultural válido. Por ejemplo, la opción "ja-JP" del valor Culture agrupa los registros con base en la referencia cultural japonesa. El valor predeterminado es "", que realiza la agrupación con base en la referencia cultural inglesa invariable.
  • IgnoreCase: valor lógico ("true" o "false") que permite la agrupación de claves sin distinción entre mayúsculas y minúsculas. Por ejemplo, si es "true", "Uvas" se agrupa con "uvas". El valor predeterminado es true.
  • IgnoreSpace: valor lógico ("true" o "false") que permite combinar elementos de texto para buscar agrupaciones. Por ejemplo, si es "true", "Uv as" se agrupa con "uvas". El valor predeterminado es true.
  • SimilarityColumnName: nombre de la columna que muestra la similitud entre un valor de entrada y el valor representante de esa entrada. El valor predeterminado es NULL, en cuyo caso no se agregará una columna nueva para similitudes.
  • Threshold: número comprendido entre 0,00 y 1,00 que especifica la puntuación de similitud en la que se agruparán dos valores. Por ejemplo, "Uvas" y "Uas" (sin la "v") solo coincidirán si esta opción se establece con un valor inferior a 0,90. Un umbral de 1,00 solo permite coincidencias exactas. (Tenga en cuenta que una "coincidencia exacta" aproximada podría omitir diferencias como mayúsculas y minúsculas, el orden de palabras y los signos de puntuación). El valor predeterminado es 0,80.
  • TransformationTable: tabla que permite agrupar registros con base en asignaciones de valores personalizadas. Debe incluir las columnas "From" y "To". Por ejemplo, "Uvas" se agrupa con "Pasas" si se proporciona una tabla de transformación en la que la columna "From" contiene "Uvas" y la columna "To" contiene "Pasas". Tenga en cuenta que la transformación se aplicará a todas las repeticiones del texto en la tabla de transformación. Con la tabla de transformación anterior, "las uvas son dulces" también se agrupará con "las pasas son dulces".

Ejemplo 1

Para agrupar la tabla, agregue una columna agregada [Count] que contenga el número de empleados de cada ubicación (each Table.RowCount(_)).

Uso

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

Salida

Table.FromRecords({
    [Location = "Seattle", Count = 4],
    [Location = "Vancouver", Count = 3]
})