کلاید متعجب است که آیا تابعی در اکسل وجود دارد که معادلات درجه دوم را حل کند. پاسخ کوتاه این است که چنین تابع کاربرگ در برنامه وجود ندارد. با این حال، می توانید از چند فرمول برای حل یک معادله درجه دوم استفاده کنید، یا می توانید تابع تعریف شده توسط کاربر خود را توسعه دهید.
این شکل کلی یک معادله درجه دوم است:
ax^2 + bx + c = 0
در معادله، مقادیر a، b و c ثابت هستند و باید x را حل کنید. همیشه دو راه حل ممکن برای x وجود دارد، به این معنی که دو فرمول درجه دوم وجود دارد که از معادله درجه دوم استخراج می شود:
(-b+SQRT(b^2-4ac))/2a
(-b-SQRT(b^2-4ac))/2a
این به اندازه کافی آسان است که در یک کاربرگ قرار دهید. با فرض اینکه مقادیر شما برای a، b و c در سلول های A1، B1 و C1 هستند، می توانید از فرمول های زیر استفاده کنید:
=(-B1+SQRT(B1^2-4*A1*C1))/(2*A1)
=(-B1-SQRT(B1^2-4*A1*C1))/(2*A1)
در این مرحله می توانید مقادیر A1، B1 و C1 را تغییر دهید و در نهایت به پاسخ های مورد نیاز خود برسید. این فرمول ها برای هر مقداری که (B1^2)>(4*A1*C1) کار می کنند. اگر این درست نیست، هنوز پاسخ هایی وجود دارد، اما شما شروع به ورود به اعداد خیالی می کنید. در این مرحله همه چیز ممکن است با عجله چسبنده شود و انسان های فانی با احتمال واقعی انفجار سرشان مواجه شوند. اگر می خواهید فرمول های خود را برای مقابله با اعداد خیالی تنظیم کنید، ممکن است این بحث کوتاه برای شما مفید باشد:
https://www.excelforum.com/excel-formulas-and-functions/1116652-how-to-view-complex-number-from-quadratic-equation.html
باید توجه داشته باشم که من همچنین دیده ام که افرادی از ابزار Excels Goal Seek برای حل یک معادله درجه دوم استفاده می کنند، اما برای پول من، فرمول های توضیح داده شده در بالا به خوبی کار می کنند. احساس من این است که اگر بتوانید از فرمولی برای استخراج یک راه حل استفاده کنید، به نظر من نیاز به انجام کار تکراری که ابزار جستجوی هدف در آن بسیار ماهر است برطرف شده است. اگر ترجیح می دهید با ابزار جستجوی هدف کار کنید، ممکن است این صفحه وب برای شما مفید باشد:
https://www.wikihow.com/Solve-a-Quadratic-Equation-Using-the-Goal-Seek-Feature-on-Microsoft-Excel
قبلاً اشاره کردم که می توانید تابع تعریف شده توسط کاربر خود را بسازید تا راه حل های خود را برای یک معادله درجه دوم استخراج کنید. در اینجا یکی است که می توانید به راحتی آن را پیاده سازی کنید:
Function Quadratic(a As Double, b As Double, _
c As Double, r As Integer) As Variant
Quadratic = CVErr(xlErrValue)
If r = 1 Then
Quadratic = CVErr(xlErrNA)
If b ^ 2 > (4 * a * c) Then
Quadratic = (-b + Sqr(b ^ 2 - (4 * a * c))) / (2 * a)
End If
End If
If r = 2 Then
Quadratic = CVErr(xlErrNA)
If b ^ 2 > (4 * a * c) Then
Quadratic = (-b - Sqr(b ^ 2 - (4 * a * c))) / (2 * a)
End If
End If
End Function
این تابع به چهار پارامتر نیاز دارد: مقادیر A، B و C، به علاوه یک نشانگر برای اینکه آیا پاسخ اول (مثبت) را می خواهید یا پاسخ دوم (منفی). با توجه به سه مقدار در سلول های A1، B1 و C1، در اینجا چگونه می توانید نتیجه دوم (منفی) را در کاربرگ خود دریافت کنید:
=Quadratic(A1, B1, C1, 2)
اگر نشانگر شما (پارامتر چهارم) 1 یا 2 نباشد، تابع یک #VALUE برمی گرداند! خطا اگر ثابت هایی که برای سه پارامتر اول ارائه می دهید به یک پاسخ خیالی منجر شود، آنگاه تابع یک #NUM برمی گرداند! خطا