فهرست مطالب
این آموزش کوتاه استفاده از توابع NETWORKDAYS و WORKDAY اکسل را برای محاسبه روزهای کاری با پارامترهای سفارشی آخر هفته و تعطیلات توضیح می دهد.
Microsoft Excel دو عملکرد ویژه برای محاسبه روزهای هفته ارائه می دهد - WORKDAY و NETWORKDAYS.
عملکرد WORKDAY تاریخ N روز کاری در آینده یا گذشته را برمی گرداند و می توانید از آن برای اضافه یا تفریق روزهای کاری به تاریخ معین استفاده کنید.
با استفاده از تابع NETWORKDAYS ، میتوانید تعداد روزهای کاری را بین دو تاریخی که مشخص کردهاید محاسبه کنید.
در اکسل 2010 و بالاتر، تغییرات قدرتمندتری از توابع ذکر شده در بالا موجود است. WORKDAY.INTL و NETWORKDAYS.INTL، که به شما امکان می دهند تعیین کنید کدام و چند روز روزهای آخر هفته هستند.
و اکنون، بیایید نگاهی دقیق تر به هر تابع داشته باشیم و ببینیم چگونه می توانید از آن برای محاسبه روزهای کاری استفاده کنید. کاربرگ های اکسل شما.
عملکرد اکسل WORKDAY
عملکرد اکسل WORKDAY تاریخی را برمی گرداند که تعداد روزهای کاری معین است. قبل یا قبل از تاریخ شروع این برنامه تعطیلات آخر هفته و همچنین تعطیلاتی را که شما مشخص کردهاید مستثنی میکند.
عملکرد WORKDAY برای محاسبه روزهای کاری، نقاط عطف و سررسیدها بر اساس تقویم کاری استاندارد، با شنبه و یکشنبه روزهای آخر هفته است.
0>WORKDAY یک تابع داخلی در اکسل 2007 - 365 است. در نسخه های قبلی، باید آنالیز را فعال کنید.مجموعه کوچکی از چیزهای ضروری و استخراج بقیه. من از شما برای خواندن تشکر می کنم و امیدوارم هفته آینده در وبلاگ ما ببینیم!
ToolPak.هنگام استفاده از WORKDAY در اکسل، باید آرگومان های زیر را وارد کنید:
WORKDAY(تاریخ_شروع، روزهای، [تعطیلات])2 آرگومان اول مورد نیاز است و آخرین آرگومان اختیاری است. :
- تاریخ_شروع - تاریخی که از آن به بعد شمارش روزهای هفته شروع می شود.
- روزها - تعداد روزهای کاری برای افزودن/ تفریق از start_date. یک عدد مثبت تاریخ آینده را برمیگرداند، یک عدد منفی تاریخ گذشته را برمیگرداند.
- تعطیلات - فهرستی اختیاری از تاریخهایی که نباید به عنوان روزهای کاری حساب شوند. این میتواند محدودهای از سلولهای حاوی تاریخهایی باشد که میخواهید از محاسبات حذف شوند، یا یک آرایه ثابت از شمارههای سریال که تاریخها را نشان میدهند.
اکنون که اصول اولیه را میدانید، بیایید ببینیم چگونه می توانید از تابع WORKDAY در کاربرگ های اکسل خود استفاده کنید.
نحوه استفاده از WORKDAY برای اضافه یا تفریق روزهای کاری به تاریخ
برای محاسبه روزهای کاری در اکسل، این قوانین ساده را دنبال کنید:
- برای افزودن روزهای کاری، یک عدد مثبت به عنوان آرگومان روز فرمول WORKDAY وارد کنید.
- برای کاهش روزهای کاری، از یک عدد منفی در آرگومان days .
فرض کنید شما یک تاریخ شروع در سلول A2، لیستی از تعطیلات در سلول های B2:B5 دارید، و می خواهید تاریخ 30 روز کاری در آینده و گذشته. می توانید این کار را با استفاده از فرمول های زیر انجام دهید:
برای افزودن 30 روز کاری به تاریخ شروع، به استثنای تعطیلات درB2:B5:
=WORKDAY(DATE(2015,5,6), 30)
برای کم کردن 30 روز کاری از تاریخ شروع، به استثنای تعطیلات در B2:B5:
=WORKDAY(A2, -30, B2:B5)
برای محاسبه روزهای هفته بر اساس در تاریخ فعلی ، از تابع TODAY() به عنوان تاریخ شروع استفاده کنید:
برای افزودن 30 روز کاری به تاریخ امروز:
=WORKDAY(TODAY(), 30)
به 30 روز کاری از تاریخ امروز کم کنید:
=WORKDAY(TODAY(), -30)
برای ارائه مستقیم تاریخ شروع به فرمول، از تابع DATE استفاده کنید:
=WORKDAY(DATE(2015,5,6), 30)
اسکرین شات زیر نتایج همه اینها و چند فرمول WORKDAY دیگر را نشان می دهد:
و طبیعتاً، می توانید تعداد روزهای کاری را برای افزودن/کاهش از تاریخ شروع وارد کنید. چند سلول، و سپس به آن سلول در فرمول خود مراجعه کنید. برای مثال:
=WORKDAY(A2, C2)
در جایی که A2 تاریخ شروع است و C2 تعداد روزهای غیر آخر هفته پشت (اعداد منفی) یا جلوتر از (اعداد مثبت) تاریخ شروع است، بدون تعطیلات برای حذف.
نکته. در اکسل 365 و 2021، میتوانید از WORKDAY در ترکیب با SEQUENCE برای ایجاد یک سری روزهای کاری استفاده کنید.
عملکرد اکسل WORKDAY.INTL
WORKDAY.INTL اصلاح قدرتمندتری از WORKDAY است. تابعی که با پارامترهای سفارشی آخر هفته کار می کند. و همچنین WORKDAY، تاریخی را برمی گرداند که تعداد مشخصی از روزهای کاری در آینده یا در گذشته است، اما به شما امکان می دهد تعیین کنید کدام روزهای هفته باید روزهای آخر هفته در نظر گرفته شوند.
عملکرد WORKDAY.INTL در معرفی شدExcel 2010 و به همین دلیل در نسخه های قبلی اکسل موجود نیست.
سینتکس تابع Excel WORKDAY.INTL به شرح زیر است:
WORKDAY.INTL(تاریخ_شروع، روزها، [آخر هفته]، [تعطیلات])دو آرگومان اول مورد نیاز هستند و شبیه به WORKDAY هستند:
Start_date - تاریخ اولیه.
روزها - تعداد روزهای کاری قبل از (مقدار منفی) یا بعد از (مقدار مثبت) تاریخ شروع. اگر آرگومان days
به عنوان یک عدد اعشاری ارائه شود، به عدد صحیح کوتاه می شود.
دو آرگومان آخر اختیاری هستند:
Weekend - مشخص می کند که کدام روزهای هفته باید باشد. به عنوان روزهای آخر هفته حساب می شود. این می تواند یک عدد یا یک رشته باشد، همانطور که در زیر نشان داده شده است. 1 یا حذف شده
رشته آخر هفته - مجموعه ای از هفت 0 و 1 که نشان دهنده هفت روز هفته است،از دوشنبه شروع می شود 1 نشان دهنده یک روز غیر کاری و 0 نشان دهنده یک روز کاری است. به عنوان مثال:
- "0000011" - شنبه و یکشنبه آخر هفته هستند.
- "1000001" - دوشنبه و یکشنبه آخر هفته هستند.
در نگاه اول ، رشته های آخر هفته ممکن است اضافی به نظر برسند، اما من شخصاً این روش را بهتر دوست دارم زیرا می توانید یک رشته آخر هفته را بدون نیاز به به خاطر سپردن هیچ شماره ای بسازید.
تعطیلات - یک لیست اختیاری از تاریخ ها می خواهید از تقویم روز کاری حذف کنید. این میتواند طیفی از سلولها حاوی تاریخها یا ثابت آرایهای از مقادیر سریالی باشد که این تاریخها را نشان میدهد.
استفاده از WORKDAY.INTL در Excel - نمونههای فرمول
خب، حجم بسیار بزرگ نظریه ای که اخیراً در مورد آن بحث کردیم ممکن است کاملاً پیچیده و گیج کننده به نظر برسد، اما تلاش در فرمول ها کار را بسیار آسان می کند.
در مجموعه داده ما، با تاریخ شروع در سلول A2 و لیست تعطیلات در A5 :A8، بیایید روزهای کاری را با تعطیلات آخر هفته سفارشی محاسبه کنیم.
برای افزودن 30 روز کاری به تاریخ شروع، جمعه و شنبه به عنوان تعطیلات آخر هفته و تعطیلات در A5:A8 محاسبه می شود:
=WORKDAY.INTL(A2, 30, 7, A5:A8)
یا
=WORKDAY.INTL(A2, 30, "0000110", A5:A8)
برای کاهش 30 روز کاری از تاریخ شروع، یکشنبه و دوشنبه بهعنوان تعطیلات آخر هفته و تعطیلات در A5 محاسبه میشوند: A8 حذف نمیشوند. :
=WORKDAY.INTL(A2, -30, 2, A5:A8)
یا
=WORKDAY.INTL(A2, -30, "1000001", A5:A8)
برای افزودن 10 روز کاری به تاریخ فعلی ، یکشنبه تنها روز آخر هفته است، نهتعطیلات:
=WORKDAY.INTL(TODAY(), 10, 11)
یا
=WORKDAY.INTL(A2, 10, "0000001")
در برگه اکسل شما، فرمول ها ممکن است شبیه به این باشند:
توجه داشته باشید. هر دو توابع اکسل WORKDAY و WORKDAY.INTL شماره های سریال را نشان دهنده تاریخ ها برمی گردانند. برای اینکه آن اعداد به عنوان تاریخ نمایش داده شوند، سلول های دارای اعداد را انتخاب کنید و Ctrl+1 را فشار دهید تا کادر گفتگوی Format Cells باز شود. در برگه Number ، Date را در فهرست Category انتخاب کنید و قالب تاریخ مورد نظر خود را انتخاب کنید. برای جزئیات مراحل، لطفاً نحوه تغییر فرمت تاریخ در اکسل را ببینید.
خطاهای اکسل WORKDAY و WORKDAY.INTL
اگر فرمول اکسل WORKDAY یا WORKDAY.INTL شما خطایی را برمی گرداند، احتمالاً دلیل آن یکی از موارد زیر است:
# خطای NUM! رخ می دهد اگر:
- ترکیبی از آرگومان های
start_date
وdays
منجر به تاریخ نامعتبر شود، یا -
weekend
آرگومان در تابع WORKDAY.INTL نامعتبر باشد. .
#VALUE! اگر یکی از موارد زیر رخ دهد:
-
start_date
یا هر مقداری درholidays
تاریخ معتبری نباشد، یا - آرگومان
days
غیر عددی است.
عملکرد Excel NETWORKDAYS
عملکرد NETWORKDAYS در اکسل تعداد روزهای کاری بین دو تاریخ، به استثنای تعطیلات آخر هفته و در صورت تمایل، تعطیلات شما را برمی گرداند. مشخص کنید.
سینتکس Excel NETWORKDAYS بصری است و به راحتی قابل یادآوری است:
NETWORKDAYS(start_date، end_date، [تعطیلات])دو آرگومان اول اجباری هستند و آرگومان سوماختیاری:
- تاریخ_شروع - تاریخ اولیه ای که از آن شمارش روزهای کاری شروع می شود.
- تاریخ_پایان - پایان دوره ای که برای آن شما در حال شمارش روزهای کاری هستید.
تاریخ شروع و پایان هر دو در تعداد روزهای کاری برگشتی محاسبه می شوند.
- تعطیلات - یک لیست اختیاری از تعطیلاتی که نباید به عنوان روزهای کاری شمارش شوند.
نحوه استفاده از NETWORKDAYS در اکسل - مثال فرمول
فرض کنید لیستی از تعطیلات در سلول های A2:A5 دارید، تاریخ شروع در ستون B، تاریخ پایان در ستون C، و می خواهید بدانید که بین این تاریخ ها چند روز کاری وجود دارد. فرمول مناسب NETWORKDAYS به راحتی قابل تشخیص است:
=NETWORKDAYS(B2, C2, $A$2:$A$5)
توجه کنید که تابع Excel NETWORKDAYS زمانی که تاریخ شروع کمتر از تاریخ پایان باشد مقدار مثبت و اگر تاریخ پایان جدیدتر از تاریخ شروع است (مانند ردیف 5):
عملکرد Excel NETWORKDAYS.INTL
مانند NETWORKDAYS، تابع NETWORKDAYS.INTL اکسل تعداد روزهای هفته بین دو تاریخ را محاسبه میکند، اما به شما امکان میدهد مشخص کنید کدام روزها باید به عنوان روزهای آخر هفته شمارش شوند.
سینتکس تابع NETWORKDAYS.INTL بسیار شبیه به NETWORKDAYS است، با این تفاوت که [آخر هفته] اضافی دارد. ] پارامتری که نشان میدهد کدام روزهای هفته باید بهعنوان آخر هفته حساب شوند.
NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays] ) آگومان weekend
میتواند بپذیردیا یک عدد یا یک رشته اعداد و رشته های آخر هفته دقیقاً مشابه پارامتر weekend
تابع WORKDAY.INTL هستند.
عملکرد NETWORKDAYS.INTL در Excel 365 - 2010 موجود است.
استفاده از NETWORKDAYS.INTL در Excel - فرمول مثال
با استفاده از لیست تاریخ های مثال قبلی، بیایید تعداد روزهای کاری بین دو تاریخ را محاسبه کنیم که یکشنبه تنها روز آخر هفته است. برای این کار، شماره 11 را در آرگومان weekend
فرمول NETWORKDAYS.INTL خود تایپ کنید یا یک رشته از شش 0 و یک 1 ("0000001") بسازید:
=NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)
یا
=NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)
عکس صفحه زیر ثابت می کند که هر دو فرمول نتایج کاملاً یکسانی را ارائه می دهند.
نحوه برجسته کردن روزهای کاری در اکسل
با استفاده از با توابع WORKDAY و WORKDAY.INTL، نه تنها می توانید روزهای کاری را در کاربرگ های اکسل خود محاسبه کنید، بلکه می توانید آن ها را همانطور که منطق کسب و کار شما نیاز دارد برجسته کنید. برای این، شما یک قانون قالب بندی شرطی با فرمول WORKDAY یا WORKDAY.INTL ایجاد می کنید.
به عنوان مثال، در لیستی از تاریخ ها در ستون B، اجازه دهید فقط تاریخ های آینده را برجسته کنیم که در 15 روز کاری از تاریخ امروز هستند. ، به استثنای دو تعطیلات در سلول های A2:A3. واضح ترین فرمولی که به ذهن می رسد به شرح زیر است:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3))
قسمت اول آزمون منطقی تاریخ های گذشته را قطع می کند، یعنی بررسی می کنید که آیا یک تاریخ مساوی یا بزرگتر از امروز است. : $B2>TODAY(). و در قسمت دوم شما تایید می کنیدآیا یک تاریخ در آینده بیش از 15 روز هفته نیست، به استثنای روزهای آخر هفته و تعطیلات مشخص شده: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)
فرمول درست به نظر می رسد، اما هنگامی که یک قانون بر اساس آن ایجاد کنید، متوجه خواهید شد که اشتباه را برجسته می کند. dates:
بیایید سعی کنیم دلیل این اتفاق را دریابیم. مشکل از تابع WORKDAY نیست، همانطور که ممکن است کسی نتیجه بگیرد. عملکرد درست است، اما ... در واقع چه کاری انجام می دهد؟ تاریخ را 15 روز کاری از هماکنون برمیگرداند، به استثنای روزهای آخر هفته (شنبه و یکشنبه) و تعطیلات در سلولهای A2:A3.
بسیار خوب، و قانون مبتنی بر این فرمول چه میکند؟ تمام تاریخهایی که برابر یا بزرگتر از امروز و کمتر از تاریخ بازگشتشده توسط تابع WORKDAY هستند را برجسته میکند. می بینی؟ تمام تاریخ ها! اگر نمی خواهید آخر هفته ها و تعطیلات را رنگ آمیزی کنید، باید به صراحت به اکسل بگویید که این کار را نکند. بنابراین، ما دو شرط دیگر را به فرمول خود اضافه می کنیم:
- عملکرد WEEKDAY برای حذف تعطیلات آخر هفته: WEEKDAY($B2, 2)<6
- عملکرد COUNTIF برای حذف تعطیلات : COUNTIF($A$2:$A$3, $B2)=0
همانطور که در تصویر زیر نشان داده شده است، فرمول بهبود یافته کاملاً کار می کند:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)
همانطور که می بینید، توابع WORKDAY و WORKDAY.INTL محاسبه روزهای کاری در اکسل را سریع و آسان می کنند. البته، فرمولهای واقعی شما احتمالاً پیچیدهتر هستند، اما دانستن اصول اولیه بسیار کمک میکند، زیرا شما فقط میتوانید به خاطر بسپارید