ویژگی تصویر

تابع NETWORKDAYS.INTL در اکسل

  /  اکسل   /  تابع NETWORKDAYS.INTL در اکسل
بنر تبلیغاتی الف

تابع NETWORKDAYS.INTL یکی از توابع مفید اکسل برای محاسبه تعداد روزهای کاری بین دو تاریخ است. این تابع نسبت به نسخه قدیمی NETWORKDAYS انعطاف بیشتری دارد و می‌توان روزهای پایانی هفته (weekend) را به‌صورت دلخواه تعریف کرد یا حتی یک الگوی هفت‌رقمی برای روزهای تعطیل هفتگی مشخص نمود.

فرمول کلی و پارامترها

پارامترتوضیح
start_dateتاریخ شروع (تاریخ یا ارجاع به سلول حاوی تاریخ)
end_dateتاریخ پایان (تاریخ یا ارجاع)
weekend (اختیاری)تعریف روزهای انتهایی هفته: عدد کددار (1–17) یا رشته ۷ رقمی متشکل از 0 و 1 (از دوشنبه تا یک‌شنبه)
holidays (اختیاری)مجموعه‌ای از تاریخ‌ها یا ارجاعات به سلول‌ها که به‌عنوان تعطیلات در نظر گرفته می‌شوند

نکات مهم درباره weekend

  • اگر پارامتر weekend حذف شود یا برابر 1 قرار گیرد، شنبه و یکشنبه به‌عنوان روزهای تعطیل هفتگی در نظر گرفته می‌شوند (حالت استاندارد در بسیاری از کشورها).
  • می‌توانید از اعداد 1 تا 17 استفاده کنید. به‌عنوان مثال 1 = شنبه و یکشنبه؛ 2 = یکشنبه و دوشنبه؛ 11 = فقط یکشنبه؛ 16 = فقط جمعه و غیره.
  • یا از رشتهٔ هفت‌رقمی مانند “0000011” استفاده کنید که نشان‌دهندهٔ دوشنبه تا یکشنبه (جانمایی: کار از دوشنبه = اولین رقم) است. رقم 1 به معنی روز تعطیل هفتگی و صفر به معنی روز کاری است. برای مثال “0000100” یعنی جمعه تعطیل است (اگر جمعه روز پنجم باشد).

مثال‌های عملی

فرض کنید می‌خواهیم تعداد روزهای کاری بین 1 فروردین 1404 و 31 فروردین 1404 را محاسبه کنیم، با این فرض که تعطیلات آخر هفته شنبه و یکشنبه باشد و روز 13 فروردین هم تعطیل رسمی است:

=NETWORKDAYS.INTL(DATE(2025,3,21),DATE(2025,4,20),1,DATE(2025,4,2))

توضیح: در این مثال از تابع DATE برای وارد کردن تاریخ به میلادی (مثال برای محیطی که تاریخ میلادی استفاده می‌شود) استفاده شده؛ پارامتر weekend برابر 1 است (شنبه و یکشنبه تعطیل) و DATE(2025,4,2) به‌عنوان تعطیل رسمی اضافه شده است. خروجی تعداد روزهای کاری بین دو تاریخ را برمی‌گرداند (شامل تاریخ شروع و پایان درصورتی‌که آن‌ها روز کاری باشند).

مثال با رشتهٔ تعطیلات هفتگی: اگر بخواهیم تنها جمعه را تعطیل در نظر بگیریم (مثلاً در کشوری که جمعه تعطیل است)، از رشتهٔ هفت‌رقمی استفاده می‌کنیم:

=NETWORKDAYS.INTL(A2,B2,"0000100",Holidays)

توضیح: فرض کنید A2 = 2025-04-01 و B2 = 2025-04-30 و یک Named Range به نام Holidays داریم که تاریخ‌های تعطیلات رسمی را شامل می‌شود. رشته “0000100” نشان می‌دهد که تنها روز پنجم (جمعه) تعطیل هفتگی است.

مثال عملی با محدوده تعطیلات

بسیار متداول است که فهرست تعطیلات را در جدولی نگهداری کنیم. فرض کنید ستون E از E2:E10 تاریخ تعطیلات را دارد. فرمول به شکل زیر می‌شود:

=NETWORKDAYS.INTL(A2,B2,1,E2:E10)

توضیح: A2 تاریخ شروع، B2 تاریخ پایان و E2:E10 محدوده‌ای از تاریخ‌های تعطیلات رسمی است که از محاسبه روزهای کاری حذف می‌شوند.

مثال حالت بازگشتی و بررسی خطاها

اگر پارامتر تاریخ‌ها معتبر نباشند یا قالب قابل تشخیصی نباشد، تابع خطای #VALUE! برمی‌گرداند. همچنین اگر رشتهٔ weekend طولش غیر از 7 کاراکتر یا شامل کاراکترهای غیر از 0 و 1 باشد، نیز خطا ایجاد خواهد شد.

=NETWORKDAYS.INTL("invalid",B2,1)

توضیح: این فرمول باعث خطای #VALUE! می‌شود چون تاریخ شروع معتبر نیست.

موارد کاربرد و توصیه‌های حرفه‌ای

  • استفاده در محاسبه زمان تحویل پروژه‌ها: محاسبه تعداد روزهای کاری بین تاریخ شروع و پایان قرارداد بدون احتساب تعطیلات رسمی.
  • محاسبه مرخصی و ذخیرهٔ روزهای کاری: محاسبه تعداد روزهای کاری قابل استفاده یک کارمند در بازهٔ مشخص.
  • گزارشگری مالی و آمار زمان‌بندی: وقتی نیاز به معیارهای مبتنی بر روزهای کاری داریم (مثلاً میانگین زمان پاسخ در روزهای کاری).
  • بهتر است لیست تعطیلات را در یک Named Range قرار دهید تا فرمول‌ها خواناتر و قابل نگهداری‌تر شوند.
  • در کار با تقویم‌های غیرمرسوم، از رشتهٔ 7 رقمی برای تعیین دقیق روزهای تعطیل هفتگی استفاده کنید.

نکاتی فنی و بهینه‌سازی

  • NETWORKDAYS.INTL در اکسل 2010 به بعد در دسترس است؛ در نسخه‌های قدیمی‌تر تنها NETWORKDAYS وجود دارد که امکان تعریف custom weekend را ندارد.
  • برای استفاده در Google Sheets نیز همین نام تابع موجود است ولی در پیاده‌سازی‌های مختلف ممکن است تفاوت‌های کوچکی در آرگومان رشته‌ای وجود داشته باشد.
  • اگر مجموعه تعطیلات بزرگ است و محاسبات متعدد انجام می‌دهید، بهتر است از جدول (Table) یا Named Range استفاده کنید و محاسبات را با فرمول‌های آرایه‌ای یا Power Query بهینه‌سازی کنید تا سرعت شیت حفظ شود.

نمونهٔ ترکیبی پیشرفته

محاسبه تعداد روزهای کاری بین تاریخ‌های ستون A و B، با فرض تعطیلی جمعه و روزهای رسمی در محدوده Holidays، به همراه جلوگیری از خطا:

=IF(AND(ISNUMBER(A2),ISNUMBER(B2)),
   NETWORKDAYS.INTL(A2,B2,"0000100",Holidays),
   "تاریخ نامعتبر")

توضیح: این فرمول ابتدا بررسی می‌کند که A2 و B2 تاریخ معتبر باشند. اگر معتبر باشند، NETWORKDAYS.INTL را با جمعه به‌عنوان تعطیلی هفتگی و محدوده Holidays اجرا می‌کند؛ در غیر این صورت پیام خطا به‌صورت متنی نشان می‌دهد.

خلاصه

NETWORKDAYS.INTL تابعی قدرتمند برای محاسبه روزهای کاری بین دو تاریخ است که امکان تعریف دقیق روزهای تعطیل هفتگی و وارد کردن فهرست تعطیلات رسمی را فراهم می‌کند. با استفاده صحیح از پارامتر weekend (به‌صورت عددی یا رشتهٔ 7 رقمی) و فراهم آوردن یک لیست مرتب از تعطیلات، می‌توانید محاسبات زمان‌بندی و گزارشگری خود را دقیق و سازگار با تقویم سازمان یا کشور خود انجام دهید.

آیا این مطلب برای شما مفید بود ؟

خیر
بله
موضوعات شما در انجمن: