بعد از اینکه یک معادله را در یک سلول نوشتیم، لذت بخش نیست که بلافاصله نمودار آنرا هم در اکسل مشاهده کنیم؟
فرض کنید که معادله ای مانند زیر داریم:
y=x2-2.x+6
طبیعتا وقتی که بخواهیم این معادله را در اکسل بنویسیم ، آنرا باید به زبان سلولی اکسل بنویسیم :
=A2^2-2*A2+6
و اگر فرمول را مانند شکل زیر در خانه ها پر (fill) کنیم ، به ازاء هر مقدار X یک y بدست می آید:
و اگر با این اعداد نمودارمان را رسم کنیم مانند شکل زیر خواهد شد:
در این مثال می خواهیم یک روش کلی برای رسم هر نموداری در اکسل را پیاده سازی کنیم:
· معادله نمودار در یک سلول وارد شود
· بازه نمودار ، حداقل مقدار و حداکثر مقدار در دو سلول وارد شوند.
· تعداد نقاط نمودار (که بیانگر دقت رسم است) در یک سلول وارد شود.
· رسم نمودار اولیه
· به دلیل اینکه نمودار را بدون داشتن مقادیری رسم کنیم، یک نمودار ساده به عنوان پایه رسم می کنیم و سپس تنظیمات را روی این نمودار انجام می دهیم.
· با اعداد فرضی زیر یک نمودار از نوع XY(Scatter) رسم می کنیم .
· سپس از طریق Insert --> define --> Name دو نام به نامها و تعاریف زیر ایجاد می کنیم.
· (دقت کنید که در هنگام تعریف نام باید کلید Add را در اکسل 2003 حتما بزنید.)
حال باید این دو نام را به ChartSeries انتساب دهیم.
Name |
Refers To |
Sheet1!x |
$A$12:$A$15 |
Sheet1!y |
$B$12:$B$15 |
روی خط نمودار کلیک کنید تا در Formula Bar فرمول آنرا مشابه شکل زیر مشاهده کنید:
و مطابق فرمول زیر آنرا ویرایش کنید:
=SERIES(Sheet1!$B$8,Sheet1!x,Sheet1!y,1)
تذکر : ممکن است ویندوز شما به جای علامت Comma ( , ) از علامت Semicolon ( ; ) استفاده کند.
خانه B8 را برای عنوان (title) نمودار در نظر گرفته ایم ، بنابراین فرمول زیر را در آن تایپ می کنیم :
= "Charting :" & sheet1!$B$1
ایجاد مقادیر X
گام بعدی ایجاد مقادیر X برای نمودارمان است ،این X قرار است با که به صورت افزایش باشد و در عین حال در یک بازه خاص باشد.
در اینجا ما از نامها و فرمولهای برداری استفاده خواهیم کرد.
متغیر به نام X را که قبلا تعریف کرده بودیم ،به صورت زیر تعریف به صورت زیر تغییر می دهیم :
Name: Sheet1!x
RefersTo: =ROW(1:20)
حال به خاطر اینکه درک کنیم که متغیر X ما چگونه عمل می کند ، می توانید یک محدوده را انتخاب کنید، و سپس فرمول =x را در آن تایپ کنید ، سپس کلید Ctrl+shift+enter را بزنید :
حال لازم است که تعداد اعدادی که X دارد را بر طبق یک سلول محاسبه کنیم ، مثلا اگر در B5 عدد 20 نوشته شده بود ، آنگاه xها بین 1 تا 20 باشند و اگر B5=100 بود xها بین 1 تا 100.
برای اینکار از تابع Offset استفاه می کنیم ، می دانیم که offset یک محدوده از خانه ها را جدا می کند و به عنوان خروجی تابع به ما می دهد ، اگر فرمول زیر را در تعریف X که در بالا کرده ایم جایگزین کنیم، همان نتیجه حاصل خواهد شد:
=ROW(OFFSET(Sheet1!$A$1,0,0,20,1))
حال می خواهیم که تعداد اعداد x را از خانه B5 بخوانیم ، فرمول زیر باعث می شود که از 1 تا عددی که در B5 وارد می شود ، عدد تولید شود:
=ROW(OFFSET(Sheet1!$A$1,0,0,Sheet1!$B$5,1))
مرحله بعدی این است که ما در یک بازه ، اعدادی را تولید کنیم برای این منظور Insert-->define-->Name نامهای زیر را با تعاریفشان به دقت وارد می کنیم :
Name |
Refers To |
xStart |
=Sheet1!$B$3 |
xEnd |
=Sheet1!$B$4 |
xNumberOfPoints |
=Sheet1!$B$5 |
xRange |
=xEnd-xStart |
در اینجا به یک سری فرمول می رسیم که شاید برای دوستان در نگاه اول پیچیده به نظر برسد ، به همین خاطر با یک مثال ساده جلو می رویم و مجدد یادآوری می شود که هدف ما تولید X برای نمودارمان است.
Name |
مقدار |
نقطه شروع |
=5 |
نقطه پایان |
=10 |
تعداد نقاط در این محدوده |
=7 |
محدوده |
=(10-5) |
حال باید اعداد بین این دو محدوده را پیدا کنیم، یعنی قرار است بین 5 تا 10 ما 7 نقطه داشته باشیم ،
همانطور که در شکل پایین پیداست ، فاصله بین دو نقطه برابر است با
=(10-5)/(7-1) = 0.83333
یعنی اعداد محور x خواهد شد :
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
5.0 |
5.8 |
6.7 |
7.5 |
8.3 |
9.2 |
10.0 |
|
پس اگر ما فرمول کلی زیر را بنویسیم ، دوستان با کمی توجه و مثال بالا منطق آنرا درک خواهند کرد:
xPoint=xStart+xRange/(xNumberOfPoints-1)*Counter(1 to xNumberOfPoints-1)
نکته : منظور از کلمه counter در مثال بالا یعنی یک شماره که به ترتیب اعداد 1 و 2 و 3 و ... و xNumberOfPoints-1 را تولید می کند.
ما اینCounter را با فرمول زیر تولید کرده ایم از قبل تهیه کرده ایم :
=ROW(OFFSET(Sheet1!$A$1,0,0,Sheet1!$B$5,1))
حال تلفیق ایندو فرمول خواهد شد :
=xStart+xRange/(xNumberOfPoints-1)*(ROW(OFFSET(Sheet1!$A$1,0,0,xNumberOfPoints,1))-1)
و ما در Define -->Name تعریف x را به صورت بالا تغییر خواهیم داد.
تذکر : ممکن است ویندوز شما به جای علامت Comma ( , ) از علامت Semicolon ( ; ) استفاده کند.
محاسبهY ها
حال بایستی برای هر X یک y محاسبه شود ما Name زیر را تعریف می کنیم:
Name |
Refers To |
Formula |
=Sheet1!$B$1 |
اما مسلم است که در B1 ما یک سری کاراکتر تایپ میکنیم و این برای اکسل مانند text است مثلا اگر تایپ کنیم x^2+x اکسل نمی تواند این X ها را تشخیص دهد ، (یادم می آید یک زمانی می خواستم در ویژوال بیسیک اینکار را انجام دهم ، تقریبا غیر ممکن بود وبعد از سالها یک فایل پیدا کردم که با یک تکنیک جالبی می توانست یک ورودی را به یک معادله معتبر تبدیل کند)
ما در ماکروهای اکسل 4 یک تابع (ماکرو) به نام Evaluate داشتیم که یک ورودی را به یک مقدار قابل فهم برای اکسل تبدیل می کند ، و از این ماکرو فقط می تواند در define name استفاده کرد. بنابراین ما تعریف خود را تصحیح می کنیم:
Name |
Refers To |
Sheet1!y |
=EVALUATE(Formula) |
و در آخر فرمول نهایی به صورت زیر خواهد شد، اینجانب نتوانستم منطق +0*x را درک کنم ، اما اگر این مقدار نباشد در نمودارهایی نظیر نمودار تابع زیر با مشکل مواجه خواهیم شد:
y=exp(x)*sin(x^2)
Name |
Refers To |
Sheet1!y |
=EVALUATE(Formula &"+0*x") |
در صورتیکه که دوستان از منطق +0*x مطلع شدند ، توسط ایمیل به اینجانب نیز اطلاع دهند .
شما هم تجربه یا دیدگاه خود را بنویسید:
خیلی از آموزش مفیدتون ممنون فقط تصاویر اصلا موجود نیستد و در فایل ضمیمه هم فقط یه تصویر هست اگه لطف کنید و تصاویر مراحل کار رو ارسال کنید ممنون میشم . میخواستم سوال کنم به داشتن 3 نقطه از یه نمودار ممکن هست نمودار رو طوری رسم کرد که روی هر نقطه دیگه از نمودار باشیم بتونیم مختصات اون نقطه رو ببینیم؟
با سلام
ضمن تقدیر و تشکر
من احتیاج خیلی فوری و مبرم به داشتن مطالب کامل از موضوع فوق دارم ( رسم توابع ریاضی در اکسل ) ضمن درخواست خواهشمند است روشی ایجاد شود که نمودار ها و غیر در وب سایت قابل مشاهد ه باشد و یا بصورت فایل پیوستی باشد .
عکس های مقاله تصحیح گردید.