تابع WORKDAY در اکسل
تابع WORKDAY در اکسل ابزاری ساده اما قدرتمند برای محاسبه تاریخِ حاصل از افزودن یا کسری از روزهای کاری به یک تاریخ مبنا است. این تابع به شما امکان میدهد تعطیلات رسمی و روزهای غیرکاری (weekends) را حذف کنید تا تاریخهای دقیق تحویل، پرداخت حقوق، یا مهلتها را محاسبه کنید.
تعریف و ساختار تابع WORKDAY
ساختار پایه تابع WORKDAY در اکسل به صورت زیر است:
| فرم | معنی |
|---|---|
| =WORKDAY(start_date, days, [holidays]) | محاسبه تاریخ بعد از افزودن تعداد مشخصی روز کاری به تاریخ شروع؛ آرگومان اختیاری holidays فهرستی از تعطیلات است. |
- start_date: تاریخ شروع (میتواند مرجع سلول یا مقدار تاریخ باشد).
- days: تعداد روزهای کاری که باید اضافه یا کم شوند (عدد صحیح؛ مقادیر منفی برای برگشت به گذشته).
- holidays: (اختیاری) برداری از تاریخهای تعطیل که نباید بهعنوان روز کاری شمرده شوند.
مثالهای عملی (فرمولهای اکسل)
مثال ساده: اگر در سلول A2 تاریخ 2025/11/01 باشد و بخواهید 10 روز کاری بعد را پیدا کنید:
=WORKDAY(A2, 10)این فرمول تاریخ 10 روز کاری (بدون احتساب شنبه و یکشنبه و تعطیلات) بعد از تاریخ A2 را بازمیگرداند. اگر A2 یک جمعه یا شنبه باشد، شمارش از اولین روز کاری بعدی انجام میشود.
مثال با لیست تعطیلات: فرض کنید محدوده C2:C6 شامل تاریخهای تعطیلات رسمی است:
=WORKDAY(A2, 10, C2:C6)در این حالت، تاریخهای داخل C2:C6 نیز از شمارش حذف میشوند و تاریخ نهایی طبق تقویم کاری محاسبه میشود.
WORKDAY.INTL — کنترل کامل روی روزهای تعطیل هفتگی
تابع WORKDAY.INTL نسخه پیشرفتهتر است که به شما اجازه میدهد الگوی تعطیلات هفتگی (weekend) را مشخص کنید. ساختار آن:
=WORKDAY.INTL(start_date, days, [weekend], [holidays])آرگومان weekend میتواند یک عدد از پیشتعریف شده (۱ تا ۱۷) یا یک رشته ۷کاراکتری از 0 و 1 باشد که به ترتیب از دوشنبه تا یکشنبه نشان میدهد کدام روزها تعطیل هستند (1=تعطیل، 0=کاری).
مثال: شنبه و یکشنبه بهعنوان تعطیلات (رشته):
=WORKDAY.INTL(A2, 5, "0000011", C2:C6)در این رشته، دو رقم آخر (شنبه و یکشنبه) برابر 1 هستند، یعنی آن روزها جزو تعطیلات هفتگی محسوب میشوند.
جدول نمونه کدهای weekend (پرتکرار)
| کد | تعریف |
|---|---|
| 1 | شنبه-یکشنبه (پیشفرض) |
| 2 | یکشنبه-دوشنبه |
| 11 | فقط یکشنبه تعطیل |
| 17 | سفارشی با رشته ۷ رقمی |
برای لیست کاملِ کدها میتوانید به راهنمای اکسل مراجعه کنید، یا بهجای کد از رشته ۷تایی برای کنترل دقیق استفاده کنید.
نکات و جزئیات فنی
- اگر مقدار days غیر عدد صحیح باشد، اکسل قسمت کسری را حذف میکند (Truncate) و فقط بخش صحیح را در نظر میگیرد.
- اگر start_date متنی باشد، بهتر است با تابع DATE یا تبدیل تاریخ به فرمت صحیح از خطا جلوگیری کنید؛ اکسل تاریخها را بر پایه serial number ذخیره میکند.
- WORKDAY در اکسل 2007 و بعد از آن بهصورت داخلی موجود است؛ در نسخههای قدیمیتر ممکن است نیاز به افزودنی Analysis ToolPak باشد.
- اگر بخواهید روزی را صرفاً به تاریخ کاری بعدی برگردانید (بدون تغییر در مقدار days)، از ترکیب با IF و WEEKDAY استفاده کنید؛ اما WORKDAY به طور ذاتی این کار را انجام میدهد وقتی days=0، خروجی اولین روز کاری بعدی یا همان روز است (بسته به اینکه start_date کاری باشد یا خیر).
نمونه کاربردها در مدیریت پروژه و منابع انسانی
- محاسبه تاریخ تحویل وظایف با کنار گذاشتن تعطیلات و آخر هفتهها.
- محاسبه تاریخ پرداخت حقوق یا پرداخت فاکتورها که باید در روزهای کاری انجام شود.
- تنظیمات خودکار برای اعلانها و یادآورها در سیستمهای گزارشدهی بر اساس تاریخ کاری.
- برنامهریزی خطوط تولید که نیاز به محاسبه زمان کاری حقیقی دارد.
مثال VBA برای استفاده از WORKDAY
Sub CalcWorkdayVBA()
Dim startDate As Date
Dim resultDate As Date
Dim daysToAdd As Long
startDate = Range("A2").Value
daysToAdd = Range("B2").Value
resultDate = WorksheetFunction.WorkDay(startDate, daysToAdd, Range("C2:C6"))
Range("D2").Value = resultDate
End Subاین ماکرو تاریخ شروع را از سلول A2 میگیرد، تعداد روزهای کاری را از B2 میخواند، لیست تعطیلات را از C2:C6 استفاده میکند و نتیجه را در D2 درج میکند. تابع WorksheetFunction.WorkDay معادل تابع WORKDAY بر بستر VBA است.
موارد قابل توجه و اشتباهات رایج
- آرایه holidays باید تاریخهای واقعی باشد؛ قراردادن متنهای غیرقابل تبدیل به تاریخ منجر به خطا میشود.
- استفاده از فرمتهای تاریخ محلی (مثلاً dd/mm/yyyy یا mm/dd/yyyy) باید مطابق تنظیمات منطقهای سیستم باشد تا خطا پیش نیاید.
- برای محاسبات حجیم در شیتهای بزرگ، لیستهای holidays را در یک جدول داخلی نگه دارید تا محاسبات سریعتر و نگهداری آسانتر شود.
توصیههای متخصصی
- برای انعطافپذیری بیشتر، از WORKDAY.INTL استفاده کنید تا بتوانید الگوهای تعطیلی محلی یا شیفتی را مدلسازی کنید.
- هنگام طراحی داشبوردهای زمانبندی، فهرست تعطیلات را در یک شیت جداگانه قرار دهید و با نامگذاری محدوده (Named Range) آن را در فرمولها ارجاع دهید؛ این کار خوانایی و نگهداری را بهبود میدهد.
- برای جلوگیری از خطا، ورودیهای تاریخ را با Data Validation محدود کنید تا کاربران فقط تاریخ صحیح وارد کنند.
خلاصه
تابع WORKDAY و نسخه پیشرفته WORKDAY.INTL ابزارهای ضروری برای هر کسی هستند که میخواهد برنامهریزی مبتنی بر روزهای کاری دقیق انجام دهد. از محاسبه مهلتها گرفته تا زمانبندی پرداختها و گزارشهای پروژه، این توابع کمک میکنند تاریخهای حقیقی کاری را بدون دردسر محاسبه کنید.
آیا این مطلب برای شما مفید بود ؟




