=BLANK()
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| (ไม่มีอาร์กิวเมนต์) | none | Optional | BLANK() ไม่มีพารามิเตอร์ใดๆ เรียกใช้โดยตรงเพื่อคืนค่าว่างเปล่า |
ใช้ DIVIDE(Numerator, Denominator, BLANK()) เพื่อคืนค่าว่างแทน Error เมื่อตัวหารเป็นศูนย์
ใช้ IF(Condition, Value, BLANK()) เพื่อไม่ให้แสดงค่าในบางสถานการณ์
High Sales Only = IF( [Total Sales] > 1000, [Total Sales], BLANK() )High Sales Only = IF( [Total Sales] > 1000, [Total Sales], BLANK() )
แสดงเฉพาะยอดขายที่เกิน 1,000 ส่วนที่ต่ำกว่าจะไม่แสดง
Ratio = IF( [Total Sales] = 0, BLANK(), [Profit] / [Total Sales] )Ratio = IF( [Total Sales] = 0, BLANK(), [Profit] / [Total Sales] )
คิดอัตราส่วน หรือแสดงว่าง หากไม่มียอดขาย
Has Data = IF( ISBLANK([Customer Name]), "No Customer", "Has Customer" )Has Data = IF( ISBLANK([Customer Name]), "No Customer", "Has Customer" )
ข้อความแสดงว่ามีข้อมูลลูกค้าหรือไม่
Active Customers = COUNTROWS( FILTER(Customer, [Total Sales] BLANK()) )Active Customers = COUNTROWS( FILTER(Customer, [Total Sales] <> BLANK()) )
จำนวนลูกค้าที่มียอดขาย
BLANK() = ค่า null/empty ไม่มีอยู่จริง | 0 = เลขศูนย์ (ตัวเลข) | “” = ข้อความว่างเปล่า (Text) ความแตกต่างสำคัญ: SUM() จะเพิกเฉยต่อ BLANK แต่จะนับ 0 เข้า และการเปรียบเทียบ BLANK = 0 จะคืน TRUE (automatic coercion) แต่ BLANK == 0 จะคืน FALSE (strict equality)
DAX จะคืน BLANK โดยอัตโนมัติใน: (1) Division by zero เช่น DIVIDE(10,0) | (2) LOOKUPVALUE หรือ RELATED ไม่พบค่า | (3) Functions ที่ผลลัพธ์ว่างเปล่า | (4) Aggregation ของแถวเหล่านั้นไม่มีข้อมูล
ใช้ ISBLANK() หรือเปรียบเทียบ BLANK() และ = BLANK() สำหรับการตรวจสอบที่ชัดเจน ส่วน == (strict equality) มักจะไม่ใช้กับ BLANK เพราะมักจะได้ FALSE ในกรณีที่ไม่ต้องการ
ไม่มีความแตกต่าง BLANK() ทำงานเหมือนกันในทั้ง Measure (ไม่มี row context) และ Calculated Column (มี row context) แต่การใช้งานแตกต่าง เช่น Measure แสดง BLANK จะไม่แสดงค่าในตาราง Card แต่ Calculated Column ยังแสดง BLANK ให้เห็น
BLANK เป็นฟังก์ชันที่ คืนค่าว่างเปล่า (null/empty value) ในDAX
จุดสำคัญของ BLANK:
– ไม่เหมือน 0: ค่า BLANK ไม่ใช่เลขศูนย์ (0) จะไม่นำมาคำนวณในผลรวมบางฟังก์ชัน
– ไม่เหมือน “”: ค่า BLANK ไม่ใช่ข้อความว่างเปล่า มีความแตกต่างในการเปรียบเทียบ
– ขึ้นอยู่กับบริบท: มักใช้ใน IF หรือ IFERROR เพื่อซ่อนค่าที่ไม่ต้องการ เช่น #DIV/0! หรือค่าที่ต่ำกว่าเกณฑ์
ส่วนตัวผมคิดว่า BLANK เป็นหนึ่งใน DAX Basics ที่ต้องเข้าใจให้ลึกซึ้ง เพราะมันส่งผลต่อการแสดงผลใน Matrix, Cards, และการคำนวณต่างๆ ถ้าไม่เข้าใจดี อาจได้ผลลัพธ์ไม่คาดหวัง 😎