Teilen über


List.Distinct

Syntax

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

Info

Gibt eine Liste zurück, die alle Werte in der angegebenen Liste mit entfernten Duplikaten enthält. Wenn die angegebene Liste leer ist, ist das Ergebnis eine leere Liste.

  • list: Die Liste, aus der unterschiedliche Werte extrahiert werden.
  • equationCriteria: (Optional) Gibt an, wie die Gleichheit beim Vergleichen von Werten bestimmt wird. Dieser Parameter kann eine Schlüsselauswahlfunktion, eine Vergleichsfunktion oder eine Liste sein, die sowohl eine Tastenauswahl als auch einen Vergleichsmodul enthält.

Beispiel 1

Entfernt die Duplikate aus der Liste {1, 1, 2, 3, 3, 3}.

Verwendung

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

Output

{1, 2, 3}

Beispiel 2

Wählen Sie am Ende der Liste die Früchte aus, die eine eindeutige Textlänge aufweisen.

Verwendung

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

Output

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

Beispiel 3

Wählen Sie beginnend am Anfang der Liste die einzigartigen Früchte aus, während der Fall ignoriert wird.

Verwendung

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

Output

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

Beispiel 4

Extrahieren Sie aus einer Liste der Listen die ersten Listen mit eindeutigen Ländernamen, während die Groß-/Kleinschreibung ignoriert wird. Platzieren Sie die extrahierten Listen in den Zeilen einer neuen Tabelle.

Verwendung

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

Output

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

Formelkriterien