Freigeben über


List.PositionOfAny

Syntax

List.PositionOfAny(
    list as list,
    values as list,
    optional occurrence as nullable number,
    optional equationCriteria as any
) as any

Info

Gibt den Offset zurück, bei dem ein Element aus der angegebenen Liste von Werten in einer Liste angezeigt wird. Gibt -1 zurück, wenn kein Vorkommen gefunden wurde.

  • list: Die zu durchsuchende Liste.
  • values: Die Liste der Werte, die in der ursprünglichen Liste gefunden werden sollen.
  • occurrence: (Optional) Das zu meldende Vorkommen. Dieser Wert kann "Occurrence.First", "Occurrence.Last" oder "Occurrence.All" sein. Wenn kein occurrence angegeben ist, wird Occurrence.First verwendet.
  • 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 Schlüsselauswahl als auch eine Vergleichsfunktion enthält.

Beispiel 1

Ermittelt die erste Position in der Liste {1, 2, 3}, an der der Wert 2 oder 3 erscheint.

Verwendung

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

Output

1

Beispiel 2

Suchen Sie die Position in der Liste aller Vorkommen von Daten aus 2022 oder 2023.

Verwendung

let
    Source = {
        #date(2021, 5, 10),
        #date(2022, 6, 28),
        #date(2023, 7, 15),
        #date(2025, 12, 31),
        #date(2022, 4, 8),
        #date(2024, 3, 20)
    },
    YearList = List.Transform(Source, each Date.Year(_)),
    TargetYear = {2022, 2023},
    FindPositions = List.PositionOfAny(YearList, TargetYear, Occurrence.All)
in
    FindPositions

Output

{1, 2, 4}

Beispiel 3

Suchen Sie die Position in der Liste des letzten Vorkommens des Worts Hund oder Katze, wobei der Fall ignoriert wird.

Verwendung

let
    Source = List.PositionOfAny(
        {"dog", "cat", "DOG", "pony", "bat", "rabbit", "dOG"}, 
        {"dog", "cat"}, 
        Occurrence.Last, 
        Comparer.OrdinalIgnoreCase
    )
in
    Source

Output

6

Beispiel 4

Suchen Sie eine beliebige Position in der Liste, die sich innerhalb von zwei Einheiten der Zahl 17 oder 28 befindet.

Verwendung

let
    Source = { 10, 15, 20, 25, 30 },
    Position = List.PositionOfAny(
        Source, 
        {17, 28},
        Occurrence.All, 
        (x, y) => Number.Abs(x - y) <= 2
    )
in
    Position

Output

{1, 4}

Formelkriterien