تابع IFERROR در اکسل
تابع IFERROR یکی از توابع کاربردی اکسل است که برای مدیریت خطاها در فرمولها استفاده میشود. این تابع به شما اجازه میدهد تا در صورت بروز هر نوع خطا، مقدار جایگزینی مشخص کنید و از نمایش پیامهای خطای خام (مثل #DIV/0! یا #N/A) جلوگیری شود. IFERROR از نسخههای Excel 2007 به بعد در دسترس است و در Google Sheets نیز مشابه عمل میکند.
ساختار و نحو تابع
نحو کلی تابع به شکل زیر است:
=IFERROR(value, value_if_error)در اینجا value فرمول یا سلولی است که ممکن است خطا تولید کند و value_if_error مقداری است که در صورت رخدادن هر نوع خطا نشان داده میشود.
مثالهای عملی پایه
- جلوگیری از تقسیم بر صفر:
=IFERROR(A2/B2, "—")این فرمول تقسیم A2 بر B2 را انجام میدهد؛ اگر B2 صفر یا خالی باشد و خطای #DIV/0! رخ دهد، بهجای خطا کاراکتر «—» نمایش داده میشود.
- نمایش متن معنادار برای VLOOKUP ناکام:
=IFERROR(VLOOKUP(D2,$A$2:$B$100,2,FALSE),"یافت نشد")اگر مقدار مورد جستجو در محدوده پیدا نشود و #N/A برگشت داده شود، متن «یافت نشد» نمایش داده میشود.
IFERROR در مقایسه با IF و ISERROR / ISNA
قبل از معرفی IFERROR، کاربران برای پوشش خطاها از ترکیبهای طولانیتری مانند IF(ISERROR(…), … , …) استفاده میکردند. IFERROR از نظر نوشتاری کوتاهتر و خواناتر است، اما نکته مهم این است که IFERROR هر نوع خطایی را پوشش میدهد. اگر بخواهید تنها نوع خاصی از خطا (مثلاً #N/A) را مدیریت کنید، بهتر است از IF و ISNA استفاده کنید تا سایر خطاها آشکار بمانند.
=IF(ISNA(VLOOKUP(D2,$A$2:$B$100,2,FALSE)),"یافت نشد",VLOOKUP(D2,$A$2:$B$100,2,FALSE))این مثال فقط خطای #N/A را پوشش میدهد و برای بروز خطای دیگر، اجازه میدهد خطا نمایش داده شود تا بتوان آن را عیبیابی کرد.
کاربردهای پیشرفته و ترکیبی
- ترکیب IFERROR با INDEX/MATCH:
=IFERROR(INDEX($B$2:$B$100, MATCH(E2,$A$2:$A$100,0)), "ندارد")این ترکیب جایگزین VLOOKUP شده و در صورت ناکامی مقدار «ندارد» نمایش میدهد.
- حذف خطا در مجموعه داده (آمادهسازی برای جمع):
=SUM(IFERROR(C2:C100,0))در این مثال IFERROR به ازای هر عنصر آرایهای که خطا بدهد مقدار صفر قرار میدهد تا SUM بتواند بدون خطا جمعزنی انجام دهد. توجه: در برخی نسخهها ممکن است نیاز به تبدیل به فرمول آرایهای باشد.
جدول انواع خطا و راهکارهای معمول
| نوع خطا | نماد | پیشنهاد برخورد |
|---|---|---|
| تقسیم بر صفر | #DIV/0! | IFERROR یا بررسی شرطی B0 |
| عدم یافتن مقدار | #N/A | استفاده از IFNA (در نسخههای جدید) یا IF(ISNA(…)) |
| نوع داده اشتباه | #VALUE! | بررسی نوع دادهها با ISTEXT/ISNUMBER |
| ارجاع نامعتبر | #REF! | اصلاح ارجاعات یا استفاده از توابع ایمن |
نکات حرفهای و بهترین روشها
- در مواردی که فقط یک نوع خطا باید پنهان شود (مثلاً #N/A در جستجوها)، از IFNA یا ترکیب IF+ISNA استفاده کنید تا سایر خطاها مخفی نشوند و قابل عیبیابی باشند.
- برای خوانایی، مقدار جایگزین را معنادار انتخاب کنید: خالی (“”)، متن قابل فهم (“یافت نشد”) یا مقدار عددی مناسب (0).
- استفاده افراطی از IFERROR روی فرمولهای سنگین ممکن است سرعت محاسبات را کاهش دهد؛ اگر امکان دارد خطا را در منبع رفع کنید یا از چکهای ساده (مثل IF(B2=0,…)) استفاده کنید.
- IFERROR خطای همه نوع را میپوشاند؛ این میتواند خطاهای جدی را مخفی کند، پس در داشبوردها و گزارشهای تولیدی با دقت استفاده کنید.
مثال کامل عملی
فرض کنید لیستی از شناسهها و قیمتها دارید و میخواهید سود را محاسبه کنید اما برخی قیمتها صفر یا خالیاند. ترکیبی موثر:
=IFERROR((C2-D2)/C2, "قیمت نامعتبر")این فرمول سود درصدی را محاسبه میکند و در صورت تقسیم بر صفر یا سایر خطاها، متن «قیمت نامعتبر» نمایش میدهد.
سازگاری و تاریخچه
IFERROR از Excel 2007 در دسترس است و در Google Sheets نیز مشابه وجود دارد. در نسخههای قدیمیتر اکسل باید از IF و ISERROR یا ISNA استفاده کرد.
چکلیست برای استفاده حرفهای
- آیا فقط یک نوع خطا باید گرفته شود؟ در این صورت از IFNA یا ISERROR مناسب استفاده کنید.
- آیا نمایش متن یا مقدار پیشفرض مفیدتر است؟ انتخاب کنید تا گزارشتان خواناتر شود.
- اگر فرمول پیچیده و سنگین است، بررسی کنید که استفاده از IFERROR باعث کاهش کارایی نشود.
- در گزارشهای رسمی، خطاها را کاملاً مخفی نکنید — ثبت و لاگ خطا برای تحلیل بعدی مفید است.
با رعایت این نکات میتوانید از IFERROR برای بهبود خوانایی دفترچههای اکسل، جلوگیری از پیغامهای خطای آزاردهنده و تولید خروجیهای قابلفهم برای کاربران نهایی بهره ببرید.
آیا این مطلب برای شما مفید بود ؟




