بازدید: 109 بازدید
توابع اکسل

خلاصه

تابع IFNA در اکسل روشی ساده برای مدیریت اختصاصی خطای #N/A ارائه می‌دهد، بدون اینکه سایر خطاها را تحت تأثیر قرار دهد. با استفاده از این تابع می‌توانید یک مقدار یا پیام دلخواه تعیین کنید تا به جای خطای #N/A نمایش داده شود. اگر خطای #N/A رخ ندهد، فرمول خروجی معمولی خود را ارائه خواهد کرد.

کاربرد تابع IFNA

تابع IFNA مخصوص مدیریت خطای #N/A طراحی شده و سایر خطاها را نادیده می‌گیرد. زمانی که یک تابع خطای #N/A تولید می‌کند، معمولاً به این معناست که مقدار مورد نظر موجود نیست یا یافت نشده است.

در بسیاری از موارد، خطای #N/A اطلاعات مفیدی ارائه می‌دهد، زیرا نشان می‌دهد فرمول نمی‌تواند مقدار مشخصی را پیدا کند. با این حال، نمایش این خطا ممکن است برای کاربران نامطلوب باشد، چرا که به نظر می‌رسد مشکلی در کاربرگ وجود دارد.

تابع IFNA امکان ساده‌ای فراهم می‌کند تا خطای #N/A کنترل شده و نتیجه‌ای کاربرپسندتر نمایش داده شود. برخلاف تابع عمومی‌تر IFERROR، تابع IFNA تنها خطاهای #N/A را مدیریت می‌کند و سایر خطاها همچنان نمایش داده می‌شوند. این مزیت باعث می‌شود خطاهای مهم‌تر به‌طور ناخواسته پنهان نشوند.

تابع IFNA می‌تواند برای مدیریت خطاهای #N/A در فرمول‌هایی که جستجو انجام می‌دهند، مانند VLOOKUP، HLOOKUP، MATCH و غیره، استفاده شود. این تابع زمانی که فرمول خطای #N/A تولید کند، یک نتیجه سفارشی نمایش می‌دهد و در صورت عدم وجود خطا، خروجی معمولی فرمول را نشان می‌دهد.

مثال

به‌عنوان مثال، در کاربرگ نمایش داده شده، از VLOOKUP برای پیدا کردن قیمت یک کالا در محدوده‌ی B5:C16 استفاده می‌کنیم. فرمول قرار گرفته در سلول F5 که به سایر سلول‌ها کپی شده، به صورت زیر است:

=VLOOKUP(E5,$B$5:$C$16,2,FALSE)

توجه داشته باشید که فرمول در سه سلول اول به درستی عمل می‌کند و قیمت‌های گلابی (Pear)، سیب (Apple) و پرتقال (Orange) را برمی‌گرداند. اما در سلول F8، تابع VLOOKUP خطای #N/A را نشان می‌دهد، زیرا مقدار “Lime” در ستون B وجود ندارد. این خطا به معنای «یافت نشد» است، اما به‌صورت یک خطا در کاربرگ نمایش داده می‌شود.

با استفاده از تابع IFNA می‌توان این خطا را مدیریت کرده و یک نتیجه جایگزین مناسب به کاربر نمایش داد.

برای کنترل خطای #N/A با استفاده از تابع IFNA، فرمول اصلی را به‌عنوان آرگومان اول داخل IFNA قرار می‌دهیم. در این مثال، ابتدا تابع IFNA را به شکل زیر شروع می‌کنیم:

=IFNA(

سپس فرمول اصلی را به شکل زیر به‌عنوان آرگومان اول داخل تابع IFNA وارد می‌کنیم:

=IFNA(VLOOKUP(H5,$B$5:$C$16,2,FALSE),

سپس یک مقدار جایگزین به‌عنوان آرگومان دوم وارد می‌کنیم. در کاربرگ نمایش داده شده، ما یک رشته خالی (“”) قرار می‌دهیم تا خطای #N/A عملاً پنهان شود. فرمول نهایی در سلول I5 به این شکل خواهد بود:

=IFNA(VLOOKUP(H5,$B$5:$C$16,2,FALSE),””)

توجه داشته باشید که نتایج در سلول‌های I5، I6 و I7 بدون تغییر باقی مانده‌اند و VLOOKUP همچنان قیمت آیتم‌ها را مانند قبل برمی‌گرداند. با این حال، در سلول I8 اکنون یک سلول خالی مشاهده می‌شود.

داخل تابع IFNA، VLOOKUP همانند قبل خطای #N/A را تولید می‌کند، اما IFNA این خطا را شناسایی کرده و به جای آن یک رشته خالی (“”) بازمی‌گرداند که به صورت یک سلول خالی نمایش داده می‌شود.

اگر می‌خواهید به جای سلول خالی یک پیام مانند “Not found” نمایش داده شود، کافی است فرمول را به شکل زیر تغییر دهید:

=IFNA(VLOOKUP(H5,$B$5:$C$16,2,FALSE),”یافت نشد”)

توجه داشته باشید که پیام باید داخل دوبل کوتیشن (” “) قرار گیرد. تصویر زیر نشان می‌دهد که این فرمول تغییر یافته چگونه در کاربرگ عمل می‌کند:

مقایسه IFERROR و IFNA

مانند تابع IFNA، تابع IFERROR نیز برای مدیریت خطاها طراحی شده است. در کاربرگ نمایش داده شده، می‌توانیم به جای IFNA از IFERROR به شکل زیر استفاده کنیم:

=IFERROR(VLOOKUP(H8,$B$5:$C$16,2,FALSE),””)

توجه کنید که ساختار فرمول دقیقاً مشابه است. فرمول اصلی به‌عنوان آرگومان اول در داخل IFERROR قرار می‌گیرد و نتیجه سفارشی (“”) به‌عنوان آرگومان دوم مشخص می‌شود. با این حال، برخلاف IFNA، تابع IFERROR قادر است همه‌ی انواع خطاها را پوشش دهد. این ویژگی باعث می‌شود IFERROR ابزاری عمومی‌تر باشد، زیرا انواع مختلف خطاها را نیز مدیریت می‌کند.

برای مثال، اگر نام یک تابع اشتباه نوشته شود، اکسل معمولاً خطای #NAME? را نمایش می‌دهد:

=ZLOOKUP(H8,$B$5:$C$16,2,FALSE) // returns #NAME?

در مثال بالا، تابعی به نام “ZLOOKUP” وجود ندارد، بنابراین اکسل خطای #NAME? را نمایش می‌دهد. تابع IFERROR حتی این خطا را نیز می‌گیرد، در حالی که این خطا هیچ ارتباطی با عملکرد صحیح فرمول ندارد:

=IFERROR(ZLOOKUP(H8,$B$5:$C$16,2,FALSE),””) // returns “”

به عبارت دیگر، تابع IFERROR ممکن است به‌طور ناخواسته سایر خطاها را مخفی کند و مشکلات مهم را پنهان سازد. بنابراین، اگر هدف تنها مدیریت خطاهای #N/A باشد، استفاده از تابع IFNA گزینه منطقی‌تری است.

مطالعه بیشتر