Thep Excel

List.IsDistinct – ตรวจสอบว่าสมาชิกใน List ไม่ซ้ำกันเลยหรือไม่

List.IsDistinct ตรวจสอบว่า List มีค่าซ้ำหรือไม่ คืนค่า true ถ้าไม่มีตัวซ้ำเลย

=List.IsDistinct(list as list, optional equationCriteria as any) as logical

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
5/10

Difficulty
4/10

Usefulness
5/10

Syntax & Arguments

=List.IsDistinct(list as list, optional equationCriteria as any) as logical

Argument Type Required Default Description
list list Yes List ที่ต้องการตรวจสอบ
equationCriteria any Optional null ตัวเลือกเสริมสำหรับกำหนดเกณฑ์การเปรียบเทียบ (เช่น Comparer.OrdinalIgnoreCase)

How it works

ตรวจสอบคุณภาพข้อมูล (Data Quality)

ใช้ตรวจสอบคอลัมน์ที่ควรจะเป็น Primary Key (ห้ามซ้ำ) ว่ามีค่าซ้ำหลุดมาหรือไม่

Validation ก่อนประมวลผล

ตรวจสอบว่ารายการ Input ไม่มีการป้อนข้อมูลซ้ำก่อนที่จะนำไปคำนวณต่อ

Examples

ตัวอย่างที่ 1: List ที่ไม่มีตัวซ้ำ
List.IsDistinct({1, 2, 3})
สมาชิก 1, 2, 3 ไม่ซ้ำกันเลย จึงคืนค่า true
Power Query Formula:

=List.IsDistinct({1, 2, 3})

Result:

true

ตัวอย่างที่ 2: List ที่มีตัวซ้ำ
List.IsDistinct({1, 2, 3, 3})
มีเลข 3 ซ้ำกัน 2 ตัว จึงคืนค่า false
Power Query Formula:

=List.IsDistinct({1, 2, 3, 3})

Result:

false

ตัวอย่างที่ 3: ตรวจสอบแบบไม่สนใจตัวพิมพ์เล็ก-ใหญ่
List.IsDistinct({"A", "a", "b"}, Comparer.OrdinalIgnoreCase)
ปกติ "A" กับ "a" ถือว่าต่างกัน (Distinct) แต่เมื่อใช้ Comparer.OrdinalIgnoreCase จะถือว่าซ้ำกัน จึงคืนค่า false
Power Query Formula:

=List.IsDistinct({"A", "a", "b"}, Comparer.OrdinalIgnoreCase)

Result:

false

ตัวอย่างที่ 4: ตรวจสอบ List ว่าง
List.IsDistinct({})
List ว่างไม่มีตัวซ้ำ ดังนั้นจึงคืนค่า true (ไม่มีค่าใดที่ซ้ำกัน)
Power Query Formula:

=List.IsDistinct({})

Result:

true

FAQs

List.IsDistinct ต่างจาก List.Distinct อย่างไร?

ผมอธิบายง่ายๆ List.IsDistinct คืนค่า True/False (เพื่อตรวจสอบ) ส่วน List.Distinct คืนค่าเป็น List ใหม่ที่ตัดตัวซ้ำออกแล้ว (เพื่อจัดการข้อมูล) ผมใช้ IsDistinct เมื่อต้องการแค่ตรวจสอบ

ใช้กับค่า Null หรือค่าว่างได้ไหม?

ได้ ผม List.IsDistinct({1, null, null}) ก็คืนค่า false เพราะ null ถือว่าเป็นค่าซ้ำกัน Null ที่ซ้ำกันถือเป็นการไม่ Distinct

ใช้กับ List ของ Record ได้ไหม?

ได้ แต่ผมแนะนำให้ใช้ equationCriteria เพื่อกำหนดว่าจะเปรียบเทียบ Field ไหนของ Record ถ้าไม่ระบุมันจะเปรียบเทียบ Record ทั้งหมด

Resources & Related

Additional Notes

List.IsDistinct ตรวจสอบว่าสมาชิกทั้งหมดใน List แตกต่างกัน (ไม่ซ้ำกัน) หากไม่มีตัวซ้ำเลยจะคืนค่า true แต่มีตัวซ้ำแม้แต่ 1 คู่ก็จะคืนค่า false ฟังก์ชันนี้ยังรองรับการเปรียบเทียบแบบกำหนดเองได้ผ่านตัวเลือก equationCriteria

ที่เจ๋งคือ ผมใช้มันเพื่อตรวจสอบคุณภาพข้อมูลก่อนการประมวลผลต่อไป เช่นตรวจสอบว่า ID ในตารางซ้ำหรือไม่ มันตรงไปตรงมากว่า true/false จึงดีกว่าการนับจำนวนรายการ

ส่วนตัวผม ผมชอบใช้ List.IsDistinct ร่วมกับ Comparer.OrdinalIgnoreCase เวลาทำงานกับข้อมูลที่มีตัวพิมพ์ผสมกัน เป็นวิธีที่ลึกลับแต่มีประสิทธิภาพ 😎

Leave a Reply

Your email address will not be published. Required fields are marked *