Compartir vía


List.Distinct

Sintaxis

List.Distinct(list as list, optional equationCriteria as any) as list

Acerca de

Devuelve una lista que contiene todos los valores de la lista especificada con duplicados quitados. Si la lista especificada está vacía, el resultado es una lista vacía.

  • list: lista a partir de la cual se extraen valores distintos.
  • equationCriteria: (Opcional) Especifica cómo se determina la igualdad al comparar valores. Este parámetro puede ser una función selectora de claves, una función de comparador o una lista que contenga un selector de claves y un comparador.

Ejemplo 1

Quitar los duplicados de la lista {1, 1, 2, 3, 3, 3}.

Uso

List.Distinct({1, 1, 2, 3, 3, 3})

Salida

{1, 2, 3}

Ejemplo 2

A partir del final de la lista, seleccione las frutas que tienen una longitud de texto única.

Uso

let
    Source = {"Apple", "Banana", "Cherry", "Date", "Fig"},
    Result = List.Distinct(List.Reverse(Source), each Text.Length(_))
in
    Result

Salida

{"Fig", "Date", "Cherry", "Apple"}

Ejemplo 3

A partir del principio de la lista, seleccione las frutas únicas al ignorar mayúsculas y minúsculas.

Uso

let
    Source = {"apple", "Pear", "aPPle", "banana", "ORANGE", "pear", "Banana", "Cherry"},
    Result = List.Distinct(Source, Comparer.OrdinalIgnoreCase)
in
    Result

Salida

{"apple", "Pear", "banana", "ORANGE", "Cherry"}

Ejemplo 4

Extraiga de una lista de listas las primeras listas con nombres de país únicos al omitir mayúsculas y minúsculas. Coloque las listas extraídas en las filas de una nueva tabla.

Uso

let
    Source = {
        {"USA", #date(2023, 8, 1), 567},
        {"canada", #date(2023, 8, 1), 254},
        {"Usa", #date(2023, 7, 1), 450},
        {"CANADA", #date(2023, 6, 1), 357},
        {"Panama", #date(2023, 6, 2), 20},
        {"panama", #date(2023, 7, 1), 40}
    },
    DistinctByCountry = List.Distinct(
        Source,
        {each _{0}, Comparer.OrdinalIgnoreCase}
    ),
    ToTable = Table.FromRows(DistinctByCountry, {"Country", "Date", "Value"}),
    ChangeTypes = Table.TransformColumnTypes(
        ToTable, {{"Country", type text}, {"Date", type date}, {"Value", Int64.Type}}
    )
in
    ChangeTypes

Salida

#table(type table[Country = text, Date = date, Value = Int64.Type],
    {
        {"USA", #date(2023, 8, 1), 567},
        {"canada", #date(2023, 8, 1), 254},
        {"Panama", #date(2023, 6, 2), 20}
    }
)

Criterios de ecuación