List.Distinct

Sintaxis

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

Acerca de

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

  • list: lista original de la que se extraen los 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