ERROR ฟังก์ชันที่หยุดการคำนวณและแสดงข้อความข้อผิดพลาดที่กำหนดเอง ใช้สำหรับการตรวจสอบข้อมูล (Data Validation) และจัดการสถานการณ์ที่ข้อมูลไม่ครบถ้วน เช่น ค่า Inflation Rate ที่หายไป หรือค่าจำเป็นที่ไม่พบ แทนการส่งค่าที่ไม่ถูกต้องหรือว่าง
=ERROR(<ErrorText>)
=ERROR(<ErrorText>)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| ErrorText | text | Yes | ไม่มี – จำเป็นต้องระบุ | ข้อความแสดงข้อผิดพลาดที่ต้องการแสดงให้ผู้ใช้เห็น เช่น ‘Missing inflation rate for this year’ |
ก่อนสร้าง KPI ที่สำคัญ ใช้ ERROR เพื่อตรวจสอบว่าข้อมูลจำเป็น (เช่น Department, Region) มีค่าครบถ้วนหรือไม่ ถ้ามีการขาดหายจะแสดงข้อผิดพลาดแทนที่จะสร้างรายงานที่ไม่ถูกต้อง
สำหรับ Measures ที่มี Business Rules (เช่น Discount ต้องไม่เกิน 50%) ใช้ ERROR เมื่อค่าผิดไปจาก Rule เพื่อแจ้ง Data Steward ว่าข้อมูลมีปัญหาต้องตรวจสอบ
SELECTEDVALUE('Rates'[InflationRate], CONVERT(ERROR("Missing inflation rate for this year"), DOUBLE))=SELECTEDVALUE('Rates'[InflationRate], CONVERT(ERROR("Missing inflation rate for this year"), DOUBLE))
ข้อผิดพลาด: Missing inflation rate for this year
IF(MAX([Sales]) > 1000000, CONVERT(ERROR("Sales exceeded maximum allowed value"), DOUBLE), MAX([Sales]))=IF(MAX([Sales]) > 1000000, CONVERT(ERROR("Sales exceeded maximum allowed value"), DOUBLE), MAX([Sales]))
ข้อผิดพลาด: Sales exceeded maximum allowed value (ถ้าเกิน) หรือค่า Sales (ถ้าไม่เกิน)
IF(ISBLANK([Department]), CONVERT(ERROR("Department field is required. Please fill in the department for accurate analysis."), TEXT), [Department])=IF(ISBLANK([Department]), CONVERT(ERROR("Department field is required. Please fill in the department for accurate analysis."), TEXT), [Department])
ข้อผิดพลาด: Department field is required... (ถ้า Blank) หรือชื่อ Department (ถ้ามีค่า)
ERROR หยุดการคำนวณทั้งหมดและแสดงข้อความตรงนั้น ส่วน BLANK และ NA() จะส่งค่า Blank หรือ #N/A ไปเรื่อย ๆ ใน Formula ต่อไป ERROR เหมาะสำหรับเมื่อต้องแจ้งปัญหาสำคัญ ขณะที่ BLANK/NA() เหมาะสำหรับค่าที่สามารถจัดการต่อได้
ERROR() ส่งค่า Variant Type แต่เมื่อใช้ในตำแหน่งที่ต้องได้ Data Type เฉพาะ (เช่น DOUBLE, TEXT) จึงต้อง CONVERT() เพื่อระบุ Data Type ให้ชัดเจน นี่เป็นการป้องกัน Implicit Conversion ที่อาจทำให้ผลลัพธ์ไม่เสถียร
ได้ แต่ต้องระมัดระวัง เมื่อแถวใด ๆ ใน Calculated Column มี ERROR ก็จะแสดงข้อผิดพลาดสำหรับแถวนั้น ซึ่งอาจทำให้ View/Report ไม่สามารถแสดงผลได้ ดังนั้นควรใช้สำหรับการตรวจสอบ Data Quality มากกว่าการสร้าง Calculated Column ปกติ
ไม่ได้ ERROR ใช้สำหรับการทำให้เกิดข้อผิดพลาด (Raising Error) ไม่ใช่สำหรับจับและจัดการข้อผิดพลาด (Error Handling) ถ้าต้องการจับข้อผิดพลาดจากฟังก์ชันอื่น ให้ใช้ IFERROR() หรือ ISERROR() แทน
ERROR