تابع days در اکسل
تابع DAYS در اکسل برای محاسبه تعداد روزهای بین دو تاریخ استفاده میشود. این تابع ساده و سریع است و از نسخهٔ Excel 2013 به بعد در دسترس قرار گرفته است. اگرچه عملکرد آن پایهای به نظر میرسد، اما در بسیاری از گزارشها، داشبوردها و محاسبات زمانبندی کاربردی و ضروری است.
سینتکس تابع
سینتکس تابع به شکل زیر است:
DAYS(end_date, start_date)پارامترها:
- end_date: تاریخ پایان (یا تاریخ بزرگتر).
- start_date: تاریخ شروع (یا تاریخ کوچکتر).
نکته: در برخی تنظیمات محلی (locale) جداکنندهٔ آرگومانها به جای «,» به صورت «;» خواهد بود. همچنین تابع مقدار عدد صحیح (integer) روزها را برمیگرداند.
اعمال پایه و رفتار تابع
- نتیجه میتواند منفی باشد اگر end_date از start_date کوچکتر باشد.
- اگر ورودیها به صورت متن باشند، ممکن است خطا برگردد؛ در این موارد میتوانید از
DATEVALUEیا تبدیل مناسب استفاده کنید. - تابع فاصلهٔ تقویمی را برمیگرداند؛ تعطیلات یا روزهای کاری را حذف نمیکند (برای این منظور از
NETWORKDAYSیاDAYS360استفاده کنید).
مثالهای ساده
=DAYS("2025-12-31", "2025-01-01")این فرمول تعداد روزهای بین اول ژانویهٔ 2025 و 31 دسامبر 2025 را محاسبه میکند (در صورت نیاز به استفاده از متن تاریخ، بسته به تنظیمات منطقهای ممکن است نیاز به DATEVALUE باشد).
=DAYS(B2, A2)در این مثال فرض بر این است که سلول A2 تاریخ شروع و B2 تاریخ پایان را دارد. فرمول تعداد روزهای بین آنها را بازمیگرداند.
جدول نمونه
| Start Date | End Date | Formula | Result |
|---|---|---|---|
| 2025-01-01 | 2025-01-31 | =DAYS(B2,A2) | 30 |
| 2025-03-10 | 2025-02-28 | =DAYS(B3,A3) | -10 |
مقایسه با توابع دیگر
- DATEDIF: این تابع (ناوثق) اطلاعات دقیقتری مانند تعداد ماه یا سال را میتواند محاسبه کند؛ برای محاسبهٔ فقط روزها میتوانید
DATEDIF(start,end,"d")را استفاده کنید. - end_date – start_date: محاسبهٔ مستقیم با تفریق تاریخها نیز همان نتیجه را میدهد (در صورتی که هر دو مقدار تاریخ باشند).
- NETWORKDAYS: اگر بخواهید فقط روزهای کاری بین دو تاریخ (با یا بدون تعطیلات) را محاسبه کنید، از این تابع استفاده کنید.
- DAYS360: برای محاسبات مالی که سال 360 روزه مد نظر است کاربرد دارد.
موارد رایج و نکات حرفهای
- برای جلوگیری از نتایج منفی در گزارشها که باعث سردرگمی میشود، از
ABSاستفاده کنید:=ABS(DAYS(end,start)). - برای مدیریت سلولهای خالی یا تاریخهای نامعتبر از
IFوIFERRORاستفاده کنید:
=IF(OR(A2="",B2=""),"",DAYS(B2,A2))این فرمول اگر یکی از سلولها خالی باشد خروجی را خالی نگه میدارد و از خطا جلوگیری میکند.
=IFERROR(DAYS(B2,A2),"نامعتبر")این فرمول در صورت بروز خطا، متن «نامعتبر» را نمایش میدهد.
محاسبهٔ روزهای کاری (با حذف تعطیلات)
اگر میخواهید فقط روزهای کاری بین دو تاریخ را محاسبه کنید و لیست تعطیلات دارید، از مثال زیر استفاده کنید:
=NETWORKDAYS(A2,B2, HolidaysRange)در اینجا HolidaysRange محدودهای است که تاریخهای تعطیلات را شامل میشود. NETWORKDAYS روزهای شنبه و یکشنبه را پیشفرض حذف میکند (بسته به تنظیمات منطقه میتوانید از NETWORKDAYS.INTL برای سفارشیسازی تعطیلات هفتگی استفاده کنید).
مشکلات معمول و راهحلها
- نتیجهٔ غیرمنتظره (مثل عدد بسیار بزرگ یا ارور): مطمئن شوید که ورودیها تاریخ واقعی یا شمارهٔ سریال تاریخ باشند. اگر تاریخ بهصورت متن است، از
DATEVALUEاستفاده کنید. - اختلاف در فرمت جداکنندهٔ آرگومانها: در Excel فارسی یا برخی منطقهها از «;» به جای «,» استفاده کنید.
- نیاز به دقت در گزارشهای مالی: اگر از مبنای 360 روز استفاده میکنید، از
DAYS360بهره ببرید.
مثال کاربردی در داشبورد
فرض کنید میخواهید میانگین مدت اجرای پروژهها را گزارش دهید و برخی ردیفها هنوز در حال انجاماند (بدون تاریخ پایان). میتوانید از فرمول ترکیبی استفاده کنید تا فقط ردیفهای کامل را محاسبه و میانگین بگیرید:
=AVERAGE(IF(B2:B100"",DAYS(B2:B100,A2:A100)))این فرمول بهصورت آرایهای (Array Formula) عمل میکند؛ در نسخههای قدیمیتر باید با Ctrl+Shift+Enter تأیید شود. در Office 365 و Excel جدید بهصورت دینامیک کار میکند.
جمعبندی و نکات نهایی
- DAYS تابعی ساده و کارا برای محاسبهٔ تفاضل روزهاست.
- برای محاسبات پیچیدهتر از توابعی مانند
NETWORKDAYS،DAYS360وDATEDIFاستفاده کنید. - همیشه ورودیها را از نظر نوع (تاریخ یا متن) بررسی کنید و برای جلوگیری از خطا از
IFERRORیا چک خالی بودن سلول بهره ببرید. - به تفاوت جداکنندهٔ آرگومانها در نسخههای مختلف Excel توجه کنید.
با دانستن این نکات و ترکیب تابع DAYS با دیگر توابع اکسل میتوانید گزارشهای زمانی دقیق و خوانا برای مدیریت پروژه، منابع انسانی، مالی و غیره تهیه کنید.
آیا این مطلب برای شما مفید بود ؟




