تابع atan2 در اکسل
تابع ATAN2 در اکسل (آتان دو) برای محاسبهٔ زاویهٔ قطبی (آرگومان) از مختصات دکارتی یک نقطه استفاده میشود. این تابع زاویه را بر اساس نسبت y به x و با توجه به چهار ربع صفحه تعیین میکند، بنابراین نتایج آن دقیقتر از گرفتن صرف آرکتانژانسی ساده (ATAN(y/x)) است.
چرا ATAN2 مهم است؟
- تعیین جهت (azimuth) بین دو نقطه یا بین بردار و محور x
- تبدیل مختصات دکارتی (x,y) به مختصات قطبی (r,θ)
- کاربرد در تحلیلهای مهندسی، رباتیک، GIS و نمودارهای برداری
نحو (Syntax)
نحو تابع در اکسل به صورت زیر است:
=ATAN2(y,x)که در آن y رقم عمودی و x رقم افقی است. خروجی برحسب رادیان و در بازهٔ (-π, π] قرار دارد (معمولاً از -π تا +π).
توضیحات عملی و نکات رفتاری
نکات مهمی که در هنگام استفاده از ATAN2 باید در نظر گرفت:
- خروجی بر حسب رادیان است؛ برای تبدیل به درجه از تابع
DEGREES()یا ضرب در180/PI()استفاده کنید. - ATAN2 با در نظر گرفتن علامتهای x و y مکان زاویه را در یکی از چهار ربع تشخیص میدهد، بنابراین تفاوتهای استاندارد ATAN را ندارد.
- اگر x یا y غیر عددی باشند، اکسل خطای #VALUE! یا خطای مربوطه را بازمیگرداند — بهتر است ورودیها را قبل از فراخوانی تابع بررسی کنید.
- در حالت نظری زاویه زمانی که x و y هر دو صفر باشند تعریف نشده است؛ در عمل بهتر است پیش از استفاده این حالت را اعتبارسنجی کنید (در برخی نسخهها رفتار متفاوتی ممکن است مشاهده شود).
مثالهای کاربردی با فرمولهای اکسل
چند مثال ساده و متداول:
=ATAN2(B2,A2) ' خروجی برحسب رادیان
=DEGREES(ATAN2(B2,A2)) ' خروجی برحسب درجه (-180 تا 180)
=MOD(DEGREES(ATAN2(B2,A2))+360,360) ' خروجی برحسب درجه در بازه 0 تا 360در اینجا A2 مقدار x و B2 مقدار y است.
توضیح: خط اول زاویه را به رادیان میدهد. خط دوم آن را به درجه تبدیل میکند (نتیجه ممکن است منفی باشد چون بازه -180 تا 180 است). خط سوم با استفاده از MOD بازه را به 0–360 تبدیل میکند که برای زاویهنماها (compass bearing) معمولاً مفید است.
مثال عددی و جدول مقایسه
| x | y | ATAN2(x,y) — رادیان | درجه (DEGREES) |
|---|---|---|---|
| 1 | 1 | =ATAN2(1,1) → 0.7854 | =DEGREES(ATAN2(1,1)) → 45° |
| -1 | 1 | =ATAN2(1,-1) → 2.3562 | 135° |
| -1 | -1 | =ATAN2(-1,-1) → -2.3562 | -135° (یا 225° با MOD) |
| 1 | -1 | =ATAN2(-1,1) → -0.7854 | -45° (یا 315° با MOD) |
کاربردهای پیشرفته و مثالهای واقعی
- تبدیل مختصات برای رسم نمودار قطبی یا محاسبهٔ فاصله و جهت بین دو نقطه در نقشههای ساده.
- در رباتیک و کنترل، برای محاسبهٔ جهت مطلوب حرکت موتور یا زاویهٔ چرخش شفت.
- در تحلیلهای داده زمانی و حرکت خودرو/کشتی، برای استخراج زاویهٔ حرکت و ترسیم مسیر.
محاسبهٔ جهت بین دو نقطه (مثال)
=MOD(DEGREES(ATAN2(y2-y1, x2-x1))+360,360)توضیح: این فرمول جهت حرکت از نقطهٔ (x1,y1) به نقطهٔ (x2,y2) را به درجه در بازه 0–360 محاسبه میکند. ابتدا تفاضل y و x را میگیریم تا بردار بین دو نقطه به دست آید، سپس ATAN2 و تبدیل به درجه و در نهایت با MOD بازه را مثبت میکنیم.
استفاده در VBA
اگر بخواهید ATAN2 را در ماکرو استفاده کنید، میتوانید از WorksheetFunction بهره ببرید:
Sub ExampleAtan2()
Dim x As Double, y As Double, angleRad As Double, angleDeg As Double
x = 3
y = 4
angleRad = Application.WorksheetFunction.Atan2(y, x)
angleDeg = angleRad * 180 / WorksheetFunction.Pi()
MsgBox "Angle (deg): " & angleDeg
End Subتوضیح: در این ماکرو از Application.WorksheetFunction.Atan2 برای محاسبهٔ زاویه برحسب رادیان استفاده شده، سپس با ضرب در 180/π به درجه تبدیل شده و در یک پنجره پیام نمایش داده میشود. اگر نیاز به بازهٔ 0–360 دارید میتوانید از MOD استفاده یا در VBA عمل شرطی انجام دهید (اگر angleDeg<0 then angleDeg = angleDeg+360).
نکات بهینهسازی و عیبیابی
- همیشه ورودیها را با ISNUMBER یا IFERROR بررسی کنید تا از خطا جلوگیری شود.
- برای کاربردهای دستهای، از ستونهای کمکی برای محاسبهٔ dx و dy استفاده کنید تا فرمولها خواناتر شوند.
- اگر زاویهٔ خروجی باید در بازهٔ خاصی قرار بگیرد (مثلاً 0–360)، از MOD یا اصلاح شرطی استفاده کنید.
- دقت عددی: برای مقادیر بسیار کوچک یا بسیار بزرگ بهتر است مقیاسبندی یا نرمالسازی انجام شود تا خطای عددی کاهش یابد.
جمعبندی
تابع ATAN2 در اکسل ابزاری قدرتمند برای تبدیل مختصات و محاسبهٔ جهت است که با در نظر گرفتن علامتهای x و y مکان دقیق زاویه را در هر یک از چهار ربع برمیگرداند. برای نمایش انسانیتر زاویهها از تبدیل به درجه و اصلاح بازه استفاده کنید. در پروژههای مهندسی، GIS و تحلیلهای حرکت، ATAN2 یکی از توابع پایهای و ضروری محسوب میشود.
آیا این مطلب برای شما مفید بود ؟




