تابع ERROR.TYPE در اکسل
تابع ERROR.TYPE در اکسل برای شناسایی نوع خطایی که یک فرمول یا سلول تولید کرده استفاده میشود. این تابع مقدار عددی برمیگرداند که نمایانگر نوع خطا است و به شما اجازه میدهد خطاها را بهصورت دقیقتر مدیریت کنید (مثلاً تفکیک بین #N/A و #DIV/0!). در ادامه ساختار، جدول نگاشت، مثالهای عملی و نکات پیشرفته را میبینید.
نوشتار و ساختار تابع
ساختار تابع بهصورت زیر است:
=ERROR.TYPE(value)پارامتر value میتواند یک ارجاع به سلول، یک عبارت که خطا تولید میکند، یا یک خطای صریح باشد (مثل #N/A). اگر مقدار ورودی یک خطا باشد، ERROR.TYPE عدد متناظر را برمیگرداند. اگر مقدار ورودی خطا نباشد، تابع خودش مقدار #N/A را برمیگرداند.
نگاشت عدد به نوع خطا
| عدد خروجی | خطای متناظر |
|---|---|
| 1 | #NULL! |
| 2 | #DIV/0! |
| 3 | #VALUE! |
| 4 | #REF! |
| 5 | #NAME? |
| 6 | #NUM! |
| 7 | #N/A |
| 8 | #GETTING_DATA (در نسخههای جدیدتر) |
رفتار در صورت عدم وجود خطا
اگر مقدار ورودی یک خطا نباشد (مثلاً عدد یا متن معمولی)، ERROR.TYPE نتیجه #N/A را برمیگرداند. برای جلوگیری از این خودِ خطا میتوانید از IFERROR، ISERROR یا کنترلهای شرطی استفاده کنید.
مثالهای کاربردی
- شناسایی و نمایش متن اختصاصی برای انواع مختلف خطا
- در گزارشات اتوماتیک نمایش پیغام مناسب بهجای ارورهای فنی
- ترکیب با VLOOKUP/XLOOKUP برای تشخیص “پیدا نشدن” در مقابل خطاهای دیگر
مثال 1 — نمایش نوع خطا با CHOOSE
=IF(ISERROR(A1),CHOOSE(ERROR.TYPE(A1),"#NULL!","#DIV/0!","#VALUE!","#REF!","#NAME?","#NUM!","#N/A","#GETTING_DATA"),"No Error")توضیح: این فرمول ابتدا با ISERROR بررسی میکند که آیا سلول A1 خطا دارد یا نه. اگر خطا وجود داشته باشد، ERROR.TYPE کد خطا را میگیرد و CHOOSE متن متناظر را نمایش میدهد. در غیر این صورت «No Error» نمایش داده میشود. استفاده از ISERROR این اطمینان را میدهد که اگر ERROR.TYPE مقدار خطای خودش (#N/A) تولید کند، CHOOSE اجرا نشود و ارور ثانویه رخ ندهد.
مثال 2 — نمایش پیام متفاوت برای #N/A و سایر خطاها
=IF(ISNA(A1),"مقدار یافت نشد",IF(ISERROR(A1),"خطای دیگر","مقدار درست: "&A1))توضیح: این فرمول اول بررسی میکند آیا خطای #N/A است یا نه (که معمولاً وقتی VLOOKUP مقدار را پیدا نکند رخ میدهد). اگر #N/A باشد پیام اختصاصی نشان میدهد. در غیر این صورت اگر خطای دیگری باشد، متن دیگری نمایش داده و اگر زمینه سالم باشد مقدار واقعی را نمایش میدهد.
مثال 3 — استفاده از SWITCH (نسخههای جدید اکسل)
=IF(ISERROR(A1),SWITCH(ERROR.TYPE(A1),1,"#NULL!",2,"#DIV/0!",3,"#VALUE!",4,"#REF!",5,"#NAME?",6,"#NUM!",7,"#N/A",8,"#GETTING_DATA"),"OK")توضیح: تابع SWITCH خواناتر از CHOOSE است و نگاشت عدد به متن را واضحتر نشان میدهد. توجه داشته باشید که همچنان قبل از فراخوانی ERROR.TYPE از ISERROR استفاده شده تا از ارور ثانویه جلوگیری شود.
نکات و توصیههای حرفهای
- ERROR.TYPE برای دستهبندی دقیق خطاها مناسب است اما بهتنهایی برای همه شرایط کفایت نمیکند؛ ترکیب با ISERROR، ISNA و IFERROR رویکرد امنتری است.
- در گزارشگیری و داشبوردها از ERROR.TYPE برای تولید اعلانهای کاربرپسند استفاده کنید (مثلاً «فایل مرجع پیدا نشد» بهجای #REF!).
- اگر هدف شما نادیده گرفتن خطاها در محاسبات است، تابع AGGREGATE یا گزینههای محاسباتی مانند IFERROR میتوانند بهتر عمل کنند.
- در نسخههای جدید اکسل کد 8 به خطای GETTING_DATA مربوط میشود که هنگام بارگذاری دادهها از منابع خارجی ممکن است ظاهر شود؛ برای تشخیص این حالت باید سختگیری بیشتری داشته باشید.
- اگر فرمولهای وابسته به دادههای خارجی دارید، بهتر است قبل از فراخوانی تابعهای محاسباتی، وضعیت اتصال و وجود داده را بررسی کنید تا خطاهای موقت شناسایی شوند.
مثال کاربردی در سناریوی واقعی
فرض کنید داشبوردی دارید که از VLOOKUP برای جمعآوری قیمتها استفاده میکند. وقتی آیتمی پیدا نشود، VLOOKUP خطای #N/A برمیگرداند. بهجای نمایش خطای فنی به مدیر فروش، میتوانیم پیام قابلفهمی نشان دهیم یا تلاش جایگزین برای محاسبه قیمت انجام دهیم:
=IF(ISNA(VLOOKUP(B2,Prices,2,FALSE)),"قیمت در سیستم نیست — لطفاً بررسی شود",
IF(ERROR.TYPE(VLOOKUP(B2,Prices,2,FALSE))=2,"تقسیم بر صفر در محاسبه قیمت",
VLOOKUP(B2,Prices,2,FALSE)))توضیح: ابتدا با ISNA بررسی میکنیم که آیا مقدار پیدا نشده است. سپس اگر خطای دیگری رخ داده و کد آن 2 (یعنی #DIV/0!) بود، پیام مخصوص نشان میدهیم. در غیر این صورت مقدار بازگشتی VLOOKUP نمایش داده میشود. این ساختار از نمایش خطاهای فنی جلوگیری کرده و توضیحات قابلفهمتری ارائه میکند.
محدودیتها و نکات نهایی
ERROR.TYPE ابزار دقیقی برای تشخیص نوع خطاست، اما این نکات را در نظر داشته باشید:
- اگر ورودی تابع یک مقدار غیرخطا باشد، خودِ ERROR.TYPE مقدار #N/A برمیگرداند؛ بنابراین همیشه آن را با ISERROR یا IFERROR ترکیب کنید.
- استفادهی بیش از حد از توابع تابلوکنترل خطا میتواند فرمولها را پیچیده کند؛ سعی کنید الگوی ساده و مستند داشته باشید.
- در محیطهای با دادههای خارجی، خطاهای موقت ممکن است تبدیل به کد 8 (GETTING_DATA) شوند؛ طراحی مناسب برای زمانبندی بازخوانی دادهها مهم است.
در مجموع، ERROR.TYPE به شما امکان میدهد خطاها را دقیقتر تشخیص دهید و واکنشهای متفاوتی بر اساس نوع خطا تعریف کنید — این موضوع برای گزارشگیری پایدار و تجربه کاربری بهتر در اکسل بسیار ارزشمند است.
آیا این مطلب برای شما مفید بود ؟




