List.Contains จะคืนค่า true หาก value ที่กำหนดเป็นสมาชิกของ List และคืนค่า false หากไม่พบ สามารถระบุ Comparer เพื่อกำหนดว่าจะให้ตรวจสอบแบบ Case Sensitive หรือ Case Insensitive ได้
=List.Contains(list as list, value as any, optional comparer as nullable function) as logical
=List.Contains(list as list, value as any, optional comparer as nullable function) as logical
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| list | list | Yes | List ที่ต้องการค้นหา | |
| value | any | Yes | ค่าที่ต้องการค้นหาใน List | |
| comparer | function | Optional | Comparer.Ordinal | ฟังก์ชัน Comparer สำหรับกำหนดวิธีการเปรียบเทียบ |
เช็คว่าชื่อผู้ใช้อยู่ใน List ของผู้ดูแลระบบหรือไม่
ใช้เพื่อกรองข้อมูลในตาราง ให้เหลือเฉพาะรายการที่อยู่ใน List ของค่าที่ยอมรับ
List.Contains({"apple", "banana", "cherry"}, "banana")=List.Contains({"apple", "banana", "cherry"}, "banana")
true
List.Contains({"apple", "banana"}, "orange")=List.Contains({"apple", "banana"}, "orange")
false
List.Contains({"Apple", "Banana"}, "apple", Comparer.OrdinalIgnoreCase)=List.Contains({"Apple", "Banana"}, "apple", Comparer.OrdinalIgnoreCase)
true
let Numbers = {10, 20, 30, 40, 50}, Check = List.Contains(Numbers, 30) in Checklet
Numbers = {10, 20, 30, 40, 50},
Check = List.Contains(Numbers, 30)
in
Check
true
List.Contains ตรวจสอบว่ามีสมาชิกที่ ‘ตรงกันเป๊ะ’ หรือไม่ ส่วน List.FindText ตรวจสอบว่ามีสมาชิกที่ ‘มีข้อความย่อย’ ที่กำหนดอยู่หรือไม่ เจอบ่อยครั้งที่คนสับสนครับ 😅
ปัญหานี้เกิดจาก Data Type ไม่ตรงกันบ่อยครั้งครับ เช่น ค้นหา 30 (Number) แต่ List มี “30” (Text) ลองใช้ Comparer.Ordinal หรือแปลง Data Type ให้เหมือนกันก่อนนะ
ฟังก์ชัน List.Contains ใน Power Query ใช้สำหรับตรวจสอบว่า List มีสมาชิกที่ตรงกับค่าที่ต้องการค้นหาอยู่ภายในหรือไม่ โดยจะคืนค่า true หากพบ และ false หากไม่พบ
ที่เจ๋งคือ List.Contains ทำงานได้เร็วแม้กับ List ที่มีจำนวนสมาชิกมากๆ ก็ตาม นอกจากนี้ยังสามารถระบุ Comparer เพื่อกำหนดว่าการตรวจสอบจะเป็น Case Sensitive หรือ Case Insensitive ได้อีกด้วย
ส่วนตัวผมใช้ฟังก์ชันนี้บ่อยมากเวลาต้อง Filter ข้อมูลโดยดูจากค่าที่อยู่ใน List ที่สร้างมาก่อนหน้า มันช่วยให้โค้ดสะอาดและเข้าใจง่ายขึ้นเยอะครับ 😎