คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › DAX › ฟังก์ชันตาราง (Table) › DISTINCT

DISTINCT

DAX · Power BIฟังก์ชันตาราง (Table)ระดับพื้นฐานแบบ 2 · ชื่อเดียวกัน ทำงานต่างกัน

อัปเดต 27 ก.ย. 2569 · ตัวเลขในตัวอย่างตรงกับตัวคำนวณอ้างอิงที่เขียนแยก และสูตร Excel ที่คำนวณจากข้อมูลชุดเดียวกัน · ยังไม่ได้ตรวจใน Power BI Desktop

เอกสารอ้างอิง: DISTINCT (คอลัมน์), DISTINCT (ตาราง) · syntax และหมายเหตุในหน้านี้ตรวจกับหน้านี้ของ Microsoft · ตัวจำลองในหน้านี้รองรับเฉพาะรูปแบบที่ใช้ในตัวอย่าง (เช่น ไม่รองรับ calendar-based time intelligence)

DISTINCT คืออะไร

คืนตารางค่าไม่ซ้ำของคอลัมน์ตามตัวกรองปัจจุบัน ต่างจาก VALUES ตรงที่ไม่เพิ่มแถวว่างจากรหัสที่หาไม่เจอ

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

  • หาค่าไม่ซ้ำโดยไม่เอาแถวว่างจากรหัสที่หาไม่เจอ
  • ตัดแถวซ้ำของตารางที่สร้างในสูตร

รูปแบบสูตร

=DISTINCT(<column>)

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
columnจำเป็นคอลัมน์ หรือนิพจน์ที่ให้คอลัมน์ (DISTINCT(<table>) ใช้ตัดแถวซ้ำของตาราง)

ลองเลย: พนักงานและช่องทางที่ขายสินค้าแต่ละหมวด

คลิกตัวเลขในตารางเพื่อดูตัวกรองไหลผ่านโมเดลจนเป็นตัวเลขนั้น เลือกค่าใน Slicer แก้ Measure ได้ หรือกด Excel เพื่อดูสูตร Excel ที่ได้คำตอบเดียวกัน

[จำนวนพนักงานที่ขาย] = COUNTROWS(DISTINCT('ยอดขาย'[รหัสพนักงาน]))
Ctrl + Enter คำนวณ · พิมพ์ ' เลือกตาราง · [ เลือกคอลัมน์หรือ Measure
  • พนักงานขายไม่มีตัวกรอง
  • สินค้า[หมวดสินค้า] = "เครื่องดื่ม"
  • วันที่[ปี] = 2025
  • ยอดขายเหลือ 81 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
พนักงานและช่องทางที่ขายสินค้าแต่ละหมวด
พนักงานและช่องทางที่ขายสินค้าแต่ละหมวด · ใช้ลูกศรเลื่อนระหว่างช่อง Enter เพื่อดูว่าตัวเลขนั้นคำนวณอย่างไร
หมวดสินค้าจำนวนพนักงานที่ขายช่องทางที่ขาย
เครื่องดื่ม
ขนมขบเคี้ยว
อาหารสำเร็จรูป
ผลิตภัณฑ์นม
เครื่องปรุงรส
ของใช้ในครัวเรือน
ยอดรวม
Food Service, Modern Trade, Online, Traditional Tradeช่องทางที่ขาย · เครื่องดื่ม · 2025
ดูทีละขั้นขั้น 4 / 4

ถ้าคุณเขียน Excel อยู่แล้ว

EXCEL=TEXTJOIN(", ", TRUE, SORT(UNIQUE(FILTER(ยอดขาย[ช่องทาง], ยอดขาย[หมวดสินค้า]="เครื่องดื่ม"))))

Excel 365 ใช้ UNIQUE แล้วต่อข้อความด้วย TEXTJOIN

DAXจำนวนพนักงานที่ขาย = COUNTROWS(DISTINCT('ยอดขาย'[รหัสพนักงาน]))

นับพนักงานที่มีคำสั่งซื้อในหมวดนั้น

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

ในโมเดลที่ข้อมูลครบ DISTINCT กับ VALUES ได้ผลเท่ากัน ต่างกันเมื่อมีรหัสในตารางยอดขายที่ไม่มีในตารางฝั่งหนึ่ง
DISTINCT รับนิพจน์ที่ให้คอลัมน์ได้ แต่ VALUES รับได้เฉพาะชื่อคอลัมน์หรือชื่อตาราง
นับค่าไม่ซ้ำอย่างเดียวใช้ DISTINCTCOUNT สั้นกว่า

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

1. DISTINCT('ยอดขาย'[ช่องทาง]) ให้ผลเป็นอะไร

2. ข้อใดที่ DISTINCT รับได้แต่ VALUES รับไม่ได้

3. นับค่าไม่ซ้ำอย่างเดียวใช้อะไรสั้นที่สุด

ไฟล์ฝึก DISTINCT

9Expert-DAX-DISTINCT-Practice-v1.0.xlsx

รุ่น 1.0 · 26/9/2026 · 70 KB · ไม่มี Macro · นำเข้า Power BI แล้วทำโจทย์ พิมพ์คำตอบกลับในไฟล์ ตรวจเอง
เริ่มต้นยอดขายสินค้าพนักงานขายวันที่คงคลังเป้าภูมิภาคแบบฝึกหัดเฉลย

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

  1. ข้อ 1[ช่องทางที่ขาย] รายชื่อช่องทางที่ขาย เรียงตามตัวอักษร คั่นด้วยจุลภาค · กรอง หมวดสินค้า = ขนมขบเคี้ยว, ปี = 2024
  2. ข้อ 2[ช่องทางที่ขาย] รายชื่อช่องทางที่ขาย เรียงตามตัวอักษร คั่นด้วยจุลภาค · กรอง หมวดสินค้า = ผลิตภัณฑ์นม, ช่องทาง = Traditional Trade, ปี = 2025
  3. ข้อ 3[จำนวนพนักงานที่ขาย] จำนวนพนักงานที่มีคำสั่งซื้อ · กรอง หมวดสินค้า = ของใช้ในครัวเรือน, ปี = 2025
  4. ข้อ 4[จำนวนพนักงานที่ขาย] จำนวนพนักงานที่มีคำสั่งซื้อ · กรอง หมวดสินค้า = เครื่องปรุงรส, ช่องทาง = Online, ปี = 2024
  5. ข้อ 5[จำนวนพนักงานที่ขาย] จำนวนพนักงานที่มีคำสั่งซื้อ · กรอง ปี = 2024

ไปต่อ

อยากเขียน DAX สำหรับรายงานจริงทั้งระบบ

ต่อยอดใน Data Analysis Expression (DAX) for Power BI: Measures, X Aggregation, CALCULATE, Date Table และ Time Intelligence (2 วัน)

ดูหลักสูตร