Freigeben über


List.PositionOf

Syntax

List.PositionOf(
    list as list,
    value as any,
    optional occurrence as nullable number,
    optional equationCriteria as any
) as any

Info

Gibt den Offset zurück, bei dem der angegebene Wert in einer Liste angezeigt wird. Gibt -1 zurück, wenn der Wert nicht vorkommt.

  • list: Die zu durchsuchende Liste.
  • value: Der Wert, der in der Liste gefunden werden soll.
  • 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 Tastenauswahl als auch einen Vergleichsmodul enthält.

Beispiel 1

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

Verwendung

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

Output

2

Beispiel 2

Suchen Sie die Position in der Liste aller Instanzen von Datumsangaben ab 2022.

Verwendung

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

Output

{1, 3, 4}

Beispiel 3

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

Verwendung

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

Output

6

Beispiel 4

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

Verwendung

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

Output

4

Formelkriterien