คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › Power Query › จัดการแถว › Table.Distinct

Table.Distinct

Power Query · Mจัดการแถวระดับพื้นฐาน

อัปเดต 3 ต.ค. 2569 · ตารางทุกขั้นในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก · ยังไม่ได้ตรวจใน Power Query ของ Excel หรือ Power BI Desktop

เอกสารอ้างอิง: Table.Distinct (Microsoft Learn) · ตัวจำลองบนหน้านี้รองรับเฉพาะฟังก์ชันและรูปแบบที่ใช้ในตัวอย่าง วันที่แสดงแบบ วัน/เดือน/ปี ค.ศ.

Table.Distinct คืออะไร

ลบแถวที่ซ้ำ เหลือแถวแรกของแต่ละชุดค่า เทียบทั้งแถวหรือเฉพาะคอลัมน์ที่ระบุ

ปุ่มใน Power Query Editor ที่สร้างขั้นนี้Home › Reduce Rows › Remove Rows › Remove Duplicates

ใช้เมื่อไหร่

  • ลบคำสั่งซื้อที่ระบบส่งออกซ้ำ
  • หารายการไม่ซ้ำ เช่น รายชื่อพนักงานและช่องทางที่เคยขาย

รูปแบบสูตร

Table.Distinct(table as table, optional equationCriteria as any) as table

optional คือไม่ใส่ก็ได้ · ชื่อฟังก์ชันต้องสะกดตัวพิมพ์ใหญ่เล็กให้ตรง

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
tableจำเป็นตารางต้นทาง
equationCriteriaไม่บังคับคอลัมน์ที่ใช้ตัดสินว่าซ้ำ เช่น {"เลขที่คำสั่งซื้อ"} (ไม่ใส่ = เทียบทุกคอลัมน์)

ลองเลย: ลบคำสั่งซื้อที่ระบบส่งออกมาซ้ำ

คลิกขั้นใน Applied Steps เพื่อดูตารางหลังขั้นนั้น สลับดูก่อนและหลังขั้น เปลี่ยนค่าที่ปุ่มด้านบน หรือแก้สูตรในแถบสูตรแล้วกดคำนวณ

กดใน Power Query EditorHome › Reduce Rows › Remove Rows › Remove Duplicates
Ctrl + Enter คำนวณ · แก้ได้ทุกขั้น เลือกขั้นจาก Applied Steps
9 คอลัมน์ · 65 แถว
Removed Duplicates · ตารางหลังขั้นนี้ 65 แถว 9 คอลัมน์
แถวABC
123
เลขที่คำสั่งซื้อ
100%
ABC
123
วันที่
100%
ABC
123
รหัสสินค้า
100%
ABC
123
พนักงานขาย
100%
ABC
123
ภูมิภาค
100%
ABC
123
ช่องทาง
100%
ABC
123
จำนวน
100%
ABC
123
ราคาต่อหน่วย
100%
ABC
123
ส่วนลด
100%
1SF-2025-02372/1/2025 0:00:00P009วรวุฒิ แสงทองเหนือOnline547200.05
2SF-2025-02384/1/2025 0:00:00P024นันทิดา กิจเจริญกลางOnline355200.05
3SF-2025-02395/1/2025 0:00:00P036อรทัย พิทักษ์วงศ์กลางOnline38540-
4SF-2025-02407/1/2025 0:00:00p039ปิยะนุช ศรีสวัสดิ์กลางFood Service20420-
5SF-2025-02417/1/2025 0:00:00P009นันทิดา กิจเจริญกลางModern Trade187200.05
6SF-2025-02428/1/2025 0:00:00·P009·ชยพล บุญมาตะวันออกเฉียงเหนือModern Trade21720-
7SF-2025-02439/1/2025 0:00:00P036สุภาพร หงษ์ทองตะวันออกModern Trade305400.1
8SF-2025-024411/1/2025 0:00:00P006วรวุฒิ แสงทองเหนือOnline20560-
9SF-2025-024512/1/2025 0:00:00P009·ธีรพงษ์ ฉัตรแก้วตะวันออกเฉียงเหนือFood Service157200.1
10SF-2025-024613/1/2025 0:00:00P006วรวุฒิ แสงทองเหนือOnline37560-
11SF-2025-024714/1/2025 0:00:00p009อรทัย พิทักษ์วงศ์กลางTraditional Trade39720-
12SF-2025-024815/1/2025 0:00:00P009ธีรพงษ์ ฉัตรแก้วตะวันออกเฉียงเหนือOnline24720-
13SF-2025-024916/1/2025 0:00:00P006สุภาพร หงษ์ทองตะวันออกTraditional Trade505600.05
14SF-2025-025016/1/2025 0:00:00P001กมลชนก พงษ์พานิชใต้Traditional Trade35420-
15SF-2025-025117/1/2025 0:00:00P006ชยพล บุญมาตะวันออกเฉียงเหนือModern Trade6560-
16SF-2025-025218/1/2025 0:00:00P001ปิยะนุช ศรีสวัสดิ์กลางTraditional Trade444200.1
17SF-2025-025320/1/2025 0:00:00·P024·กมลชนก พงษ์พานิชใต้Online485200.1
18SF-2025-025421/1/2025 0:00:00p036กมลชนก พงษ์พานิชใต้Traditional Trade51540-
19SF-2025-025522/1/2025 0:00:00P011ปิยะนุช ศรีสวัสดิ์กลางFood Service216500.1
20SF-2025-025625/1/2025 0:00:00P001กมลชนก พงษ์พานิชใต้Modern Trade204200.05
21SF-2025-025726/1/2025 0:00:00P036กมลชนก พงษ์พานิชใต้Traditional Trade38540-
22SF-2025-025829/1/2025 0:00:00P036·วรวุฒิ แสงทองเหนือModern Trade385400.05
23SF-2025-025930/1/2025 0:00:00P011กมลชนก พงษ์พานิชใต้Modern Trade166500.05
24SF-2025-02601/2/2025 0:00:00P017วรวุฒิ แสงทองเหนือTraditional Trade222500.1
25SF-2025-02613/2/2025 0:00:00p036วรวุฒิ แสงทองเหนือModern Trade18540-
26SF-2025-02626/2/2025 0:00:00P001ชยพล บุญมาตะวันออกเฉียงเหนือOnline7420-
27SF-2025-02638/2/2025 0:00:00P003อรทัย พิทักษ์วงศ์กลางOnline2060-
28SF-2025-02649/2/2025 0:00:00·P001·นันทิดา กิจเจริญกลางFood Service74200.05
29SF-2025-026510/2/2025 0:00:00P006นันทิดา กิจเจริญกลางModern Trade33560-
30SF-2025-026610/2/2025 0:00:00P006กมลชนก พงษ์พานิชใต้Modern Trade33560-
31SF-2025-026713/2/2025 0:00:00P036ชยพล บุญมาตะวันออกเฉียงเหนือTraditional Trade21540-
32SF-2025-026815/2/2025 0:00:00p036วรวุฒิ แสงทองเหนือFood Service43540-
33SF-2025-026916/2/2025 0:00:00P017ปิยะนุช ศรีสวัสดิ์กลางOnline282500.1
34SF-2025-027019/2/2025 0:00:00P009ปิยะนุช ศรีสวัสดิ์กลางOnline10720-
35SF-2025-027119/2/2025 0:00:00P024·อรทัย พิทักษ์วงศ์กลางOnline19520-
36SF-2025-027220/2/2025 0:00:00P003ชยพล บุญมาตะวันออกเฉียงเหนือFood Service2060-
37SF-2025-027320/2/2025 0:00:00P006วรวุฒิ แสงทองเหนือModern Trade32560-
38SF-2025-027421/2/2025 0:00:00P030ชยพล บุญมาตะวันออกเฉียงเหนือModern Trade414200.05
39SF-2025-027522/2/2025 0:00:00p011วรวุฒิ แสงทองเหนือModern Trade32650-
40SF-2025-027623/2/2025 0:00:00P017ปิยะนุช ศรีสวัสดิ์กลางOnline42250-

Removed Duplicates · ขั้นนี้ทำอะไร

Table.Distinct รับตาราง 67 แถว × 9 คอลัมน์ ได้ 65 แถว × 9 คอลัมน์

เทียบทุกคอลัมน์ พบแถวซ้ำ 2 แถว เหลือชุดละหนึ่งแถว เช่น แถวที่ 22 ซ้ำกับแถวที่ 21

Advanced Editor · โค้ดทั้ง query
let
    Source = Excel.CurrentWorkbook(){[Name="Export"]}[Content],
    #"Removed Top Rows" = Table.Skip(Source,3),
    #"Promoted Headers" = Table.PromoteHeaders(#"Removed Top Rows", [PromoteAllScalars=true]),
    #"Removed Duplicates" = Table.Distinct(#"Promoted Headers")
in
    #"Removed Duplicates"
วางใน Home › Advanced Editor ของ Power Query ในไฟล์ฝึกได้ทันที

ถ้าคุณใช้ Excel หรือ DAX อยู่แล้ว

EXCEL=UNIQUE(A5:I72)

UNIQUE ใน Excel 365 และ Data › Remove Duplicates ทำงานคล้ายกัน แต่ Remove Duplicates ของ Excel ลบข้อมูลจริง Power Query ลบในขั้นตอน

POWER QUERY · M#"Removed Duplicates" = Table.Distinct(#"Promoted Headers")

ลบแถวที่ซ้ำ เหลือแถวแรกของแต่ละชุดค่า เทียบทั้งแถวหรือเฉพาะคอลัมน์ที่ระบุ

DAXDISTINCT('ยอดขาย'[ช่องทาง])

DISTINCT ของ DAX คืนค่าไม่ซ้ำตอนคำนวณ ส่วนการลบแถวซ้ำที่เกิดจากการส่งออกผิดพลาดควรทำใน Power Query ก่อนโหลด

ข้อผิดพลาดและเคล็ดลับ

ข้อความเทียบแบบตัวพิมพ์ใหญ่เล็กต่างกัน "P001" กับ "p001" ไม่ถือว่าซ้ำ ล้างข้อความด้วย Table.TransformColumns ก่อน หรือใช้ Table.Distinct(t, Comparer.OrdinalIgnoreCase)
เมื่อระบุคอลัมน์ Microsoft Learn ไม่รับประกันว่าแถวไหนของแต่ละค่าจะเหลืออยู่ (ในทางปฏิบัติมักเป็นแถวแรก ตัวจำลองนี้เก็บแถวแรก) ถ้าค่าคอลัมน์อื่นสำคัญ ให้เรียงแถวแล้วใช้ Table.Buffer ก่อนลบแถวซ้ำ
ใช้ Remove Duplicates กับคอลัมน์ที่ควรเป็นรหัสไม่ซ้ำ เช่น รหัสสินค้า ก่อนทำความสัมพันธ์แบบ One-to-Many ใน Power BI

แบบทดสอบ 3 ข้อ

1. Table.Distinct(t) ไม่ใส่ argument ที่สอง เทียบอะไร

2. "P001" กับ "p001" ถือว่าซ้ำหรือไม่

3. Table.Distinct(t, Comparer.OrdinalIgnoreCase) ทำอะไร

ไฟล์ฝึก Table.Distinct

9Expert-M-Table-Distinct-Practice-v1.0.xlsx

รุ่น 1.0 · 3/10/2026 · 21 KB · ไม่มี Macro · เปิดใน Excel › Data › Get Data › Blank Query แล้ววางโค้ดตั้งต้น ทำโจทย์ พิมพ์คำตอบกลับในไฟล์ ตรวจเอง
เริ่มต้นข้อมูลส่งออกยอดขายเป้าหมายโค้ดตั้งต้นแบบฝึกหัดเฉลย

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1ก่อน Removed Duplicates (ขั้น Promoted Headers) มีกี่แถว · ดูที่ขั้น Promoted Headers
  2. ข้อ 2ตัดสินซ้ำจาก {"ภูมิภาค"} เหลือกี่แถว · ดูที่ขั้น Removed Duplicates
  3. ข้อ 3ตัดสินซ้ำจาก {"พนักงานขาย", "ช่องทาง"} เหลือกี่แถว · ดูที่ขั้น Removed Duplicates
  4. ข้อ 4หลัง Removed Duplicates ผลรวมคอลัมน์ จำนวน · ดูที่ขั้น Removed Duplicates
  5. ข้อ 5ตัดสินซ้ำจาก {"เลขที่คำสั่งซื้อ"} เหลือกี่แถว · ดูที่ขั้น Removed Duplicates

ไปต่อ

อยากใช้ Power Query เตรียมข้อมูลจริงทั้งระบบ

ต่อยอดในหลักสูตร Power BI และ Power Query ของ 9Expert Training: รวมไฟล์ ล้างข้อมูล และสร้างโมเดลสำหรับรายงาน

ดูหลักสูตร