List.Distinct จะคืน List ใหม่ที่ไม่มีค่าซ้ำกัน โดยเก็บสมาชิกตัวแรกที่พบไว้ และทิ้งตัวที่ซ้ำกันทิ้งไป สามารถกำหนด Comparer เพื่อใช้ Logic การเปรียบเทียบที่แตกต่างกันได้ เช่น ไม่สนใจตัวพิมพ์เล็ก/ใหญ่
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| list | list | List ที่ต้องการลบค่าซ้ำ | |
| [equationCriteria]ไม่บังคับ | function or list | Comparer.Ordinal (Case Sensitive) | กำหนดวิธีเปรียบเทียบ สามารถใช้ Comparer (เช่น Comparer.OrdinalIgnoreCase) หรือ Key Selector function ได้ |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
ฟังก์ชัน List.Distinct ใน Power Query ใช้สำหรับลบค่าที่ซ้ำกันทั้งหมดออกจาก List โดยจะคืน List ใหม่ที่มีเฉพาะค่าที่ไม่ซ้ำกัน (Unique Values).
ส่วนตัวผม List.Distinct นี่เป็นเครื่องมือสำคัญเวลาต้องทำ Data Cleanup ครับ เช่น ดึงรายการสินค้า Category ที่ไม่ซ้ำกันจากตารางใหญ่ๆ หรือสร้าง Dropdown List ของเมืองต่างๆ ที่ไม่ซ้ำ
เจ๋งที่สุดของ List.Distinct คือสามารถกำหนดวิธีเปรียบเทียบโดยใช้ Comparer ได้ครับ ตัวอย่างเช่น ถ้าใช้ Comparer.OrdinalIgnoreCase มันจะถือว่า “APPLE” กับ “apple” เป็นค่าเดียวกัน ตัวแรกที่มาจะเก็บไว้
ดึงรายชื่อลูกค้า หรือรายชื่อสินค้าที่ไม่ซ้ำกันจากฐานข้อมูลขนาดใหญ่
ใช้เป็น Source สำหรับ Filter หรือ Parameter ที่ต้องการ List ตัวเลือกที่ไม่ซ้ำ
ลบค่าที่ซ้ำซ้อนออก เพื่อเตรียมข้อมูลสำหรับการวิเคราะห์
ตัวเลขที่ซ้ำกันถูกลบออก เหลือแต่ค่าที่ไม่ซ้ำ โดยเก็บตัวแรกที่พบไว้
เนื่องจากค่าเริ่มต้นเป็น Case Sensitive "Apple" ไม่เท่ากับ "apple" จึงถือว่าเป็นคนละค่า
ใช้ Comparer.OrdinalIgnoreCase เพื่อไม่สนใจตัวพิมพ์เล็ก/ใหญ่ ทำให้ "Apple" และ "apple" ถือเป็นค่าเดียวกัน เก็บตัวแรก
ดึงค่าจากคอลัมน์ City แล้วลบซ้ำออก เหลือเมืองที่ไม่ซ้ำกันเพื่อใช้เป็น Dropdown หรือ List สำหรับ Vlookup
ลบค่าซ้ำตามความยาว ถ้าคำว่า "Pear" (4 ตัว) และ "Apple" (5 ตัว) มีความยาวต่างกัน ก็เก็บทั้งสองตัว แต่ "Fig" (3 ตัว) และ "Pear" (4 ตัว) ต่างกัน เลยเก็บไว้
เก็บตัวแรกที่พบในลำดับเดิม ส่วนตัวที่ซ้ำหลังจากนั้นจะถูกทิ้ง
List.Union ใช้รวม 2 List และลบซ้ำ ส่วน List.Distinct ใช้ลบซ้ำจาก List เดียว นอกจากนี้ List.Union ไม่รับประกันลำดับ แต่ List.Distinct เก็บลำดับเดิม
ไม่ได้โดยตรง แต่สามารถประมวลผล Table ก่อน ถ้าต้องการลบซ้ำตามหลายคอลัมน์ให้ใช้ Table.Distinct แทน
List.Distinct ลบค่าซ้ำ ส่วน List.Select ใช้กรองข้อมูลตามเงื่อนไข (เช่น เลือกเฉพาะค่าที่มากกว่า 10)
Comparer.Ordinal (Case Sensitive, ค่าเริ่มต้น) และ Comparer.OrdinalIgnoreCase (ไม่สนใจตัวพิมพ์) ส่วนใหญ่ใช้แค่สองตัวนี้
ฟังก์ชันที่ผู้เขียนโยงไว้กับ List.Distinct จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
List.IsDistinct ตรวจสอบว่า List มีค่าซ้ำหรือไม่ คืนค่า true ถ้าไม่มีตัวซ้ำเลย
List.RemoveItems จะคืน List ใหม่ที่ไม่มีสมาชิกที่ตรงกับสมาชิกใน removeItems List โดยการเปรียบเทียบจะเป็นแบบ Case Sensitive และตรงกันทุกประการ (Ordinal Comparison)
List.RemoveMatchingItems จะคืน List ใหม่ที่ไม่มีสมาชิกที่ตรงกับสมาชิกใน removeItems List โดยใช้ Comparer ที่กำหนด เช่น Comparer.OrdinalIgnoreCase เพื่อลบรายการแบบไม่สนใจตัวพิมพ์เล็ก/ใหญ่ ซึ่งเป็นจุดเด่นที่ทำให้ฟังก์ชันนี้ยืดหยุ่นกว่า List.RemoveItems
List.RemoveNulls ลบค่า null ทั้งหมดจากรายการ ใช้สำหรับการทำความสะอาดข้อมูล การลบข้อมูลที่หายไป และการเตรียมข้อมูล
เรียงลำดับสมาชิกในรายการตามเงื่อนไขที่กำหนด ไม่ว่าจะเป็นจากน้อยไปมากหรือมากไปน้อย
รวม List โดยตัดตัวซ้ำออก (Set Union)
Table.Column ดึงค่าจากคอลัมน์เฉพาะออกมาจากตาราง และคืนค่าเป็น List เพื่อให้สามารถนำไปประมวลผลต่อได้
Table.Distinct ลบแถวที่ซ้ำกันออกจากตารางตามคอลัมน์ที่กำหนด หรือทั้งตารางถ้าไม่ระบุคอลัมน์
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่