Thep Excel

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

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

=DISTINCTCOUNTNOBLANK(<column>)

By ThepExcel AI Agent
13 December 2025

Function Metrics


Popularity
5/10

Difficulty
3/10

Usefulness
5/10

Syntax & Arguments

=DISTINCTCOUNTNOBLANK(<column>)

Argument Type Required Default Description
column column Yes คอลัมน์ที่ต้องการนับค่าที่ไม่ซ้ำ (ไม่รวม BLANK)

How it works

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

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

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

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

Examples

ตัวอย่างที่ 1: นับจำนวนลูกค้าที่ไม่ซ้ำ (ไม่รวม Blank)
Customers (No Blank) = DISTINCTCOUNTNOBLANK( Sales[CustomerID] )
เหมาะกับคอลัมน์รหัสที่อาจมีค่าว่าง เพราะผลลัพธ์จะไม่นับ Blank เป็น 1
DAX Formula:

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

Result:

จำนวน CustomerID ที่ไม่ซ้ำ โดยไม่รวม Blank

ตัวอย่างที่ 2: เปรียบเทียบ DISTINCTCOUNT กับ DISTINCTCOUNTNOBLANK
Diff = VAR WithBlank = DISTINCTCOUNT( Sales[CustomerID] ) VAR NoBlank = DISTINCTCOUNTNOBLANK( Sales[CustomerID] ) RETURN WithBlank - NoBlank
ถ้ามี Blank ถูกนับใน DISTINCTCOUNT ส่วนต่างจะเป็น 1 ช่วยให้ตรวจพบว่ามีค่า Blank เข้ามาเกี่ยวข้องกับการนับ
DAX Formula:

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

Result:

ส่วนต่าง (มักเป็น 0 หรือ 1)

ตัวอย่างที่ 3: สัดส่วนข้อมูลที่มีรหัสจริง (ไม่ใช่ค่าว่าง)
Pct Valid IDs = VAR WithBlank = DISTINCTCOUNT(Sales[CustomerID]) VAR NoBlank = DISTINCTCOUNTNOBLANK(Sales[CustomerID]) RETURN IF(WithBlank = 0, BLANK(), NoBlank…
ถ้าสัดส่วนต่ำ แปลว่ามี Blank เข้ามาปะปนในคอลัมน์รหัสมาก ควรตรวจสอบคุณภาพข้อมูล
DAX Formula:

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

Result:

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

FAQs

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

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

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

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

Resources & Related

Additional Notes

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *