ویدیو آموزشی
لینک ویدیو: https://youtu.be/5StPsrGY8iI
مدت ویدیو: 6:50
دسته بندی: فرمول نویسی در اکسل
مدرس: پویا حیاتی
آنچه در این ویدیو می بینید:
در این ویدیو خطاهای اکسل را با مثالهای ساده بررسی میکنیم و میبینید هر ارور چرا ایجاد میشود و به کدام بخش فرمول یا داده اشاره دارد.
فهرست مطالب و زمان بندی ویدیو
00:00 معرفی خطاهای رایج اکسل
00:16 خطای #NULL! و مشکل شناسایی محدوده
00:40 خطای #DIV/0! و تقسیم بر صفر
01:13 خطای #VALUE! و ترکیب متن با عملیات ریاضی
02:03 خطای #REF! و حذف مرجع سلول
02:39 خطای #NUM! و محاسبات عددی نامعتبر
02:53 خطای #N/A و پیدا نشدن نتیجه جستجو
03:34 خطای #SPILL! و مسدود بودن محدوده خروجی
04:52 خطای #CALC! و مشکل محاسبات آرایهای
05:11 نمایش ##### و کمبود عرض ستون
05:40 Circular Reference یا ارجاع حلقوی
06:30 جمعبندی و معرفی ادامه آموزشها
خطاهای اکسل پیامهایی هستند که نشان میدهند Excel نتوانسته است یک فرمول، آدرس سلول، محاسبه عددی یا نتیجه آرایهای را بهدرستی پردازش کند. مشاهده خطا در یک سلول لزوماً به معنی خرابشدن فایل نیست؛ بلکه هر خطا سرنخی درباره نوع مشکل موجود در فرمول یا دادهها ارائه میدهد.
برای مثال، تقسیم یک عدد بر صفر باعث نمایش خطای #DIV/0! میشود، حذف سلولی که در یک فرمول استفاده شده است میتواند خطای #REF! ایجاد کند و پیدانشدن یک مقدار در توابع جستوجو معمولاً با خطای #N/A همراه است.
برخی موارد مانند ##### در واقع خطای محاسباتی نیستند و بیشتر به نحوه نمایش مقدار در سلول مربوط میشوند. Circular Reference نیز یک کد خطا نیست؛ بلکه هشداری است که نشان میدهد یک فرمول بهصورت مستقیم یا غیرمستقیم به خودش وابسته شده است.
در این آموزش جامع، خطاهای #NULL!، #DIV/0!، #VALUE!، #REF!، #NAME?، #NUM!، #N/A، #SPILL!، #CALC!، علامتهای ##### و Circular Reference را بررسی میکنیم. برای هر مورد، دلیل ایجاد خطا، مثال، روش رفع، راه پیشگیری و فرمولهای جایگزین ارائه میشود.
خطاهای اکسل چیست؟
هنگامی که Excel نتواند نتیجه یک فرمول را محاسبه یا نمایش دهد، ممکن است یک کد خطا در سلول ظاهر شود. هر کد خطا معنی مشخصی دارد و به بخشی از فرمول یا دادهها اشاره میکند.
برای مثال، فرمول زیر تلاش میکند عدد 10 را بر صفر تقسیم کند:
=10/0
از آنجا که تقسیم بر صفر در محاسبات عددی تعریف نشده است، Excel خطای #DIV/0! را نمایش میدهد.
خطا ممکن است مستقیماً در فرمول ایجاد شود یا از سلول دیگری به فرمول منتقل شود. اگر سلول A2 دارای خطا باشد، فرمول زیر نیز معمولاً همان خطا را دریافت میکند:
=A2+10
چرا باید خطاهای اکسل را بشناسیم؟
- علت نمایش نتیجه نادرست را سریعتر پیدا میکنیم.
- میتوانیم فرمولهای خراب را قبل از انتشار گزارش اصلاح کنیم.
- از مخفیشدن اشتباهات مهم مالی و آماری جلوگیری میشود.
- فرمولهای جستوجو و محاسبات شرطی قابلاعتمادتر میشوند.
- میتوانیم برای خطاهای قابلپیشبینی پیام مناسب نمایش دهیم.
- عیبیابی فایلهای بزرگ و فرمولهای تو در تو سادهتر میشود.
- تفاوت خطای واقعی و مشکل نمایشی مانند ##### را تشخیص میدهیم.
- بهجای حذف یا مخفیکردن خطا، علت اصلی آن را برطرف میکنیم.
فهرست خطاهای مهم اکسل
- #NULL! برای اشتباه در تقاطع یا جداکردن محدودهها
- #DIV/0! برای تقسیم عدد بر صفر یا سلول خالی
- #VALUE! برای ناسازگاری نوع داده یا آرگومان نامعتبر
- #REF! برای آدرس یا مرجع نامعتبر
- #NAME? برای نام تابع، محدوده یا عبارت ناشناخته
- #NUM! برای مقدار عددی نامعتبر یا نتیجه خارج از محدوده
- #N/A برای در دسترس نبودن مقدار یا پیدانشدن نتیجه
- #SPILL! برای مسدودبودن محدوده خروجی آرایه پویا
- #CALC! برای خطاهای محاسباتی مربوط به آرایهها و فرمولهای جدید
- ##### برای کافینبودن عرض ستون یا نمایش تاریخ و زمان منفی
- Circular Reference برای وابستگی مستقیم یا غیرمستقیم فرمول به خودش
روش سریع تشخیص خطا در اکسل
هنگام مشاهده خطا، ابتدا خود کد خطا را بررسی کنید. سپس فرمول را در نوار فرمول بخوانید و سلولهای استفادهشده در آن را کنترل کنید.
- اگر خطا #DIV/0! است، مخرج کسر را بررسی کنید.
- اگر خطا #REF! است، بهدنبال ردیف، ستون یا شیت حذفشده بگردید.
- اگر خطا #NAME? است، نام تابع و محدودههای نامگذاریشده را بررسی کنید.
- اگر خطا #N/A است، مقدار جستوجو و جدول مرجع را کنترل کنید.
- اگر خطا #SPILL! است، سلولهای اطراف فرمول را خالی کنید.
- اگر ##### دیده میشود، ابتدا عرض ستون را افزایش دهید.
خطای #NULL! در اکسل
خطای #NULL! معمولاً زمانی نمایش داده میشود که Excel نتواند اشتراک دو محدوده را پیدا کند یا عملگرهای مرجع بهاشتباه استفاده شده باشند.
در Excel فاصله میان دو محدوده، یک عملگر واقعی به نام Intersection یا اشتراک است. اگر دو محدوده هیچ سلول مشترکی نداشته باشند، نتیجه ممکن است #NULL! باشد.
مثال ایجاد خطای #NULL!
=SUM(A2:A10 C2:C10)
در این فرمول میان دو محدوده یک فاصله قرار گرفته است. Excel تلاش میکند سلولهای مشترک میان ستون A و ستون C را پیدا کند. چون این محدودهها اشتراکی ندارند، خطای #NULL! ایجاد میشود.
علتهای رایج خطای #NULL!
- استفاده از فاصله بهجای ویرگول بین آرگومانها
- استفاده از فاصله بهجای دونقطه در محدوده
- تلاش برای محاسبه اشتراک دو محدوده بدون سلول مشترک
- وجود فاصله اضافی در بخش آدرسهای یک فرمول
- اشتباه در نوشتن محدودههای چندگانه
استفاده اشتباه از فاصله بهجای دونقطه
=SUM(A2 A10)
اگر هدف جمعکردن سلولهای A2 تا A10 باشد، باید از دونقطه استفاده شود:
=SUM(A2:A10)
استفاده اشتباه از فاصله بهجای ویرگول
=SUM(A2:A10 C2:C10)
اگر هدف جمعکردن هر دو محدوده باشد، باید آنها را با جداکننده آرگومانها از هم جدا کرد:
=SUM(A2:A10,C2:C10)
مثال صحیح استفاده از عملگر اشتراک
=SUM(B2:D10 C5:E15)
این دو محدوده دارای بخش مشترک هستند. Excel فقط سلولهایی را محاسبه میکند که در هر دو محدوده قرار دارند.
روش رفع خطای #NULL!
- فاصلههای موجود میان آدرس سلولها را بررسی کنید.
- برای تعریف محدوده پیوسته از دونقطه استفاده کنید.
- برای جداکردن آرگومانها از ویرگول یا جداکننده تنظیمشده در سیستم استفاده کنید.
- اگر از Intersection استفاده کردهاید، مطمئن شوید دو محدوده اشتراک دارند.
- فرمول را دوباره تایپ کنید تا فاصلههای ناخواسته حذف شوند.
خطای #DIV/0! در اکسل
خطای #DIV/0! زمانی ایجاد میشود که یک عدد بر صفر تقسیم شود یا مخرج فرمول به یک سلول خالی اشاره کند.
مثال ساده تقسیم بر صفر
=10/0
تقسیم بر سلولی که مقدار آن صفر است
=A2/B2
اگر مقدار B2 برابر صفر باشد، فرمول خطای #DIV/0! نمایش میدهد.
تقسیم بر سلول خالی
=A2/B2
اگر B2 خالی باشد، در بسیاری از محاسبات تقسیم بهصورت صفر در نظر گرفته میشود و خطای #DIV/0! ایجاد میشود.
علتهای رایج خطای #DIV/0!
- مخرج فرمول برابر صفر است.
- سلول مخرج هنوز تکمیل نشده است.
- فرمول به آدرس اشتباهی اشاره میکند.
- تابع AVERAGE هیچ مقدار عددی برای محاسبه ندارد.
- نتیجه یک تابع دیگر که در مخرج قرار گرفته صفر است.
- دادههای مخرج بهصورت متن ذخیره شدهاند و درست پردازش نمیشوند.
جلوگیری از تقسیم بر صفر با IF
=IF(B2=0,"",A2/B2)
در این فرمول، اگر مقدار B2 صفر باشد، خروجی خالی نمایش داده میشود. در غیر این صورت تقسیم انجام میشود.
نمایش پیام مناسب بهجای خطا
=IF(B2=0,"مخرج صفر است",A2/B2)
مدیریت خطا با IFERROR
=IFERROR(A2/B2,0)
اگر تقسیم باعث هر نوع خطایی شود، عدد صفر نمایش داده میشود.
تفاوت IF و IFERROR در مدیریت تقسیم بر صفر
تابع IF علت مشخص خطا را کنترل میکند و برای بررسی مخرج انتخاب دقیقتری است. IFERROR تمام خطاهای فرمول را مخفی میکند و ممکن است خطایی غیر از تقسیم بر صفر را نیز پنهان کند.
روش پیشنهادی برای گزارشهای مالی
=IF(B2=0,NA(),A2/B2)
در بعضی گزارشها بهتر است بهجای صفر، خطای #N/A نمایش داده شود تا مشخص باشد نتیجه واقعاً قابل محاسبه نبوده است. نمودارهای اکسل نیز ممکن است با #N/A رفتار مناسبتری نسبت به صفر داشته باشند.
رفع خطای #DIV/0! در تابع AVERAGE
اگر محدوده فاقد عدد باشد، میانگین قابل محاسبه نیست.
=AVERAGE(B2:B10)
برای مدیریت وضعیت خالی میتوان ابتدا تعداد مقادیر عددی را بررسی کرد:
=IF(COUNT(B2:B10)=0,"داده عددی وجود ندارد",AVERAGE(B2:B10))
خطای #VALUE! در اکسل
خطای #VALUE! معمولاً به این معنی است که نوع یکی از دادهها، آرگومانها یا عملگرهای فرمول با محاسبه موردنظر سازگار نیست.
برای مثال، اگر یک متن غیرعددی را در یک عدد ضرب کنیم، Excel نمیتواند نتیجه عددی ایجاد کند.
مثال ایجاد خطای #VALUE!
="متن"*10
ضرب عدد در سلول متنی
=A2*B2
اگر A2 عدد و B2 شامل متن غیرعددی باشد، ممکن است خطای #VALUE! نمایش داده شود.
علتهای رایج خطای #VALUE!
- وجود متن بهجای عدد در محاسبات
- وجود فاصله یا کاراکتر نامرئی در دادهها
- ثبت تاریخ بهصورت متن
- استفاده از آرگومان نامناسب در یک تابع
- ناسازگاری ابعاد آرایهها
- استفاده از عملگر ریاضی روی داده متنی
- استفاده اشتباه از فرمول آرایهای در نسخههای قدیمی
- وجود علامتهای اضافی مانند واحد پول در متن عددی
عدد ذخیرهشده بهصورت متن
ممکن است سلول ظاهراً عدد داشته باشد، اما نوع آن Text باشد. برای تبدیل متن عددی به عدد میتوان از VALUE استفاده کرد:
=VALUE(A2)
تبدیل متن عددی با ضرب در یک
=A2*1
تبدیل متن عددی با دو علامت منفی
=--A2
این روشها زمانی کار میکنند که متن واقعاً قابل تبدیل به عدد باشد.
حذف فاصلههای اضافی
=TRIM(A2)
حذف کاراکترهای غیرقابل چاپ
=CLEAN(A2)
ترکیب TRIM و CLEAN
=TRIM(CLEAN(A2))
حذف فاصله غیرشکننده از دادههای وب
=SUBSTITUTE(A2,CHAR(160),"")
تبدیل عدد دارای جداکننده به مقدار عددی
=NUMBERVALUE(A2)
تشخیص نوع داده سلول
=ISNUMBER(A2)
=ISTEXT(A2)
با این توابع میتوان مشخص کرد که مقدار سلول عدد است یا متن.
مدیریت خطای #VALUE! با IFERROR
=IFERROR(A2*B2,"داده نامعتبر است")
بهتر است قبل از استفاده از IFERROR، علت اصلی ناسازگاری داده را پیدا کنید. مخفیکردن خطا بدون اصلاح داده ممکن است نتیجه گزارش را نادرست کند.
بررسی عددیبودن ورودی قبل از محاسبه
=IF(AND(ISNUMBER(A2),ISNUMBER(B2)),A2*B2,"ورودی عددی نیست")
خطای #REF! در اکسل
خطای #REF! نشان میدهد یک مرجع یا آدرس استفادهشده در فرمول دیگر معتبر نیست. این اتفاق معمولاً پس از حذف سلول، ردیف، ستون یا شیتی رخ میدهد که فرمول به آن وابسته بوده است.
مثال فرمول سالم
=A2+B2
اگر ستون B حذف شود، بخشی از فرمول ممکن است به #REF! تبدیل شود.
نمایش مرجع حذفشده در فرمول
=A2+#REF!
علتهای رایج خطای #REF!
- حذف ردیف یا ستون مرجع
- حذف شیت استفادهشده در فرمول
- انتقال نادرست سلولها با Cut و Paste
- استفاده از شماره ستون نامعتبر در VLOOKUP
- استفاده از شماره ردیف یا ستون خارج از محدوده در INDEX
- ارجاع به فایل خارجی حذفشده یا جابهجاشده
- استفاده از INDIRECT برای فایل بسته یا آدرس نامعتبر
- کپیکردن فرمول به محلی که آدرس نسبی آن از محدوده خارج میشود
خطای #REF! در VLOOKUP
=VLOOKUP(E2,A2:C100,5,FALSE)
محدوده A2:C100 فقط سه ستون دارد؛ اما فرمول درخواست ستون پنجم را داده است. بنابراین شماره ستون معتبر نیست.
فرمول صحیح VLOOKUP
=VLOOKUP(E2,A2:C100,3,FALSE)
خطای #REF! در INDEX
=INDEX(A2:C10,3,5)
محدوده فقط سه ستون دارد، اما فرمول ستون پنجم را درخواست کرده است.
فرمول صحیح INDEX
=INDEX(A2:C10,3,2)
خطای #REF! در INDIRECT
=INDIRECT(A2)
اگر متن موجود در A2 یک آدرس معتبر نباشد، INDIRECT خطای #REF! برمیگرداند.
روش رفع خطای #REF!
- فرمول را در نوار فرمول بررسی کنید و بخش #REF! را با آدرس صحیح جایگزین کنید.
- اگر عملیات حذف تازه انجام شده است، از Undo استفاده کنید.
- شماره ستون VLOOKUP را با تعداد ستونهای جدول مقایسه کنید.
- شماره ردیف و ستون INDEX را بررسی کنید.
- نام شیت و فایل خارجی را کنترل کنید.
- برای جلوگیری از حذف ناخواسته، ساختار فایل را محافظت کنید.
- در فرمولهای جستوجو از XLOOKUP استفاده کنید تا وابستگی به شماره ستون کاهش یابد.
جایگزینی VLOOKUP با XLOOKUP
=XLOOKUP(E2,A2:A100,C2:C100,"یافت نشد")
در XLOOKUP محدوده جستوجو و محدوده نتیجه جداگانه مشخص میشوند و حذف یا جابهجایی بعضی ستونهای میانی کمتر باعث خرابشدن فرمول میشود.
پیشگیری از خطای #REF!
- قبل از حذف ستون یا شیت، وابستگی فرمولها را بررسی کنید.
- از Trace Dependents برای مشاهده سلولهای وابسته استفاده کنید.
- از Table و Structured Reference برای ساختارهای قابل توسعه استفاده کنید.
- از نامگذاری محدودهها برای افزایش خوانایی استفاده کنید.
- پس از تغییر ساختار فایل، فرمولهای اصلی را آزمایش کنید.
خطای #NAME? در اکسل
خطای #NAME? زمانی ایجاد میشود که Excel بخشی از فرمول را بهعنوان نام تابع، محدوده یا عبارت معتبر تشخیص ندهد.
اشتباه در نوشتن نام تابع
=SUUM(A2:A10)
نام صحیح تابع SUM است:
=SUM(A2:A10)
علتهای رایج خطای #NAME?
- اشتباه تایپی در نام تابع
- اشتباه در نام Named Range
- قرارندادن متن داخل علامت نقلقول
- استفاده از تابعی که در نسخه Excel پشتیبانی نمیشود
- حذف یک محدوده نامگذاریشده
- غیرفعالبودن افزونه موردنیاز تابع
- اشتباه در نوشتن نام شیت یا تابع سفارشی
- استفاده از نام تعریفنشده در فرمول
فراموشکردن نقلقول متن
=IF(A2=تهران,"بله","خیر")
Excel عبارت تهران را بهعنوان یک نام تعریفشده جستوجو میکند. چون چنین نامی وجود ندارد، خطای #NAME? ایجاد میشود.
فرمول صحیح
=IF(A2="تهران","بله","خیر")
اشتباه در Named Range
اگر محدودهای با نام SalesAmount تعریف شده باشد، نوشتن نام اشتباه باعث خطا میشود:
=SUM(SaleAmount)
نام صحیح:
=SUM(SalesAmount)
استفاده از تابع پشتیبانینشده
=XLOOKUP(E2,A2:A100,B2:B100)
اگر نسخه Excel از XLOOKUP پشتیبانی نکند، ممکن است نام تابع شناخته نشود یا فرمول با پیشوند سازگاری نمایش داده شود.
روش رفع خطای #NAME?
- نام تابع را از نظر املایی بررسی کنید.
- از پیشنهاد خودکار Excel هنگام تایپ تابع استفاده کنید.
- متنهای ثابت را داخل نقلقول دوتایی قرار دهید.
- از بخش Name Manager نام محدودهها را بررسی کنید.
- نسخه Excel و پشتیبانی آن از تابع موردنظر را کنترل کنید.
- افزونههای موردنیاز را فعال کنید.
- نام توابع سفارشی VBA یا LAMBDA را بررسی کنید.
بررسی نامها با Name Manager
برای مشاهده نامهای تعریفشده، به تب Formulas بروید و Name Manager را باز کنید. نام، محدوده و خطاهای موجود در بخش Refers To را بررسی کنید.
خطای #NUM! در اکسل
خطای #NUM! زمانی نمایش داده میشود که یک تابع یا فرمول با مقدار عددی نامعتبر روبهرو شود، نتیجه از محدوده قابل پردازش خارج باشد یا یک محاسبه تکراری به نتیجه نرسد.
جذر عدد منفی
=SQRT(-4)
تابع SQRT در محاسبات عددی معمولی نمیتواند جذر عدد منفی را برگرداند؛ بنابراین #NUM! نمایش داده میشود.
فرمول صحیح برای قدرمطلق مقدار
=SQRT(ABS(A2))
این فرمول فقط زمانی منطقی است که استفاده از قدرمطلق با مسئله واقعی سازگار باشد.
نتیجه عددی بسیار بزرگ
=10^1000
اگر نتیجه عددی از محدوده قابل ذخیره Excel خارج شود، خطای #NUM! ایجاد میشود.
علتهای رایج خطای #NUM!
- ورودی عددی خارج از محدوده مجاز تابع
- جذر عدد منفی
- لگاریتم عدد صفر یا منفی
- نتیجه عددی بسیار بزرگ یا بسیار کوچک
- همگرا نشدن توابعی مانند IRR و RATE
- استفاده از احتمال نامعتبر در توابع آماری
- واردکردن تعداد تکرار یا پارامتر عددی نامعتبر
لگاریتم مقدار نامعتبر
=LN(-10)
برای تابع LN ورودی باید عدد مثبت باشد.
بررسی ورودی قبل از محاسبه لگاریتم
=IF(A2>0,LN(A2),"ورودی باید مثبت باشد")
خطای #NUM! در تابع IRR
=IRR(B2:B20)
اگر جریانهای نقدی ساختار مناسبی نداشته باشند یا تابع نتواند به نتیجه همگرا شود، ممکن است #NUM! نمایش داده شود.
استفاده از حدس اولیه در IRR
=IRR(B2:B20,0.15)
تغییر Guess ممکن است در بعضی موارد به همگرایی کمک کند؛ اما ابتدا باید منطقیبودن جریانهای نقدی بررسی شود.
روش رفع خطای #NUM!
- محدوده مجاز آرگومان تابع را بررسی کنید.
- ورودیهای منفی، صفر یا خارج از بازه را کنترل کنید.
- در توابع مالی مقدار Guess مناسب وارد کنید.
- از توابع مناسب اعداد مختلط برای جذر منفی استفاده کنید.
- واحد و مقیاس اعداد را کاهش دهید.
- فرمول را به چند بخش کوچکتر تقسیم کنید.
- مستندات تابع را برای محدودیت ورودی بررسی کنید.
جذر عدد منفی با تابع اعداد مختلط
=IMSQRT("-4")این روش برای محاسباتی مناسب است که اعداد مختلط در آنها کاربرد دارند.
خطای #N/A در اکسل
خطای #N/A مخفف Not Available است و نشان میدهد مقدار موردنظر در دسترس نیست یا تابع جستوجو نتوانسته است تطبیق مناسبی پیدا کند.
این خطا الزاماً به معنی خراببودن فرمول نیست. گاهی #N/A نتیجه منطقی این است که داده موردنظر هنوز ثبت نشده یا در جدول وجود ندارد.
مثال ایجاد خطای #N/A با XLOOKUP
=XLOOKUP(E2,A2:A100,B2:B100)
اگر مقدار E2 در محدوده A2:A100 وجود نداشته باشد، تابع ممکن است #N/A برگرداند.
نمایش پیام در XLOOKUP
=XLOOKUP(E2,A2:A100,B2:B100,"یافت نشد")
خطای #N/A در VLOOKUP
=VLOOKUP(E2,A2:C100,3,FALSE)
اگر مقدار جستوجو در ستون اول جدول پیدا نشود، #N/A نمایش داده میشود.
علتهای رایج خطای #N/A
- مقدار جستوجو در جدول وجود ندارد.
- عدد در یک طرف بهصورت متن ذخیره شده است.
- فاصله اضافی در متن وجود دارد.
- کاراکترهای فارسی و عربی مشابه با یکدیگر اشتباه شدهاند.
- حالت تطبیق تابع جستوجو درست انتخاب نشده است.
- محدوده جستوجو ناقص یا اشتباه است.
- مقادیر در جستوجوی تقریبی مرتب نشدهاند.
- طول آرایه جستوجو و نتیجه در XLOOKUP یکسان نیست.
مدیریت #N/A با IFNA
=IFNA(VLOOKUP(E2,A2:C100,3,FALSE),"یافت نشد")
IFNA فقط خطای #N/A را مدیریت میکند و سایر خطاها را نمایش میدهد. این ویژگی برای عیبیابی بهتر از IFERROR است.
مدیریت #N/A با IFERROR
=IFERROR(VLOOKUP(E2,A2:C100,3,FALSE),"خطا در جستوجو")
IFERROR تمام خطاهای فرمول را مخفی میکند؛ بنابراین ممکن است خطای #REF! یا #VALUE! نیز با همان پیام نمایش داده شود.
رفع فاصلههای اضافی پیش از جستوجو
=XLOOKUP(TRIM(E2),A2:A100,B2:B100,"یافت نشد")
اگر محدوده جستوجو نیز دارای فاصله اضافی باشد، بهتر است ابتدا دادههای آن ستون پاکسازی شوند.
تبدیل متن عددی به عدد
=XLOOKUP(VALUE(E2),A2:A100,B2:B100,"یافت نشد")
استفاده آگاهانه از تابع NA
=NA()
تابع NA عمداً خطای #N/A ایجاد میکند. این روش زمانی مفید است که میخواهید نشان دهید دادهای موجود نیست و نباید با صفر اشتباه گرفته شود.
روش رفع خطای #N/A
- وجود مقدار جستوجو در جدول را بررسی کنید.
- نوع داده دو طرف جستوجو را یکسان کنید.
- فاصلهها و کاراکترهای نامرئی را حذف کنید.
- از FALSE یا حالت تطبیق دقیق استفاده کنید.
- محدوده جستوجو و نتیجه را کنترل کنید.
- در صورت طبیعیبودن نبود نتیجه، از IFNA استفاده کنید.
- برای XLOOKUP آرگومان if_not_found را تکمیل کنید.
تفاوت #N/A و صفر
صفر یک مقدار عددی واقعی است؛ اما #N/A نشان میدهد مقدار موجود یا قابل دسترسی نیست. جایگزینکردن همه #N/Aها با صفر میتواند میانگین، نمودار یا گزارش را تغییر دهد.
برای مثال، اگر فروش یک شعبه هنوز گزارش نشده باشد، صفر به معنی نبود فروش است؛ اما #N/A یعنی اطلاعات فروش در دسترس نیست.
خطای #SPILL! در اکسل
خطای #SPILL! به فرمولهای آرایه پویا مربوط است. این خطا زمانی ایجاد میشود که یک فرمول چند نتیجه تولید میکند، اما Excel نمیتواند نتایج را در سلولهای اطراف گسترش دهد.
مثال آرایه پویا
=SEQUENCE(5)
این فرمول پنج عدد تولید میکند و نتایج باید در پنج سلول زیر فرمول قرار بگیرند. اگر یکی از این سلولها خالی نباشد، #SPILL! نمایش داده میشود.
مثال با تابع FILTER
=FILTER(A2:C100,C2:C100>1000000)
FILTER ممکن است چندین ردیف برگرداند. محدوده مقصد باید برای نمایش همه نتایج خالی باشد.
علتهای رایج خطای #SPILL!
- وجود داده در محدوده خروجی
- وجود فاصله یا کاراکتر نامرئی در یک سلول مقصد
- وجود سلولهای Merge شده
- قرارداشتن فرمول آرایه پویا داخل Excel Table
- خروجی فرمول از انتهای شیت عبور میکند.
- اندازه آرایه میان محاسبات تغییر میکند.
- محدوده خروجی برای فرمول کافی نیست.
- وجود PivotTable یا عنصر دیگری در مسیر خروجی
رفع #SPILL! با خالیکردن محدوده
سلول دارای خطا را انتخاب کنید. Excel معمولاً محدودهای را که باید نتایج در آن نمایش داده شوند مشخص میکند. محتوای سلولهای مسدودکننده را حذف یا جابهجا کنید.
خطای #SPILL! به دلیل Merge
فرمولهای آرایه پویا نمیتوانند نتایج را داخل محدودهای که دارای سلول Merge شده است گسترش دهند. سلولها را Unmerge کرده یا فرمول را به محل دیگری منتقل کنید.
خطای #SPILL! داخل Table
فرمولهای آرایه پویا معمولاً نمیتوانند داخل ستونهای محاسباتی Excel Table گسترش پیدا کنند. فرمول را بیرون از Table قرار دهید یا Table را به محدوده معمولی تبدیل کنید.
خروجی فراتر از انتهای شیت
=SEQUENCE(100)
اگر این فرمول بسیار نزدیک به آخرین سطر شیت نوشته شود، فضای کافی برای نمایش صد نتیجه وجود ندارد. فرمول را به سطر بالاتری منتقل کنید یا اندازه خروجی را کاهش دهید.
استفاده نادرست از کل ستون در فرمول آرایهای
=A:A*B:B
این فرمول ممکن است بیش از یک میلیون نتیجه تولید کند. اگر فرمول از سطر اول شروع نشده باشد، خروجی از انتهای شیت عبور میکند.
محدودکردن محدوده فرمول
=A2:A1000*B2:B1000
آرایه با اندازه نامشخص
برخی توابع ناپایدار ممکن است در هر محاسبه اندازه متفاوتی ایجاد کنند و Excel نتواند اندازه نهایی Spill Range را تعیین کند.
=SEQUENCE(RANDBETWEEN(1,1000))
در چنین شرایطی بهتر است اندازه خروجی را در یک سلول ثابت محاسبه کرده یا از مقدار پایدار استفاده کنید.
روش رفع خطای #SPILL!
- محدوده خروجی را کاملاً خالی کنید.
- سلولهای Merge شده را جدا کنید.
- فرمول را خارج از Table قرار دهید.
- محدودههای کامل ستونی را به محدوده محدود تبدیل کنید.
- فرمول را از لبه پایین یا راست شیت دور کنید.
- اندازه آرایه را ثابت یا قابل پیشبینی کنید.
- سلول خطا را انتخاب و محدوده Spill را بررسی کنید.
عملگر Spill Range در اکسل
پس از ایجاد موفق یک آرایه پویا، میتوان با علامت # به کل محدوده خروجی آن اشاره کرد.
اگر فرمول آرایهای در E2 قرار داشته باشد:
=SUM(E2#)
این فرمول تمام محدوده Spill شده از E2 را جمع میکند. علامت # در اینجا خطا نیست؛ بلکه بخشی از آدرس آرایه پویا است.
خطای #CALC! در اکسل
خطای #CALC! معمولاً در فرمولهای آرایه پویا، LAMBDA و بعضی محاسبات جدید Excel دیده میشود. این خطا نشان میدهد موتور محاسبات با وضعیتی روبهرو شده که نمیتواند نتیجه معتبر آرایهای ایجاد کند.
علتهای رایج خطای #CALC!
- تابع FILTER هیچ نتیجهای پیدا نکرده و آرگومان if_empty مشخص نشده است.
- فرمول یک آرایه خالی ایجاد کرده است.
- آرایهای درون یک آرایه دیگر قرار گرفته است.
- فرمول تلاش میکند آرایهای از محدودهها ایجاد کند.
- تابع LAMBDA تعریف شده اما فراخوانی نشده است.
- خروجی تابع سفارشی ساختار پشتیبانینشده دارد.
- موتور محاسبات با خطای آرایهای نامشخص روبهرو شده است.
خطای #CALC! در FILTER
=FILTER(A2:C100,C2:C100>10000000)
اگر هیچ ردیفی شرط را رعایت نکند و آرگومان نتیجه خالی وارد نشده باشد، ممکن است #CALC! نمایش داده شود.
رفع خطا با آرگومان if_empty
=FILTER(A2:C100,C2:C100>10000000,"موردی یافت نشد")
تعریف LAMBDA بدون اجرا
=LAMBDA(x,x*2)
این فرمول فقط یک LAMBDA تعریف میکند، اما مقداری برای x ارسال نمیکند. برای آزمایش مستقیم باید تابع فراخوانی شود:
=LAMBDA(x,x*2)(10)
ذخیره LAMBDA در Name Manager
روش حرفهای این است که LAMBDA را در Name Manager با یک نام ذخیره کرده و سپس مانند یک تابع معمولی فراخوانی کنید.
آرایه تو در تو
برخی توابع اجازه نمیدهند هر عنصر یک آرایه، خودش یک آرایه مستقل باشد. در چنین شرایطی باید ساختار خروجی را با توابعی مانند HSTACK، VSTACK، MAP، BYROW یا BYCOL بازطراحی کرد.
مدیریت #CALC! با IFERROR
=IFERROR(FILTER(A2:C100,C2:C100>10000000),"موردی یافت نشد")
با وجود امکان استفاده از IFERROR، بهتر است برای FILTER از آرگومان if_empty استفاده شود؛ زیرا علت نبود نتیجه را دقیقتر مدیریت میکند.
روش رفع خطای #CALC!
- در FILTER آرگومان if_empty را وارد کنید.
- ساختار آرایه را سادهتر کنید.
- LAMBDA را با آرگومان مناسب فراخوانی کنید.
- آرایههای تو در تو را با HSTACK یا VSTACK بازسازی کنید.
- فرمول را به چند مرحله یا ستون کمکی تقسیم کنید.
- نسخه Excel را از نظر پشتیبانی تابع بررسی کنید.
- فرمول را با Evaluate Formula مرحلهبهمرحله آزمایش کنید.
تفاوت خطای #SPILL! و #CALC!
#SPILL! معمولاً به فضای نمایش نتایج مربوط است. فرمول نتیجه دارد، اما نمیتواند آن را در سلولهای اطراف قرار دهد.
#CALC! بیشتر به ساختار یا منطق محاسبات آرایهای مربوط است. ممکن است آرایه خالی، ساختار پشتیبانینشده یا LAMBDA ناقص ایجاد شده باشد.
- در #SPILL! ابتدا سلولهای اطراف را بررسی کنید.
- در #CALC! ابتدا ساختار خود فرمول را بررسی کنید.
- #SPILL! معمولاً با خالیکردن محدوده حل میشود.
- #CALC! معمولاً به بازنویسی یا تکمیل فرمول نیاز دارد.
علامت ##### در اکسل
نمایش چند علامت # پشت سر هم معمولاً خطای فرمول نیست. این حالت بیشتر زمانی رخ میدهد که عرض ستون برای نمایش مقدار کافی نباشد.
علتهای رایج نمایش #####
- عرض ستون برای نمایش عدد کافی نیست.
- عرض ستون برای نمایش تاریخ یا زمان کافی نیست.
- قالب عدد دارای رقمها یا اعشار زیادی است.
- نتیجه تاریخ یا زمان منفی است.
- مقدار بسیار بزرگ است و در قالب فعلی جا نمیشود.
رفع مشکل با افزایش عرض ستون
مرز سمت راست عنوان ستون را بکشید یا روی آن دوبار کلیک کنید تا AutoFit Column Width اجرا شود.
کاهش تعداد رقم اعشار
از گزینه Decrease Decimal در تب Home استفاده کنید یا قالب عدد را تغییر دهید.
استفاده از قالب عدد کوتاهتر
برای اعداد بزرگ میتوان از قالب Scientific، Accounting یا قالب سفارشی کوتاهتر استفاده کرد.
تاریخ و زمان منفی
=A2-B2
اگر A2 از B2 کوچکتر باشد و سلول در قالب تاریخ یا زمان قرار داشته باشد، ممکن است ##### نمایش داده شود.
بررسی منفیبودن اختلاف زمان
=IF(A2>=B2,A2-B2,"اختلاف منفی است")
نمایش اختلاف مطلق زمان
=ABS(A2-B2)
استفاده از ABS فقط زمانی صحیح است که جهت اختلاف اهمیت نداشته باشد.
تفاوت ##### با خطای واقعی
در ##### معمولاً مقدار یا فرمول سالم است و فقط نمایش آن مشکل دارد. با انتخاب سلول میتوان مقدار واقعی را در Formula Bar مشاهده کرد.
Circular Reference در اکسل چیست؟
Circular Reference یا ارجاع حلقوی زمانی ایجاد میشود که یک فرمول بهصورت مستقیم یا غیرمستقیم به سلول خودش وابسته باشد. در این شرایط Excel برای محاسبه نتیجه باید ابتدا نتیجه همان سلول را بداند و یک حلقه محاسباتی ایجاد میشود.
ارجاع حلقوی مستقیم
اگر فرمول زیر در سلول A2 نوشته شود:
=A2+10
سلول A2 برای محاسبه خودش دوباره به A2 مراجعه میکند.
ارجاع حلقوی در تابع SUM
اگر فرمول زیر در سلول D10 نوشته شود:
=SUM(D2:D10)
محدوده جمع شامل خود سلول D10 است؛ بنابراین Circular Reference ایجاد میشود.
فرمول صحیح
=SUM(D2:D9)
ارجاع حلقوی غیرمستقیم
ممکن است A2 به B2 وابسته باشد، B2 به C2 و C2 دوباره به A2 اشاره کند. در این حالت حلقه مستقیم دیده نمیشود، اما زنجیره فرمولها در نهایت به نقطه شروع بازمیگردد.
مثال حلقه غیرمستقیم
فرمول سلول A2:
=B2+1
فرمول سلول B2:
=C2+1
فرمول سلول C2:
=A2+1
علتهای رایج Circular Reference
- قرارگرفتن سلول نتیجه داخل محدوده SUM
- ارجاع مستقیم فرمول به سلول خودش
- وابستگی حلقوی میان چند شیت
- کپی اشتباه فرمول با آدرس نسبی
- انتقال فرمول به داخل محدوده منبع
- طراحی اشتباه محاسبات مانده، سود یا موجودی
- استفاده عمدی از محاسبات تکراری بدون فعالکردن Iteration
پیداکردن Circular Reference
برای پیدا کردن ارجاعهای حلقوی به تب Formulas بروید، گزینه Error Checking را باز کنید و Circular References را انتخاب کنید. Excel فهرستی از سلولهای شناساییشده را نمایش میدهد.
اگر فهرست خالی است اما هشدار وجود دارد، ممکن است ارجاع حلقوی در شیت دیگری قرار داشته باشد یا زنجیره پیچیدهای ایجاد شده باشد.
استفاده از Trace Precedents
Trace Precedents سلولهایی را نشان میدهد که فرمول فعلی از آنها استفاده میکند.
استفاده از Trace Dependents
Trace Dependents سلولهایی را نشان میدهد که به سلول انتخابشده وابستهاند.
این ابزارها برای دنبالکردن زنجیره ارجاع حلقوی بسیار مفید هستند.
رفع Circular Reference
- سلول نتیجه را از محدوده محاسبه خارج کنید.
- آدرسهای نسبی و مطلق را بررسی کنید.
- فرمول را به سلول دیگری منتقل کنید.
- محاسبه را به چند مرحله تقسیم کنید.
- از ستون کمکی برای شکستن حلقه استفاده کنید.
- زنجیره وابستگی میان شیتها را بررسی کنید.
- در صورت غیرعمدیبودن حلقه، Iterative Calculation را فعال نکنید.
نمونه اصلاح جمع ستون
فرمول اشتباه در B10:
=SUM(B2:B10)
فرمول صحیح:
=SUM(B2:B9)
محاسبات تکراری یا Iterative Calculation
در بعضی مدلهای مالی و محاسباتی، Circular Reference بهصورت عمدی استفاده میشود. در این شرایط میتوان Iterative Calculation را فعال کرد تا Excel فرمول را چند بار محاسبه کند و به نتیجه نزدیک شود.
برای فعالکردن این قابلیت در Excel ویندوز معمولاً باید از مسیر File، Options، Formulas و Enable iterative calculation استفاده شود.
Maximum Iterations
این گزینه مشخص میکند Excel حداکثر چند بار محاسبه را تکرار کند.
Maximum Change
این گزینه میزان تغییر قابل قبول میان دو مرحله محاسبه را تعیین میکند. هرچه مقدار کوچکتر باشد، دقت بیشتر و زمان محاسبه طولانیتر خواهد بود.
فعالکردن Iterative Calculation بدون شناخت مدل ممکن است خطاهای واقعی را پنهان کند. در فایلهای معمولی بهتر است Circular Reference حذف شود.
تفاوت خطاهای اصلی اکسل
#NULL!
مشکل در اشتراک یا جداکردن محدودهها است.
#DIV/0!
فرمول بر صفر یا سلول خالی تقسیم کرده است.
#VALUE!
نوع داده یا آرگومان با محاسبه سازگار نیست.
#REF!
آدرس استفادهشده در فرمول دیگر معتبر نیست.
#NAME?
نام تابع، محدوده یا عبارت برای Excel ناشناخته است.
#NUM!
مقدار عددی یا نتیجه محاسبه از محدوده معتبر خارج است.
#N/A
مقدار موردنظر پیدا نشده یا در دسترس نیست.
#SPILL!
خروجی چندسلولی فرمول نمیتواند در محدوده مقصد گسترش پیدا کند.
#CALC!
ساختار محاسبات آرایهای یا فرمول جدید قابل پردازش نیست.
#####
اغلب مشکل نمایش مقدار یا عرض ستون است، نه خطای فرمول.
Circular Reference
فرمول بهصورت مستقیم یا غیرمستقیم به خودش وابسته است.
تابع IFERROR در اکسل
تابع IFERROR برای نمایش یک مقدار جایگزین در صورت ایجاد خطا استفاده میشود.
ساختار تابع IFERROR
=IFERROR(value,value_if_error)
مدیریت خطای تقسیم
=IFERROR(A2/B2,0)
نمایش پیام برای فرمول جستوجو
=IFERROR(VLOOKUP(E2,A2:C100,3,FALSE),"یافت نشد")
نمایش خروجی خالی
=IFERROR(A2/B2,"")
خطر استفاده بیشازحد از IFERROR
IFERROR تمام خطاهای فرمول را به یک خروجی جایگزین تبدیل میکند. اگر فرمول دارای #REF!، #VALUE! یا مشکل دیگری باشد، ممکن است خطا پنهان شود و کاربر تصور کند نتیجه صحیح است.
برای مثال، در فرمول جستوجو بهتر است در صورت انتظار خطای #N/A از IFNA استفاده شود تا سایر خطاها همچنان دیده شوند.
تابع IFNA در اکسل
تابع IFNA فقط خطای #N/A را مدیریت میکند و سایر خطاها را تغییر نمیدهد.
ساختار تابع IFNA
=IFNA(value,value_if_na)
مدیریت نتیجه پیدانشده
=IFNA(MATCH(E2,A2:A100,0),"یافت نشد")
استفاده با VLOOKUP
=IFNA(VLOOKUP(E2,A2:C100,3,FALSE),"کد وجود ندارد")
توابع تشخیص خطا در اکسل
تابع ISERROR
تمام خطاهای رایج را بررسی میکند و TRUE یا FALSE برمیگرداند.
=ISERROR(A2)
تابع ISERR
بیشتر خطاها را بررسی میکند، اما #N/A را خطای موردنظر خود در نظر نمیگیرد.
=ISERR(A2)
تابع ISNA
فقط بررسی میکند که مقدار برابر #N/A باشد.
=ISNA(A2)
تابع ERROR.TYPE
این تابع برای بعضی خطاها یک شماره مشخص برمیگرداند و میتواند در دستهبندی خطاها استفاده شود.
=ERROR.TYPE(A2)
نمایش وضعیت سلول
=IF(ISERROR(A2),"دارای خطا","بدون خطا")
مدیریت خطا بدون مخفیکردن علت اصلی
بهتر است ابتدا خطا را بررسی و علت آن را رفع کنید، سپس در صورت طبیعیبودن شرایط از تابع مدیریت خطا استفاده کنید.
روش عمومی و کمتر دقیق
=IFERROR(A2/B2,0)
روش دقیقتر برای تقسیم
=IF(B2=0,"مخرج صفر است",A2/B2)
روش دقیقتر برای جستوجو
=XLOOKUP(E2,A2:A100,B2:B100,"کد یافت نشد")
در این روش، خطای طبیعی نبود نتیجه مدیریت میشود؛ اما خطاهای دیگر همچنان قابل شناسایی باقی میمانند.
خطاهای زنجیرهای در فرمولها
گاهی خطایی که در یک سلول مشاهده میشود، در همان سلول ایجاد نشده است. ممکن است یکی از سلولهای منبع دارای خطا باشد و خطا به فرمولهای بعدی منتقل شود.
اگر A2 دارای خطای #VALUE! باشد، فرمول زیر نیز خطا خواهد داشت:
=A2*10
برای عیبیابی باید مسیر فرمول را به عقب دنبال کرده و اولین سلولی را پیدا کنید که خطا در آن ایجاد شده است.
ابزار Error Checking در اکسل
Excel میتواند بعضی مشکلات فرمول را با مثلث سبزرنگ در گوشه سلول مشخص کند. با انتخاب سلول، دکمه هشدار ظاهر میشود و گزینههایی برای بررسی یا اصلاح ارائه میدهد.
از تب Formulas و بخش Formula Auditing نیز میتوان Error Checking را اجرا کرد.
- Help on This Error برای مشاهده توضیح خطا
- Show Calculation Steps برای مشاهده مراحل
- Trace Error برای دنبالکردن منبع خطا
- Ignore Error برای نادیدهگرفتن هشدار
- Edit in Formula Bar برای اصلاح فرمول
استفاده از Evaluate Formula
Evaluate Formula فرمول را مرحلهبهمرحله محاسبه میکند و نشان میدهد خطا دقیقاً در کدام بخش ایجاد شده است.
برای استفاده:
- سلول دارای فرمول را انتخاب کنید.
- به تب Formulas بروید.
- Evaluate Formula را انتخاب کنید.
- با انتخاب Evaluate مراحل محاسبه را مشاهده کنید.
این ابزار برای فرمولهای IF تو در تو، XLOOKUP، INDEX و MATCH، توابع منطقی و محاسبات پیچیده بسیار مفید است.
استفاده از Trace Precedents و Trace Dependents
Trace Precedents
سلولهایی را مشخص میکند که فرمول انتخابشده از آنها مقدار دریافت میکند.
Trace Dependents
سلولهایی را نشان میدهد که نتیجه آنها به سلول انتخابشده وابسته است.
فلشهای ایجادشده به شما کمک میکنند مسیر انتقال خطا و ارجاعهای حلقوی را شناسایی کنید.
پیداکردن تمام سلولهای دارای خطا
میتوان از Go To Special برای انتخاب سلولهای دارای خطا استفاده کرد.
- از Home گزینه Find and Select را باز کنید.
- Go To Special را انتخاب کنید.
- گزینه Formulas را فعال کنید.
- فقط Errors را انتخاب کنید.
پس از تأیید، تمام سلولهای فرمولی دارای خطا انتخاب میشوند.
قالببندی شرطی برای مشخصکردن خطاها
میتوان با Conditional Formatting سلولهای دارای خطا را برجسته کرد.
=ISERROR(A2)
این فرمول در قانون قالببندی شرطی، سلولهایی را که دارای خطا هستند شناسایی میکند.
مشخصکردن فقط خطای #N/A
=ISNA(A2)
شمارش سلولهای دارای خطا
در نسخههای دارای آرایه پویا میتوان از ترکیب SUM و ISERROR استفاده کرد:
=SUM(--ISERROR(A2:A100))
در بعضی نسخههای قدیمیتر ممکن است این فرمول به ورود آرایهای نیاز داشته باشد.
شمارش سلولهای دارای #N/A
=SUM(--ISNA(A2:A100))
مثال عملی خطا در محاسبه فاکتور
فرض کنید تعداد در B2، قیمت واحد در C2 و تخفیف در D2 قرار دارد.
فرمول مبلغ پس از تخفیف
=B2*C2*(1-D2)
خطاهای احتمالی:
- اگر B2 یا C2 متن غیرعددی باشد، #VALUE! ایجاد میشود.
- اگر یکی از ستونهای مرجع حذف شود، #REF! ایجاد میشود.
- اگر نام یک تابع اشتباه نوشته شود، #NAME? ایجاد میشود.
- اگر فرمول به خودش وابسته باشد، Circular Reference ایجاد میشود.
کنترل عددیبودن ورودیها
=IF(AND(ISNUMBER(B2),ISNUMBER(C2),ISNUMBER(D2)),B2*C2*(1-D2),"ورودی نامعتبر است")
مثال عملی خطا در گزارش فروش
فرض کنید فروش واقعی در B2 و هدف فروش در C2 قرار دارد و میخواهیم درصد تحقق هدف را محاسبه کنیم.
=B2/C2
اگر هدف فروش صفر یا خالی باشد، #DIV/0! ایجاد میشود.
فرمول کنترلشده
=IF(C2=0,"هدف تعیین نشده",B2/C2)
مثال عملی خطا در جستوجوی کد محصول
=XLOOKUP(E2,A2:A100,C2:C100,"کد یافت نشد")
اگر کد وجود نداشته باشد، پیام مناسب نمایش داده میشود. اگر محدوده نتیجه حذف شود، خطای #REF! همچنان قابل مشاهده خواهد بود و مخفی نمیشود.
مثال عملی پاکسازی دادههای متنی
اگر اعداد از یک سایت کپی شده و بهصورت متن ذخیره شده باشند:
=NUMBERVALUE(TRIM(CLEAN(A2)))
این فرمول ابتدا کاراکترهای اضافی را حذف و سپس متن عددی را به عدد تبدیل میکند.
خطاهای رایج در مدیریت خطاهای اکسل
1. قراردادن IFERROR دور تمام فرمولها
این کار ممکن است خطاهای ساختاری مانند #REF! را پنهان کند. IFERROR باید فقط زمانی استفاده شود که خطا قابلپیشبینی و طبیعی باشد.
2. جایگزینکردن تمام خطاها با صفر
صفر میتواند میانگین، مجموع و نمودار را تغییر دهد. نبود داده با مقدار واقعی صفر یکسان نیست.
3. نادیدهگرفتن نوع داده
عدد متنی، تاریخ متنی و فاصلههای مخفی از علتهای رایج #VALUE! و #N/A هستند.
4. حذف خطا بدون اصلاح منبع
تغییر ظاهر سلول یا مخفیکردن خطا، فرمول را اصلاح نمیکند. ابتدا باید سلول منبع و منطق فرمول بررسی شود.
5. اشتباهگرفتن ##### با خطای فرمول
در بیشتر موارد، فقط عرض ستون کافی نیست و با AutoFit مشکل حل میشود.
6. فعالکردن Iterative Calculation برای حذف هشدار
این گزینه نباید فقط برای ناپدیدکردن Circular Reference فعال شود. ابتدا باید مشخص شود حلقه عمدی یا غیرعمدی است.
7. استفاده از IFERROR بهجای IFNA
اگر فقط نبود نتیجه جستوجو طبیعی است، IFNA انتخاب دقیقتری است.
8. حذف ردیف و ستون بدون بررسی وابستگی
این کار ممکن است دهها فرمول را به خطای #REF! تبدیل کند.
9. بیتوجهی به نسخه Excel
توابع جدید در نسخههای قدیمی شناخته نمیشوند و ممکن است #NAME? یا نشانههای ناسازگاری ایجاد کنند.
10. استفاده از محدودههای کامل در آرایه پویا
این کار میتواند خروجی بسیار بزرگی ایجاد کرده و باعث #SPILL! شود.
نکات حرفهای برای جلوگیری از خطاهای اکسل
- ورودیهای عددی، متنی و تاریخی را در ستونهای جدا و با قالب صحیح ثبت کنید.
- برای دادههای ورودی از Data Validation استفاده کنید.
- از نامگذاری واضح شیتها، جدولها و محدودهها کمک بگیرید.
- قبل از حذف ستون یا شیت، وابستگی فرمولها را بررسی کنید.
- فرمولهای پیچیده را به چند مرحله تقسیم کنید.
- از LET برای خواناترکردن فرمولهای طولانی استفاده کنید.
- برای نبود نتیجه جستوجو از IFNA یا آرگومان if_not_found استفاده کنید.
- برای تقسیم، مخرج را پیش از محاسبه کنترل کنید.
- برای توابع آرایه پویا فضای خالی کافی در نظر بگیرید.
- فرمولهای آرایه پویا را بیرون از Excel Table قرار دهید.
- از Evaluate Formula برای بررسی محاسبات پیچیده استفاده کنید.
- پس از تغییر ساختار فایل، خروجیهای اصلی را آزمایش کنید.
- خطاها را با صفر جایگزین نکنید مگر اینکه از نظر منطقی درست باشد.
- فایلهای مهم را پیش از تغییرات گسترده پشتیبانگیری کنید.
- برای شناسایی نوع داده از ISNUMBER، ISTEXT و ISBLANK استفاده کنید.
- از توابع TRIM و CLEAN برای پاکسازی دادههای واردشده استفاده کنید.
استفاده از LET برای عیبیابی فرمولها
تابع LET اجازه میدهد بخشهای مختلف یک فرمول را نامگذاری کنید. این کار خوانایی و عیبیابی را آسانتر میکند.
=LET(Sales,B2,Target,C2,IF(Target=0,"هدف تعیین نشده",Sales/Target))
در این فرمول، B2 با نام Sales و C2 با نام Target تعریف شدهاند.
تمرینهای پیشنهادی خطاهای اکسل
تمرین اول: ایجاد و رفع #DIV/0!
=A2/B2
مقدار B2 را صفر قرار دهید و سپس فرمول را با IF اصلاح کنید.
=IF(B2=0,"قابل محاسبه نیست",A2/B2)
تمرین دوم: ایجاد #VALUE!
در A2 یک عدد و در B2 یک متن وارد کنید:
=A2*B2
سپس نوع داده B2 را اصلاح کنید.
تمرین سوم: ایجاد #REF!
فرمولی با ارجاع به یک ستون بسازید و سپس ستون مرجع را حذف کنید. پس از مشاهده خطا، عملیات را Undo کنید.
تمرین چهارم: ایجاد #NAME?
=SUUM(A2:A10)
نام تابع را به SUM اصلاح کنید.
تمرین پنجم: ایجاد #NUM!
=SQRT(-4)
شرط مثبتبودن ورودی را به فرمول اضافه کنید.
=IF(A2>=0,SQRT(A2),"عدد منفی است")
تمرین ششم: ایجاد #N/A
=MATCH(E2,A2:A10,0)
مقداری در E2 وارد کنید که در فهرست وجود ندارد و سپس از IFNA استفاده کنید.
=IFNA(MATCH(E2,A2:A10,0),"یافت نشد")
تمرین هفتم: ایجاد #SPILL!
=SEQUENCE(10)
یکی از سلولهای محدوده خروجی را پر کنید، سپس آن را پاک کرده و نتیجه را بررسی کنید.
تمرین هشتم: ایجاد #CALC!
=FILTER(A2:B10,B2:B10>1000000)
شرطی انتخاب کنید که هیچ نتیجهای نداشته باشد و سپس آرگومان if_empty را اضافه کنید.
=FILTER(A2:B10,B2:B10>1000000,"موردی یافت نشد")
تمرین نهم: رفع #####
یک تاریخ یا عدد بزرگ در ستون باریک وارد کنید و سپس عرض ستون را با AutoFit تنظیم کنید.
تمرین دهم: ایجاد Circular Reference
در سلول B10 فرمول زیر را وارد کنید:
=SUM(B2:B10)
سپس محدوده را اصلاح کنید:
=SUM(B2:B9)
سازگاری خطاها با نسخههای مختلف اکسل
خطاهای #NULL!، #DIV/0!، #VALUE!، #REF!، #NAME?، #NUM! و #N/A از خطاهای قدیمی و پایه Excel هستند و در نسخههای مختلف وجود دارند.
#SPILL! و #CALC! بیشتر به توابع آرایه پویا و قابلیتهای جدید Excel مربوط هستند. این خطاها در نسخههای دارای Dynamic Array مانند Microsoft 365 و نسخههای جدیدتر Excel مشاهده میشوند.
توابعی مانند FILTER، SEQUENCE، XLOOKUP، LET و LAMBDA نیز به نسخههای جدید Excel نیاز دارند. در نسخههای قدیمی ممکن است این توابع شناخته نشوند یا با نشانه سازگاری نمایش داده شوند.
Circular Reference و ##### نیز در نسخههای قدیمی و جدید وجود دارند؛ اما مسیر تنظیمات و ابزارهای عیبیابی ممکن است در ویندوز، مک و Excel برای وب متفاوت باشد.
سؤالات پرتکرار درباره خطاهای اکسل
چرا در اکسل خطای #DIV/0! نمایش داده میشود؟
زیرا فرمول عددی را بر صفر یا سلول خالی تقسیم کرده است.
=IF(B2=0,"",A2/B2)
خطای #VALUE! چه معنایی دارد؟
معمولاً یکی از دادهها یا آرگومانهای فرمول نوع مناسبی ندارد؛ برای مثال، متن در محاسبه عددی استفاده شده است.
چگونه خطای #REF! را رفع کنیم؟
بخش #REF! در فرمول را پیدا کرده و با آدرس معتبر جایگزین کنید. اگر حذف سلول تازه انجام شده است، از Undo استفاده کنید.
چرا Excel خطای #NAME? میدهد؟
نام تابع یا محدوده اشتباه نوشته شده، متن داخل نقلقول قرار نگرفته یا تابع در نسخه فعلی پشتیبانی نمیشود.
خطای #NUM! چه زمانی ایجاد میشود؟
زمانی که ورودی عددی نامعتبر باشد، نتیجه بسیار بزرگ شود یا تابع تکراری به نتیجه نرسد.
خطای #N/A یعنی چه؟
یعنی مقدار موردنظر در دسترس نیست یا تابع جستوجو نتوانسته است نتیجهای پیدا کند.
برای #N/A از IFNA استفاده کنیم یا IFERROR؟
IFNA دقیقتر است؛ زیرا فقط #N/A را مدیریت میکند و سایر خطاها را پنهان نمیکند.
چرا FILTER خطای #CALC! میدهد؟
ممکن است هیچ نتیجهای وجود نداشته باشد و آرگومان if_empty وارد نشده باشد.
=FILTER(A2:C100,C2:C100>1000000,"موردی یافت نشد")
چرا فرمول FILTER خطای #SPILL! میدهد؟
احتمالاً یکی از سلولهای محدوده خروجی پر است، سلول Merge شده وجود دارد یا فرمول داخل Table قرار گرفته است.
چگونه محدوده #SPILL! را پیدا کنیم؟
سلول دارای خطا را انتخاب کنید. Excel محدوده موردنیاز برای گسترش نتیجه را مشخص میکند.
آیا ##### یک خطای فرمول است؟
معمولاً خیر. اغلب عرض ستون برای نمایش مقدار کافی نیست یا مقدار تاریخ و زمان منفی است.
Circular Reference یعنی چه؟
یعنی یک فرمول بهصورت مستقیم یا غیرمستقیم برای محاسبه خود به نتیجه خودش وابسته شده است.
آیا میتوان Circular Reference را مجاز کرد؟
بله، با فعالکردن Iterative Calculation؛ اما این کار فقط برای مدلهای محاسباتی طراحیشده و با آگاهی کامل پیشنهاد میشود.
چگونه تمام خطاهای یک شیت را پیدا کنیم؟
از Go To Special، گزینه Formulas و سپس Errors استفاده کنید.
چگونه بهجای خطا سلول خالی نمایش دهیم؟
=IFERROR(A2/B2,"")
قبل از استفاده از این روش مطمئن شوید که مخفیکردن خطا باعث اشتباه در گزارش نمیشود.
چرا نباید همه خطاها را با صفر جایگزین کرد؟
زیرا صفر یک مقدار واقعی است و ممکن است نتیجه مجموع، میانگین، درصد و نمودار را تغییر دهد.
تفاوت #SPILL! و علامت # بعد از آدرس چیست؟
#SPILL! یک خطاست؛ اما علامت # در آدرسی مانند E2# برای اشاره به کل محدوده آرایه پویا استفاده میشود.
=SUM(E2#)
جمعبندی آموزش خطاهای اکسل
خطاهای Excel پیامهایی راهنما هستند که نوع مشکل موجود در فرمول، داده یا ساختار فایل را مشخص میکنند. بهجای حذف یا مخفیکردن سریع خطا، بهتر است ابتدا معنی آن را تشخیص داده و علت اصلی را برطرف کنید.
- #NULL! معمولاً به اشتباه در محدودهها و عملگر اشتراک مربوط است.
- #DIV/0! در اثر تقسیم بر صفر یا سلول خالی ایجاد میشود.
- #VALUE! نشاندهنده ناسازگاری نوع داده یا آرگومان است.
- #REF! به مرجع حذفشده یا نامعتبر اشاره میکند.
- #NAME? در اثر نام ناشناخته یا اشتباه تایپی ایجاد میشود.
- #NUM! نشاندهنده مقدار عددی نامعتبر یا نتیجه خارج از محدوده است.
- #N/A یعنی نتیجه یا داده موردنظر در دسترس نیست.
- #SPILL! به مسدودبودن محدوده خروجی آرایه پویا مربوط است.
- #CALC! معمولاً از ساختار نامعتبر یا خالی آرایه ایجاد میشود.
- ##### اغلب یک مشکل نمایشی است و با تنظیم عرض ستون برطرف میشود.
- Circular Reference نشان میدهد فرمول به خودش وابسته شده است.
- IFERROR برای مدیریت عمومی خطا و IFNA برای مدیریت اختصاصی #N/A استفاده میشود.
- ابزارهای Evaluate Formula، Error Checking و Trace Precedents در عیبیابی بسیار کاربردی هستند.
پیشنهاد میشود پس از یادگیری خطاهای Excel، آموزش توابع IFERROR و IFNA، ابزارهای Formula Auditing، توابع جستوجو، آرایههای پویا، تابع FILTER و آدرسدهی در اکسل را دنبال کنید. شناخت این مباحث به شما کمک میکند فایلهایی دقیقتر، پایدارتر و قابلاعتمادتر طراحی کنید.
آنچه در ویدیو گفته ام
در بخش آخر، قبل از اینکه وارد فرمولنویسی بشویم، باید خطاها یا ارورهایی را که Excel به ما میدهد بشناسیم تا اگر با آن خطاها مواجه شدیم، بتوانیم راحتتر آنها را برطرف کنیم. خطاهای رایج را من اینجا برایتان فهرست کردهام. خطای اول، #NULL! است. زمانی که Excel قادر به شناسایی محدوده نیست؛ برای مثال، بیاییم اینجا بنویسیم: مساوی، SUM، پرانتز باز و این دو تا را به آن بدهیم. میگوییم این دو محدوده را با هم جمع کن، اما علامت دونقطه را بینشان نگذاریم. اینجا به ما خطای #NULL! میدهد؛ یعنی محدوده را نمیتواند شناسایی کند. خطای دوم، خطای تقسیم بر صفر یا #DIV/0! است. خب هر چیزی را که بر صفر تقسیم کنیم، عملاً نتیجه عددی ندارد؛ یا میتوانیم بگوییم بینهایت است و عدد مشخصی برایش وجود ندارد. پس اگر فرمولی داشته باشیم که در نهایت مقدار مخرج کسر آن برابر صفر شود، جواب #DIV/0! میدهد؛ یعنی هیچ عددی را نمیتواند گزارش دهد. وقتی این خطا را میبینیم، باید سریع متوجه شویم که مقدار مخرج کسر یا کل محاسبه برابر صفر شده است. گزینه بعدی، خطای #VALUE! است؛ زمانی که یک متن را با یک عملیات ریاضی ترکیب میکنیم. مثلاً مینویسم را با یک متن جمع کن. خب آن اصلاً یک متن و از نوع String است. در بخش دادهها خدمتتان آموزش دادیم که عدد و متن چه تفاوتی دارند. Excel نمیداند این دو را چطور با هم جمع کند؛ پس چون نمیتواند با عملگر جمع یا علامت بهاضافه اینها را با هم جمع کند، به ما خطای #VALUE! میدهد. اما در بخش قبل، روش چسباندن این دو مقدار را آموزش دادیم. میتوانم این را انتخاب کنم و با عملگر اَمپرسند (&) این دو را به هم بچسبانم. نتیجه میشود متن ۲۵؛ اما با عملگر جمع نمیتوانم این دو را به هم بچسبانم. این دو حالت با هم متفاوتاند. گزینه بعدی، خطای #REF! است؛ زمانی که یکی از Referenceها جابهجا یا حذف میشود. مثلاً اینجا نوشتهام سلول E7 را با F7 جمع کن. حالا اگر اینجا آن را Delete کنم، یعنی یکی از Referenceها را پاک کنم، Excel میگوید من چیزی را با E7 جمع میکردم؛ آن کجاست؟ و خطای #REF! میدهد؛ یعنی مرجع من از بین رفته و دیگر نمیتوانم آن عملیات را انجام دهم. گزینه بعدی، خطای #NUM! است. این خطا زمانی رخ میدهد که انجام یک محاسبه عددی نامعتبر باشد؛ مثلاً عدد منفی داریم و گفتهایم جذر منفی را برایمان حساب کن. خب عدد منفی در مجموعه اعداد حقیقی جذر ندارد و Excel خطای #NUM! میدهد. خطای بعدی، #N/A است؛ زمانی که توابع جستوجوگر نمیتوانند مورد مدنظر را پیدا کنند. بعضی از توابع جستوجوگر، مثل VLOOKUP، XLOOKUP و LOOKUP، توابعی هستند که با آنها دنبال یک مقدار میگردیم. مثلاً اینجا گفتهایم این Value را پیدا کن. وقتی آن را پیدا نمیکند، خطای #N/A میدهد. در آنجا باید متوجه شویم که مقدار مدنظر پیدا نشده است، یا از تابع جستوجویی استفاده کنیم که بتواند این خطا را مدیریت کند؛ مثل تابع XLOOKUP که میتوانیم حتی اگر چیزی پیدا نشد، به آن بگوییم خطا نده و مقدار دیگری را گزارش کن. خطای بعدی، #SPILL! است؛ زمانی که محدوده خروجی بزرگتر از فضای شیت باشد یا محدودهای که فرمول میخواهد استفاده کند، توسط چیز دیگری اشغال شده باشد. برای مثال، اگر اینجا بنویسم مساوی، Days که از یک لیست استفاده میکند و شنبه تا جمعه را برای من مینویسد؛ اجازه دهید این را پاک کنم. مثلاً اینجا چیزی نوشتهام و حالا دوباره مینویسم مساوی، Days و این گزینه را انتخاب میکنم. اینجا چه اتفاقی میافتد؟ میخواهد شنبه، یکشنبه، دوشنبه و سهشنبه را بنویسد، اما سلول سهشنبه روی محدودهای قرار میگیرد که قبلاً داخل آن چیزی نوشتهایم و اشغال شده است. Excel مقدار قبلی را پاک نمیکند؛ برای همین خطای #SPILL! میدهد. وقتی هم روی آن کلیک میکنم، محدوده را نشان میدهد و پیامی هم اینجا داریم که میگوید نمیتواند خروجی را کامل کند. حالا یا آن محدوده اشغال شده یا از فضای شیت بیشتر است؛ در هر صورت خطای #SPILL! همین مفهوم را میرساند که Excel میخواهد چیزی بنویسد، اما جایی برای نوشتن آن وجود ندارد. اگر این مقدار را پاک کنم، ببینید خیلی راحت چون فضا باز میشود، ادامه خروجی را نمایش میدهد. خطای بعدی، #CALC! است که زمانی رخ میدهد که یک فرمول در محاسبات آرایهای با مشکل مواجه شود. در همین فرمولی که الان اینجا میبینید، فرمولی نوشتهام که در این قسمت با یک آرایه مواجه شده و عملاً به من خطا میدهد. گزینه بعدی عملاً جزو خطاها نیست، اما ممکن است شبیه خطا دیده شود؛ Excel علامتهای هشتگ را نمایش میدهد و نشان میدهد که اینجا مقداری وجود دارد. در اصل، این حالت زمانی است که یک مقدار عددی یا تاریخی داریم، اما فضای کافی برای نمایش آن وجود ندارد. کافی است عرض سلول، یعنی ستون را بیشتر کنیم تا مقدار داخل آن را نشان دهد. پس این خطا نیست و فقط نشان میدهد مقداری وجود دارد، اما Excel فضای کافی برای نمایش آن ندارد. با عریضتر کردن ستون میتوانیم آن مقدار را مشاهده کنیم. آخرین خطا هم زمانی رخ میدهد که در یک فرمول، از خود همان سلول استفاده کرده باشیم. مثلاً نوشتهایم این سلول مساوی است با یک سلول دیگر بهاضافه خودش. هر بار دارد خودش را دوباره وارد محاسبه میکند. اجازه دهید این را روی G14 قرار دهم؛ یعنی مدام میگوید خودم برابر با این مقدار بهاضافه خودم هستم. در نتیجه وارد یک حلقه Circular Reference میشود و وقتی Enter را بزنم، خطا میدهد و میگوید این فرمول داخل یک حلقه افتاده و پاسخ مشخصی ندارد؛ چون همیشه خودش را با یک عدد جمع میکند و دوباره نتیجه را داخل خودش قرار میدهد. این روند پایان ندارد و بنابراین این هم یکی از خطاهایی است که باید بشناسیم. امیدوارم این جلسه برایتان مفید بوده باشد. از جلسههای بعد، آموزش توابع Excel را در دستههای مختلفی که دارد، مثل ریاضی پایه، پیشرفته و کار با متن و موارد دیگر، با هم شروع میکنیم و نحوه استفاده از آنها را خدمتتان آموزش میدهم. مراقب خودتان باشید.