List.Distinct

语法

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

关于

返回一个列表,其中包含指定列表中已删除重复项的所有值。 如果指定列表为空,则结果为空列表。

  • list:从中提取唯一值的列表。
  • equationCriteria:(可选) 指定比较值时如何确定相等性。 此参数可以是键选择器函数、比较器函数或包含键选择器和比较器的列表。

示例 1

从列表 {1, 1, 2, 3, 3, 3} 中删除重复项。

使用情况

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

输出

{1, 2, 3}

示例 2

从列表末尾开始,选择具有唯一文本长度的水果。

使用情况

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

输出

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

示例 3

从列表的开头开始,选择唯一的水果,同时忽略大小写。

使用情况

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

输出

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

示例 4

从列表中提取在忽略大小写时具有唯一国家/地区名称的第一个列表的列表。 将提取的列表放置在新表的行中。

使用情况

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

输出

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

公式条件