ตัวอย่างที่ 1: ดึงชื่อสินค้าทั้งหมดที่มีการขาย
Unique Products = DISTINCT( Sales[ProductCode] )
ตารางรายการรหัสสินค้าที่ไม่ซ้ำกันจากตาราง Sales
ดึงค่าที่ไม่ซ้ำกันออกมาเป็นตาราง (ไม่รวม Blank พิเศษ)
DISTINCT คืนค่าตารางที่มีคอลัมน์เดียว (หรือทั้งตาราง) ซึ่งประกอบด้วยค่าที่ไม่ซ้ำกันจากคอลัมน์ที่ระบุ โดยไม่รวม Blank Row ที่เกิดจาก Referencial Integrity Violation (Invalid Relationship)
=DISTINCT( TableNameOrColumnName )
=DISTINCT( TableNameOrColumnName )
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| TableNameOrColumnName | table/column | Yes | ชื่อตารางหรือคอลัมน์ที่ต้องการดึงค่าที่ไม่ซ้ำ |
ใช้สร้างตารางรายการสินค้าที่ไม่ซ้ำ เพื่อนำไปวนลูปคำนวณต่อใน SUMX หรือ AVERAGEX
ใช้ COUNTROWS ครอบ DISTINCT เพื่อจำลองการทำงานของ DISTINCTCOUNT (แต่ DISTINCTCOUNT เร็วกว่า)
Unique Products = DISTINCT( Sales[ProductCode] )
ตารางรายการรหัสสินค้าที่ไม่ซ้ำกันจากตาราง Sales
Distinct Table = DISTINCT( 'Product' )
ตาราง Product ที่ไม่มีแถวซ้ำ (ถ้าเดิมไม่ซ้ำอยู่แล้วก็ได้ผลเท่าเดิม)
Unique Customers = COUNTROWS( DISTINCT(Sales[CustomerID]) )
จำนวนลูกค้าที่ไม่ซ้ำ
โดยทั่วไปแนะนำให้ใช้ VALUES เพราะหากมีความสัมพันธ์ที่ผิดพลาด (เช่น ขายสินค้าที่ไม่มีใน Master) การใช้ VALUES จะทำให้เราเห็น Blank Row ซึ่งช่วยเตือนว่ามีข้อมูลหาย แต่ DISTINCT จะซ่อนปัญหานั้นไว้
DISTINCT คือฟังก์ชันที่ใช้สำหรับดึงรายการข้อมูลที่ไม่ซ้ำกัน (Unique/Distinct Values) ออกมาจากคอลัมน์หรือตารางที่ระบุ โดยจะตัดรายการที่ซ้ำกันออกให้เหลือเพียงรายการเดียว
ทั้งคู่ทำงานคล้ายกันมาก แต่จุดต่างคือ DISTINCT จะไม่คืนค่า Blank Row ที่เกิดจาก Invalid Relationship (ความสัมพันธ์ที่ไม่สมบูรณ์) ในขณะที่ VALUES จะคืนค่า Blank Row นั้นมาด้วย