List.AnyTrue คืนค่า true หากมีเงื่อนไขอย่างน้อยหนึ่งข้อใน List เป็นจริง
=List.AnyTrue(list as list) as logical
=List.AnyTrue(list as list) as logical
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| list | list | Yes | List ของค่าตรรกะ (logical values) หรือการแสดงออกที่คืนค่าเป็น true/false |
ใช้ตรวจสอบว่ามี Error หรือค่าผิดปกติเกิดขึ้นในรายการใดรายการหนึ่งหรือไม่ (เช่น มีสินค้าใดสินค้าหนึ่งหมดสต็อกหรือไม่)
แทนการเขียน if condition1 or condition2 or condition3… สามารถรวมเงื่อนไขเป็น List แล้วใช้ List.AnyTrue แทนได้
List.AnyTrue({true, false, 2 > 0})=List.AnyTrue({true, false, 2 > 0})
true
List.AnyTrue({2 = 0, false, 2 < 0})=List.AnyTrue({2 = 0, false, 2 < 0})
false
List.AnyTrue({})=List.AnyTrue({})
false
ผมอธิบายให้ชัด ๆ นะ List.AnyTrue ใช้เงื่อนไข OR (ขอแค่ 1 ตัวจริงก็พอ) ส่วน List.AllTrue ใช้เงื่อนไข AND (ต้องจริงทุกตัว) ตัวอย่าง: List.AnyTrue({false, false, true}) = true แต่ List.AllTrue({false, false, true}) = false
ผมได้ลองแล้ว List.AnyTrue({}) คืนค่า false เพราะ ‘ไม่มีสมาชิกจริง’ ส่วน List.AllTrue({}) คืนค่า true นี่เรียกว่า vacuous truth ทางคณิตศาสตร์
ผมแนะนำให้ใช้กับค่าตรรกะและการเปรียบเทียบค่า เช่น {2>0, 3<5, text="ABC"} ฟังก์ชันนี้คาดหวังว่าข้อมูลจะ evaluate ได้เป็น true/false
ฟังก์ชัน List.AnyTrue ใช้ตรวจสอบว่ามีสมาชิกอย่างน้อยหนึ่งตัวใน List ที่มีค่าเป็น true หรือไม่ ถ้ามีจะคืนค่า true ทันที แต่ถ้าสมาชิกทุกตัวเป็น false หรือ List ว่างเปล่า จะคืนค่า false นี่คือการใช้เงื่อนไข OR ในหลายเงื่อนไขพร้อมกัน
ที่เจ๋งคือว่า List.AnyTrue มีประสิทธิภาพดี เพราะมันจะหยุดการตรวจสอบทันทีที่พบค่า true ตัวแรก ไม่ต้องตรวจสอบสมาชิกที่เหลือทั้งหมด ต่างจาก List.AllTrue ที่ต้องตรวจสอบทุกตัวเลย
ส่วนตัวผม ผมชอบใช้ฟังก์ชันนี้กับการตรวจสอบคุณภาพข้อมูล เช่น ตรวจว่ามีบันทึกใด ๆ ที่มีข้อมูลที่ขาดหายไปหรือค่าผิดปกติ แค่มีหนึ่งอันก็แจ้งเตือนได้เลย 😎