คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้
หน้าแรก › DAX › สรุปค่า (Aggregation) › DISTINCTCOUNT

DISTINCTCOUNT

DAX · Power BIสรุปค่า (Aggregation)ระดับพื้นฐานแบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชัน

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

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

DISTINCTCOUNT คืออะไร

นับจำนวนค่าที่ไม่ซ้ำในคอลัมน์ เช่น จำนวนลูกค้าที่สั่งซื้อ

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

  • นับจำนวนลูกค้าที่ซื้อ ไม่นับซ้ำ
  • นับจำนวนสินค้าที่ขายออกในเดือน

รูปแบบสูตร

=DISTINCTCOUNT(<column>)

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
columnจำเป็นคอลัมน์ที่ต้องการนับค่าไม่ซ้ำ

ลองเลย: จำนวนลูกค้าที่สั่งซื้อ แยกตามภูมิภาค

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

[จำนวนคำสั่งซื้อ] = COUNTROWS('ยอดขาย')
Ctrl + Enter คำนวณ · พิมพ์ ' เลือกตาราง · [ เลือกคอลัมน์หรือ Measure
  • พนักงานขาย[ภูมิภาค] = "กลาง"
  • สินค้าไม่มีตัวกรอง
  • วันที่[ปี] = 2025
  • ยอดขายเหลือ 96 จาก 495 แถว · หนึ่งจุดคือหนึ่งคำสั่งซื้อ
จำนวนลูกค้าที่สั่งซื้อ แยกตามภูมิภาค
จำนวนลูกค้าที่สั่งซื้อ แยกตามภูมิภาค · ใช้ลูกศรเลื่อนระหว่างช่อง Enter เพื่อดูว่าตัวเลขนั้นคำนวณอย่างไร
ภูมิภาคจำนวนลูกค้าจำนวนคำสั่งซื้อ
กลาง
เหนือ
ตะวันออกเฉียงเหนือ
ตะวันออก
ใต้
ยอดรวม
36จำนวนลูกค้า · กลาง · 2025
ดูทีละขั้นขั้น 3 / 3

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

EXCEL=ROWS(UNIQUE(FILTER(ยอดขาย[รหัสลูกค้า], ยอดขาย[ภูมิภาค]="กลาง")))

Excel 2021 ขึ้นไปใช้ UNIQUE และ FILTER ซ้อนกัน DAX มีฟังก์ชันเดียวจบ

DAXจำนวนลูกค้า = DISTINCTCOUNT('ยอดขาย'[รหัสลูกค้า])

ลูกค้าที่สั่งหลายครั้งนับเป็นหนึ่ง

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

ยอดรวมของ DISTINCTCOUNT มักน้อยกว่าผลบวกของแต่ละแถว เพราะลูกค้าคนเดียวซื้อได้หลายภาค นี่คือคำตอบที่ถูก ไม่ใช่ข้อผิดพลาด
ใช้กับคอลัมน์รหัส ไม่ใช่คอลัมน์ชื่อ เพราะชื่ออาจซ้ำหรือสะกดต่างกัน
ค่าว่างในคอลัมน์ถูกนับเป็นหนึ่งค่า ถ้าไม่ต้องการให้นับใช้ DISTINCTCOUNTNOBLANK (อยู่ในเฟสถัดไป)

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

1. ลูกค้า C001 สั่ง 3 ครั้งในภาคกลาง DISTINCTCOUNT('ยอดขาย'[รหัสลูกค้า]) นับลูกค้ารายนี้เป็นเท่าไร

2. ทำไมจำนวนลูกค้าในแถวยอดรวมน้อยกว่าผลบวกของทุกภาค

3. ควรใช้ DISTINCTCOUNT กับคอลัมน์ใด

ไฟล์ฝึก DISTINCTCOUNT

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

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

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

  1. ข้อ 1[จำนวนลูกค้า] จำนวนลูกค้าที่ไม่ซ้ำกัน (รหัสลูกค้า) · กรอง ภูมิภาค = ใต้, ปี = 2024
  2. ข้อ 2[จำนวนลูกค้า] จำนวนลูกค้าที่ไม่ซ้ำกัน (รหัสลูกค้า) · กรอง ภูมิภาค = ตะวันออกเฉียงเหนือ, ช่องทาง = Online, ปี = 2025
  3. ข้อ 3[จำนวนลูกค้า] จำนวนลูกค้าที่ไม่ซ้ำกัน (รหัสลูกค้า) · กรอง ภูมิภาค = เหนือ, ปี = 2025
  4. ข้อ 4[จำนวนลูกค้า] จำนวนลูกค้าที่ไม่ซ้ำกัน (รหัสลูกค้า) · กรอง ภูมิภาค = ตะวันออก, ช่องทาง = Modern Trade, ปี = 2024
  5. ข้อ 5[จำนวนลูกค้า] จำนวนลูกค้าที่ไม่ซ้ำกัน (รหัสลูกค้า) · กรอง ปี = 2025

ไปต่อ

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

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

ดูหลักสูตร