แชร์ผ่าน


List.PositionOfAny

ไวยากรณ์

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

เกี่ยวกับ

ส่งกลับค่าออฟเซ็ตที่รายการจากรายการค่าที่ระบุปรากฏในรายการ ให้ผลลัพธ์เป็น -1 ถ้าไม่พบการปราศรัย

  • list: รายการที่จะค้นหา
  • values: รายการค่าที่จะค้นหาในรายการเดิม
  • occurrence: (ไม่บังคับ) เหตุการณ์เฉพาะที่จะรายงาน ค่านี้อาจเป็น Occurrence.First, Occurrence.Last หรือ Occurrence.All ถ้าไม่ได้occurrenceระบุ จะใช้ Occurrence.First
  • equationCriteria: (ไม่บังคับ) ระบุวิธีการกําหนดความเท่าเทียมกันเมื่อเปรียบเทียบค่า พารามิเตอร์นี้อาจเป็นฟังก์ชันตัวเลือกคีย์ ฟังก์ชันตัวเปรียบเทียบ หรือรายการที่มีทั้งตัวเลือกคีย์และตัวเปรียบเทียบ

ตัวอย่าง 1

ค้นหาตําแหน่งแรกในรายการ {1, 2, 3} ที่ค่า 2 หรือ 3 ปรากฏอยู่

การใช้งาน

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

เอาท์พุท

1

ตัวอย่างที่ 2

ค้นหาตําแหน่งในรายการอินสแตนซ์ทั้งหมดของวันที่ตั้งแต่ปี 2022 หรือ 2023

การใช้งาน

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

เอาท์พุท

{1, 2, 4}

ตัวอย่างที่ 3

ค้นหาตําแหน่งในรายการการเกิดขึ้นครั้งสุดท้ายของคําว่าสุนัขหรือแมวโดยไม่สนใจกรณี

การใช้งาน

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

เอาท์พุท

6

ตัวอย่างที่ 4

ค้นหาตําแหน่งใดๆ ในรายการที่อยู่ภายในสองหน่วยของหมายเลข 17 หรือ 28

การใช้งาน

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

เอาท์พุท

{1, 4}

เกณฑ์สมการ