عیب یابی فرمول ها
همونطور که قبلا گفتم، فرمول نویسی حرفه ای اصول و قوانینی داره که حتما باید رعایت بشه. در قسمت اول (انواع آرگومان ها) و دوم (آدرس دهی) به تشریح ساختار تابع و آرگومانها، اهمیت پرانتز و آدرس دهی پرداختیم. در بخش سوم میخواهیم به نحوه Debug کردن ( عیب یابی فرمول ها ) فرمول بپردازیم. Debug اصطلاحا به معنی مشاهده نحوه محاسبات اجزای یک فرمول و برطرف کردن مشکلات آن هست.
مثلا فرض کنید میخواهیم نحوه عملکرد یک فرمول رو بررسی کنیم و ببینیم چطور محاسبات رو انجام میده یا اینکه فرمولی نوشتیم که خروجی مد نظر ما رو نمیده یا اینکه خروجی با خطا (Error) نشون میده. از طرفی مطمئن هستیم که این فرمول درست نوشته شده است. پس چکار باید بکنیم؟ باید مرحله به مرحله فرمول رو بررسی کنیم و ببینیم کدام قسمت خروجی درستی نداره که باعث میشه جواب نهایی هم درست نباشه و یا خطا باشه.
یکی از راه های Debug کردن، استفاده از ابزار Evaluate Formula هست که از تب Formula در دسترس هست.
با مثال زیر نحوه استفاده از این ابزار رو شرح میدم:
فرض کنید فرمولی مطابق شکل ۱ نوشتیم. حالا میخوام مرحله به مرحله چک کنم ببینم چطور عمل میکنه.
شکل ۱- عیب یابی فرمول ها – فرمول if متاخل
روی سل حاوی فرمول کلیک میکنیم و از تب Formula گزینه Evaluate Formula را انتخاب می کنیم. پنجره ای ظاهرمی شهکه فرمول نوشته شده رو در آن می بینید. زیر داخلی ترین عبارت خط کشیده شده. با هر بار زدن گزینه Evaluate، نتیجه عبارتی که زیر آن خط کشیده شده، نشان داده می شه. به شکل ۲ توجه کنید.
شکل ۲- عیب یابی فرمول ها – Debug کردن فرمول با Evaluate Formula
یک راه دیگر برای Debug کردن فرمول، استفاده از F9 هست. مزیت این روش نسبت به روش قبلی این است که از بین یک فرمول چهار خطی میتونید فقط هر قسمتی که خواستید رو Debug کنید. اما در روش قبل، حتما از داخلی ترین عبارت شروع میشه تا کل فرمول محاسبه بشه. نمیشه قسمتی از فرمول رو انتخاب کرد و نتیجه اونو بررسی کرد. برای استفاده از این روش، باید تابعی که میخواهیم محاسباتش رو ببینیم، بطور کامل انتخاب کرده و کلید F9 رو بزنیم. دقت کنید که تابع با پرانتزها انتخاب بشه. شکل ۳ نحوه Debug کردن با استفاده از کلید F9 را نشان می دهد. بعد از انتخاب محدوده مورد نظر برای مشاهده محاسبات، کلید F9 رو میزنیم. می بینید که در این روش، نیازی به رعایت ترتیب توابع نیست.
شکل۳- عیب یابی فرمول ها – Debug کردن فرمول با F9
در استفاده از کلید F9، دقت کنید که هنگام خروج از سل، کلید Esc رو بزنیم. اگر Enter رو بزنیم، قسمت هایی که محاسبه شده اند بجای خود فرمول جایگزین می شن. مثلا فرمولی که در مثال ها توضیح داده شد به فرمول زیر تبدیل میشه و دیگه با تغییر سلول های استفاده شده در فرمول، تغییر نمیکنه.
=IF(FALSE,0,10)
Debug کردن فرمول هم در پیدا کردن علت خطاها و خروجی های نادرست به ما کمک میکنه هم اینکه با استفاده از این ویژگی می تونیم نحوه عملکرد توابع رو بهتر درک کنیم. در بخش پایانی فرمول نویسی حرفه ای در اکسل در مورد نکات تکمیلی صحبت خواهیم کرد که توصیه میکنیم حتما این مطلب رو بخونید.
باسلام
اکسل circulate formula میزنه
چطوری می تونم این مشکل را رفع کنم وسلول های دارای مشکل را پیدا واصلاح کنم درحالی که از تب فرمولا error formula کاری برایم پیش نبرده حال برای اعمال فرمول یا تغییر داده ها بایستی ابتدا save کنم وسپس آن فرمول یا دیتا اعمال می شود وبرنامه هم سنگین شده.
باتشکرازشما مهندس محترم وسایت مفیدتون
درود
مقاله خطای Circular Reference در اکسل۶ رو مطالعه کنید.
سلام. وقت بخیر و خدا قوت خدمت تیم قوی و خوب اکسل پدیا
مرسی واقعا از سایت بسیار کاربردی و خوبتون
من به شخصه بسیار از مطالب سایت شما استفاده میکنم و به دوستان علاقه مند به نرم افزار بسیار کابردی و فوق العاده اکسل این ساینتو پیشنهاد میکنم
دست گلتون درد نکنه. پایدار و جاوید باشی
سلام وقت بخیر من فرمولم رو تو گروه ابزار formulas و در بخش name manager و در قسمت refers to تعریف کردم چطور میتونم اونو با ابزار evaluate formula دیباگ کنم و خطاشو پیدا کنم .
درود
فرمول و باید بیارید بیرون تا بتونید دیباگ کنید
با سلام و احترام
من با استفاده از فرمول ولوکاپ اطلاعاتی را از چندین شیت به صفحه مورد نظر خود انتقال داده ام.
حال میخواهم تمامی سلول ها را بدون اینکه مقداد داده ها تغییر کنند به محل دیگری در همان شیت منتقل نمایم ولی این کپی کردن باعث تغییر آدرس ها می گردد.
آیا راه حلی پیشنهاد می فرمایید؟
درود
$ ها رو دقیق بذارید و بعد اقدام به جابجایی کنید
خانم مهندس سلام خدا قوت متشکر و ممنون از آموزشهای فوق العاده ارزشمندتان
سوالی داشتم
می خواهم فرمولی در اکسل بسازم که اگر یک سلول پر شد با عدد بلافاصله دو سلول جدید در زیر همان سلول باز شود و در صورت پر شدن هر یک از سلول های پایینی دو بار دو سلول جدید باز شود و این کار با پرشدن هر سلول ادامه پیدا کند
دقیقا مثل فروش هرمی به ازای هر سلول دو سلول جدید باز شود
متشکرم راهنمایی فرمایید
درود بر شما
داخل اکسل که همه سلول ها موجود هستن!
منظورتون از سلول باز بشه چی هست؟
اگر منظورتون فرمی هست که مثلا به ازای هر تغییر تکست باکس باز بشه، از VBA باید استفاده کنید
سلام من فقط درصد بکشم رو قیمتها هرکاری میکنم نمیشه میشه کمکم کنید
درود بر شما
این مقاله رو مطالعه کنید
https://excelpedia.net/percentage/
سلام استاد عزیز
این نکته آخر رو که گفتید وقتی با f9 دیباگ می کنیم نباید با enter از سل خارج بشیم و باید با esc از سل خارج بشیم رو امتحان کردم و وقتی با esc خارج میشم فرمول با مشکل سابقش باقی می مونه ولی زمانی که اینتر میزنم مشکل حل میشه و جواب درست رو میده
به نظر شما اشکال کارم از کجاست؟
درود بر شما
اگر خارج نشید، فرمول از بین میره و فقط نتیجه ثبت میشه.
ESC ر و برای این گفتیم که اصل فرمول حفظ بشه.
شما از طریق دیباگ مشکل رو پیدا میکنید و رفع میکنید.