Del via


List.PositionOfAny

Syntaks

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

Om

Returnerer den forskydning, hvormed et element fra den angivne liste over værdier vises på en liste. Returnerer -1, hvis der ikke findes nogen forekomst.

  • list: Listen, der skal søges i.
  • values: Listen over værdier, der skal findes på den oprindelige liste.
  • occurrence: (Valgfrit) Den specifikke hændelse, der skal rapporteres. Denne værdi kan være Forekomst.Først, Forekomst.Sidst eller Forekomst.Alle. Hvis nej occurrence er angivet, Occurrence.First bruges.
  • equationCriteria: (Valgfrit) Angiver, hvordan lighed bestemmes ved sammenligning af værdier. Denne parameter kan være en nøglevælgerfunktion, en sammenligningsfunktion eller en liste, der indeholder både en nøglevælger og en sammenligning.

Eksempel 1

Find den første placering på listen {1, 2, 3}, hvor værdien 2 eller 3 vises.

Brug

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

Output

1

Eksempel 2

Find positionen i listen over alle forekomster af datoer fra enten 2022 eller 2023.

Brug

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}

Eksempel 3

Find positionen på listen over den sidste forekomst af enten ordet hund eller kat, og ignorer store og små bogstaver.

Brug

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

Output

6

Eksempel 4

Find en position på listen, der er inden for to enheder af enten tallet 17 eller 28.

Brug

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}

Kriterier for ligning