فهرست مطالب
این آموزش به کاربردهای عملی تابع Excel ISERROR میپردازد و نحوه آزمایش فرمولهای مختلف برای خطاها را نشان میدهد.
وقتی فرمولی می نویسید که اکسل آن را نمی فهمد یا نمی تواند محاسبه کند، با نشان دادن یک پیام خطا توجه شما را به مشکل جلب می کند. تابع ISERROR می تواند به شما در یافتن خطاها کمک کند و در صورت یافتن خطا، یک جایگزین ارائه دهید.
عملکرد ISERROR در Excel
عملکرد Excel ISERROR انواع خطاها را شناسایی می کند. از جمله #CALC!، #DIV/0!، #N/A، #NAME؟، #NUM!، #NULL!، #REF!، #VALUE!، و #SPILL!. نتیجه یک مقدار بولی است: اگر خطایی تشخیص داده شود درست است، در غیر این صورت نادرست است.
این تابع در همه نسخههای اکسل 2000 تا 2021 و اکسل 365 موجود است.
سینتکس ISERROR تابع به همین سادگی است:
ISERROR(value)که در آن value مقدار سلول یا فرمولی است که باید برای خطا بررسی شود.
فرمول ISERROR اکسل
برای ایجاد یک فرمول ISERROR در ساده ترین شکل آن، یک مرجع به سلولی که می خواهید خطاها را آزمایش کنید، ارائه دهید. به عنوان مثال:
=ISERROR(A2)
در صورت مشاهده هر گونه خطایی، TRUE را دریافت خواهید کرد. اگر در سلول آزمایش شده خطایی وجود نداشته باشد، FALSE دریافت خواهید کرد:
IF ISERROR فرمول در Excel
برای برگرداندن یک پیام سفارشی یا انجام یک محاسبه های مختلف زمانی که یک خطا رخ می دهد، از ISERROR همراه با تابع IF استفاده کنید. فرمول عمومی به صورت زیر است:
IF(ISERROR( فرمول(...), text_or_calculation_if_error, formula())به زبان انسانی ترجمه می شود، می گوید: اگر فرمول اصلی نتیجه داد در صورت خطا، متن مشخص شده را نمایش دهید یا محاسبه دیگری را اجرا کنید، در غیر این صورت یک نتیجه عادی از فرمول را برگردانید.
در تصویر زیر، تقسیم کل بر مقدار، چند خطا در Price ایجاد می کند. ستون :
برای جایگزینی همه کدهای خطای مختلف با یک متن سفارشی، میتوانید از فرمول IF ISERROR زیر استفاده کنید:
=IF(ISERROR(A2/B2), "Unknown", A2/B2)
در اکسل 2007 و نسخههای بعدی، با کمک تابع داخلی IFERROR میتوان به همین نتیجه رسید:
=IFERROR(A2/B2, "Unknown")
باید اشاره کرد که فرمول IFERROR کمی سریعتر اجرا می شود زیرا محاسبه A2/B2 را فقط یک بار انجام می دهد. در حالی که IF ISERROR آن را دو بار محاسبه می کند - اول برای دیدن اینکه آیا خطا ایجاد می کند و سپس دوباره اگر آزمایش FALSE است یا خیر.
فرمول IF ISERROR VLOOKUP
استفاده از ISERROR با VLOOKUP در واقع یک مورد خاص از IF IS است فرمول ERROR که در بالا مورد بحث قرار گرفت. هنگامی که تابع VLOOKUP نمی تواند مقدار جستجو را پیدا کند یا به هر دلیل دیگری خراب می شود، یک پیام متنی سفارشی را با استفاده از این نحو نمایش می دهید:
IF(ISERROR(VLOOKUP(…))، " custom_text", VLOOKUP(…))برای این مثال، اجازه دهید زمان ها را از جدول جستجو (D3:E10) به جدول اصلی (A3:B15) بکشیم. اگر مقدار جستجو (نام شرکت کننده) در آن وجود نداشته باشدجدول جستجو، "نامشخص" را برمی گردانیم.
=IF(ISERROR(VLOOKUP(A3, $D$3:$E$10, 2, FALSE)), "Not qualified", VLOOKUP(A3, $D$3:$E$10, 2, FALSE))
نکته. اگر میخواهید یک متن سفارشی را فقط زمانی نمایش دهید که مقدار جستجوگر پیدا نشد (خطای #N/A) با نادیده گرفتن سایر خطاها، از فرمول IFNA VLOOKUP در اکسل 2013 و جدیدتر یا IF ISNA VLOOKUP در نسخه قدیمیتر استفاده کنید. نسخه ها
IF فرمول ISERROR INDEX MATCH
هنگام جستجو با کمک ترکیب INDEX MATCH (یا فرمول INDEX XMATCH در اکسل 365)، میتوانید با استفاده از تکنیک مشابه، خطاهای احتمالی را به دام انداخته و مدیریت کنید - تابع ISERROR خطاها را بررسی می کند و IF متن مشخص شده را در صورت بروز هرگونه خطایی نشان می دهد.
IF(ISERROR(INDEX ( return_column , MATCH ( lookup_value , lookup_column ، 0))))، " متن_سفارشی "، INDEX ( ستون_بازگشت ، MATCH ( مقدار_جستجو ، ستون_جستجو ، 0)))فرض کنید جدول جستجو در ستون اول بار دارد. از آنجایی که VLOOKUP نمی تواند به سمت چپ خود نگاه کند، از فرمول INDEX MATCH برای کشیدن زمان ها از ستون D استفاده می کنیم:
=INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))
و سپس، آن را در فرمول عمومی فوق الذکر قرار می دهیم. برای جایگزینی خطاهای کشف شده با هر متنی که می خواهید:
=IF(ISERROR(INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0))), "Not qualified", INDEX($D$3:$D$10, MATCH(A3, $E$3:$E$10, 0)))
توجه داشته باشید. مانند فرمول IF ISERROR VLOOKUP، منطقی تر است که فقط خطاهای #N/A را به دام انداخته و مشکلات احتمالی را در خود فرمول پنهان نکنید. برای این کار، فرمول ریاضی INDEX خود را در IFNA در اکسل 2013 و بالاتر یا IF ISNA در نسخه های قبلی بپیچید.
اگرفرمول ISERROR بله/خیر
در تمام مثالهای قبلی، IF ISERROR نتیجه فرمول اصلی را در صورتی که خطا نباشد، برمیگرداند. با این حال، میتواند به روش دیگری نیز کار کند - در صورت خطا، چیزی را برمیگرداند و در صورت عدم خطا، چیز دیگری را برمیگرداند.
IF(ISERROR( formula (…))، " text_if_error " , " text_if_no_error ")در مجموعه داده نمونه ما، فرض کنید به زمان دقیق علاقه مند نیستید، فقط می خواهید بدانید که کدام شرکت کنندگان از گروه A واجد شرایط هستند و کدام ها واجد شرایط نیستند. برای انجام این کار، از تابع MATCH برای مقایسه نام در ستون A با لیست شرکت کنندگان واجد شرایط در ستون D استفاده کنید و سپس نتایج را به ISERROR ارائه دهید. اگر نام در ستون D موجود نیست (MATCH یک خطا را برمیگرداند)، تابع IF را دریافت کنید تا "خیر" یا "نداشتن واجد شرایط" را نمایش دهد. اگر نام در ستون D ظاهر شد (بدون خطایی)، "بله" یا "واجد شرایط" را برگردانید.
=IF(ISERROR(MATCH(A3, $D$3:$D$10, 0)), "No", "Yes" )
نحوه شمارش تعداد خطاها
برای دریافت تعداد خطاها در یک ستون خاص، باید یک محدوده را بررسی کنید، نه فقط یک سلول را. برای این کار، محدوده هدف را به ISERROR "تغذیه" کنید و مقادیر بولی بازگشتی را با استفاده از عملگر دوگانه یکنواخت (--) به 1 و 0 تبدیل کنید. تابع SUM یا SUMPRODUCT می تواند اعداد را جمع کند و نتیجه نهایی را ارائه دهد.
به عنوان مثال:
=SUM(--ISERROR(C2:C10))
لطفاً توجه داشته باشید، این فرمول به عنوان یک فرمول معمولی فقط در اکسل کار می کند. 365 و اکسل 2021 که از آرایه های پویا پشتیبانی می کنند. در اکسل 2019 و قبل از آن، شمابرای ایجاد یک فرمول آرایه باید Ctrl + Shift + Enter را فشار دهید (براکت های فرفری را به صورت دستی تایپ نکنید، این کار نمی کند!):
{=SUM(--ISERROR(C2:C10))}
به طور متناوب، می توانید از SUMPRODUCT استفاده کنید. تابعی که آرایه ها را به صورت بومی مدیریت می کند، بنابراین فرمول را می توان با کلید Enter معمول در همه نسخه ها تکمیل کرد:
=SUMPRODUCT(--ISERROR(C2:C10))
تفاوت بین ISERROR و IFERROR در اکسل
هر دو تابع ISERROR و IFERROR برای به دام انداختن و رسیدگی به خطاها در اکسل استفاده می شوند. تفاوت به شرح زیر است:
- در شکل خالص خود، ISERROR فقط آزمایش می کند که آیا مقدار یک خطا است یا خیر. این در همه نسخههای اکسل موجود است.
- عملکرد IFERROR برای سرکوب یا پنهان کردن خطاها طراحی شده است - هنگامی که یک خطا پیدا میشود، مقدار دیگری را که شما مشخص کردهاید برمیگرداند. این در اکسل 2007 و بالاتر موجود است.
در نگاه اول، IFERROR یک جایگزین کوتاه نویسی برای فرمول IF ISERROR به نظر می رسد. با یک نگاه دقیق تر، می توانید تفاوت را متوجه شوید:
- IFERROR به شما اجازه می دهد فقط value_if_error را مشخص کنید. اگر خطایی وجود نداشته باشد، همیشه نتیجه مقدار/فرمول آزمایش شده را برمیگرداند.
- IF ISERROR انعطافپذیری بیشتری را فراهم میکند و به شما امکان میدهد هر دو موقعیت را مدیریت کنید - در صورت خطا چه اتفاقی میافتد و اگر خطا نباشد چه اتفاقی میافتد.
برای نشان دادن بهتر موضوع، این فرمول ها را در نظر بگیرید:
=IFERROR(A1, "Calculation error")
=IF(ISERROR(A1), "Calculation error", A1)
این دو فرمول معادل هستند - هر دو یک مقدار فرمول محور را بررسی می کنند. در A1 و بازگشت"خطای محاسبه" اگر خطا است، در غیر این صورت - مقدار را برگردانید.
اما اگر بخواهید مقداری در A1 خطا نباشد، مقداری محاسبه انجام دهید چه؟ تابع IFERROR قادر به انجام این کار نیست. در مورد IF ISERROR کافیست در آخرین آرگومان محاسبه مورد نظر را تایپ کنید. به عنوان مثال:
=IF(ISERROR(A1), "Calculation error", A1*2)
همانطور که می بینید، این تنوع طولانی تر از فرمول IFERROR، که اغلب قدیمی در نظر گرفته می شود، همچنان می تواند مفید باشد :)
دانلودهای موجود
نمونههای فرمول ISERROR (فایل xlsx.)