Thep Excel

DISTINCTCOUNTNOBLANKนับจำนวนค่าที่ไม่ซ้ำ (ไม่รวม Blank)

DISTINCTCOUNTNOBLANK นับจำนวนค่าที่ไม่ซ้ำในคอลัมน์ โดยไม่รวมค่า BLANK จึงเหมาะกับการนับรายการที่ต้องการตัดค่าว่างออกไป เช่น นับจำนวนลูกค้าที่ไม่ซ้ำโดยไม่ให้ BLANK ถูกนับ

fx
=DISTINCTCOUNTNOBLANK(<column>)

ความนิยม5/10
ความยาก3/10
ประโยชน์5/10

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
column column คอลัมน์ที่ต้องการนับค่าที่ไม่ซ้ำ (ไม่รวม BLANK)

Additional Notes

DISTINCTCOUNTNOBLANK ใช้สำหรับนับจำนวน “ค่าที่ไม่ซ้ำ” ในคอลัมน์ โดย ไม่รวมค่า BLANK เหมาะกับกรณีที่คุณต้องการนับจำนวนรหัส/รายการที่มีค่าเท่านั้น เช่น นับจำนวนลูกค้าที่ไม่ซ้ำโดยไม่ต้องการให้ค่าว่างถูกนับเป็น 1

หากคุณใช้ DISTINCTCOUNT ปกติ แล้วข้อมูลมี BLANK (หรือเกิด BLANK จากความสัมพันธ์) ผลลัพธ์อาจถูกนับเพิ่ม 1 แบบไม่ตั้งใจ ฟังก์ชันนี้ช่วยแก้ปัญหานั้นได้ตรงจุด

How it works

นับจำนวนลูกค้าที่ไม่ซ้ำโดยไม่รวมค่าว่าง

เหมาะเมื่อคอลัมน์ CustomerID อาจมีค่าว่าง หรือมี Blank จากความสัมพันธ์ ทำให้ DISTINCTCOUNT ปกตินับเพิ่ม 1

นับจำนวน SKU ที่ขายได้โดยตัด Blank

ใช้กับรหัสสินค้า/รหัสรายการเพื่อกันข้อมูลที่ว่างหรือไม่ถูกต้องไม่ให้เข้าไปนับ

Examples

ตัวอย่างที่ 1: นับจำนวนลูกค้าที่ไม่ซ้ำ (ไม่รวม Blank)Customers (No Blank) = DISTINCTCOUNTNOBLANK( Sales[CustomerID] )

เหมาะกับคอลัมน์รหัสที่อาจมีค่าว่าง เพราะผลลัพธ์จะไม่นับ Blank เป็น 1

fx
=Customers (No Blank) = DISTINCTCOUNTNOBLANK( Sales[CustomerID] )

ผลลัพธ์จำนวน CustomerID ที่ไม่ซ้ำ โดยไม่รวม Blank
ตัวอย่างที่ 2: เปรียบเทียบ DISTINCTCOUNT กับ DISTINCTCOUNTNOBLANKDiff = VAR WithBlank = DISTINCTCOUNT( Sales[CustomerID] ) VAR NoBlank = DISTINCTCOUNTNOBLANK( Sales[CustomerID] ) RETURN WithBlank – NoBlank

ถ้ามี Blank ถูกนับใน DISTINCTCOUNT ส่วนต่างจะเป็น 1 ช่วยให้ตรวจพบว่ามีค่า Blank เข้ามาเกี่ยวข้องกับการนับ

fx
Diff =
VAR WithBlank = DISTINCTCOUNT( Sales[CustomerID] )
VAR NoBlank = DISTINCTCOUNTNOBLANK( Sales[CustomerID] )
RETURN WithBlank – NoBlank

ผลลัพธ์ส่วนต่าง (มักเป็น 0 หรือ 1)
ตัวอย่างที่ 3: สัดส่วนข้อมูลที่มีรหัสจริง (ไม่ใช่ค่าว่าง)Pct Valid IDs = VAR WithBlank = DISTINCTCOUNT(Sales[CustomerID]) VAR NoBlank = DISTINCTCOUNTNOBLANK(Sales[CustomerID]) RETURN IF(WithBlank = 0, BLANK(), NoBlank…

ถ้าสัดส่วนต่ำ แปลว่ามี Blank เข้ามาปะปนในคอลัมน์รหัสมาก ควรตรวจสอบคุณภาพข้อมูล

fx
Pct Valid IDs =
VAR WithBlank = DISTINCTCOUNT(Sales[CustomerID])
VAR NoBlank = DISTINCTCOUNTNOBLANK(Sales[CustomerID])
RETURN IF(WithBlank = 0, BLANK(), NoBlank / WithBlank)

ผลลัพธ์สัดส่วนข้อมูลที่ไม่ใช่ Blank (เช่น 0.99)

FAQs

ทำไม DISTINCTCOUNT ถึงนับ BLANK ด้วย?+

เพราะใน DAX ค่า BLANK ถือเป็นค่าหนึ่งในโดเมนของคอลัมน์ เมื่อมี BLANK ในข้อมูลหรือเกิด Blank จากความสัมพันธ์ DISTINCTCOUNT จึงนับ BLANK เป็น 1 ค่า

ถ้าไม่มี BLANK เลย จำเป็นต้องใช้ DISTINCTCOUNTNOBLANK ไหม?+

ถ้าคุณมั่นใจว่าคอลัมน์ไม่มี BLANK และไม่มี Blank จากความสัมพันธ์ DISTINCTCOUNT ก็เพียงพอ แต่ DISTINCTCOUNTNOBLANK ช่วยให้ความตั้งใจชัดเจนและปลอดภัยขึ้นในโมเดลที่ข้อมูลเปลี่ยนแปลงได้

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ DISTINCTCOUNTNOBLANK จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้DISTINCTCOUNTNOBLANKAggregation
Aggregation (2)
APPROXIMATEDISTINCTCOUNT

APPROXIMATEDISTINCTCOUNT คืนจำนวนค่าไม่ซ้ำแบบประมาณเพื่อความเร็ว เหมาะกับข้อมูลขนาดใหญ่และงาน DirectQuery ในแหล่งข้อมูลที่รองรับ เมื่อความแม่นยำ 100% ไม่จำเป็น

DISTINCTCOUNT

DISTINCTCOUNT นับจำนวนค่าที่แตกต่างกันทั้งหมดในคอลัมน์ รวมถึง BLANK values ถ้าไม่มีแถวข้อมูล จะคืนค่า BLANK

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่