تابع NOW در اکسل
تابع NOW یکی از توابع ساده اما پرکاربرد در اکسل است که تاریخ و زمان جاری سیستم را برمیگرداند. این تابع هیچ آرگومانی ندارد و مقدار آن بهصورت یک عدد سریال تاریخی است که میتوان آن را با فرمتهای مختلف تاریخ/زمان نمایش داد. تابع NOW برای ثبت زمان فعلی، محاسبهی مدت زمان گذشته و ایجاد گزارشهای زمانبندیشده مفید است.
نحو (Syntax) و مثالهای پایه
شکل سادهی تابع:
=NOW()توضیح: این فرمول تاریخ و زمان سیستم را در لحظهٔ بازخوانی صفحه برمیگرداند. برای مشاهدهٔ خروجی در قالب متن قابل خواندن میتوانید از تابع TEXT یا فرمت سلول استفاده کنید.
=TEXT(NOW(),"yyyy-mm-dd hh:mm:ss")توضیح: این فرمول مقدار NOW را به رشتهای با فرمت سال-ماه-روز ساعت:دقیقه:ثانیه تبدیل میکند تا نمایش یکنواختی داشته باشید.
نمایش و قالببندی تاریخ/زمان
- میتوانید از فرمت سلول (Format Cells) برای نمایش تاریخ یا فقط زمان استفاده کنید.
- تابع TEXT امکان ایجاد خروجی متنی با فرمت دلخواه را میدهد و مناسب گزارشگیری یا الحاق به متن است.
=TEXT(NOW(),"dd mmmm yyyy hh:mm")توضیح: این نمونه تاریخ را به صورت “روز ماه سال ساعت:دقیقه” نمایش میدهد. توجه داشته باشید که فرمتها در نسخههای زبانهای مختلف اکسل ممکن است تفاوت فرهنگی داشته باشند.
کاربردهای عملی و مثالها
- ثبت زمان رخداد: برای ثبت زمان ثبت یک رکورد یا زمان ارسال یک ایمیل در گزارشها.
- محاسبهٔ مدت گذشته: محاسبهٔ مدت بین زمان شروع و زمان فعلی.
- شرطگذاری بر اساس زمان: مثال—اگر تاخیر بیش از ۲۴ ساعت باشد، هشدار نمایش بده.
- داشبوردهای زنده: نمایش زمان آخرین بهروزرسانی در داشبوردها.
مثال محاسبهٔ مدت زمان گذشته (فرض کنید A1 زمان شروع است):
= (NOW() - A1) * 24توضیح: نتیجه این فرمول تعداد ساعتهای گذشته از زمان ذخیرهشده در A1 تا زمان فعلی را برمیگرداند. مقدار پایه در اکسل روز است، بنابراین ضرب در 24 روز را به ساعت تبدیل میکند.
مثال شرطی برای نمایش هشدار در B1 اگر بیش از 24 ساعت گذشته باشد:
=IF(NOW() - A1 > 1, "تاخیر بیش از 24 ساعت", "در بازه")توضیح: چون یک واحد عددی برابر با یک روز است، مقایسه با 1 معادل 24 ساعت است.
ویژگیها، رفتار و محدودیتها
| ویژگی | توضیح |
|---|---|
| آرگومان | ندارد (نوآگومانی) |
| نوع خروجی | عدد سریال تاریخ/زمان (قابل فرمت) |
| نوسانپذیری (Volatile) | بله — با هر محاسبه مجدد (Recalculate) یا بازکردن فایل بهروز میشود |
| سازگاری | همه نسخههای رایج اکسل (قدیمی تا جدید) |
| محدودیت | برای ثبت زمان ثابت مناسب نیست مگر با روشهای جایگزین |
نکات عملکردی و بهینهسازی
- از آنجا که NOW یک تابع volatile است، استفادهٔ زیاد از آن در شیتهای بزرگ میتواند سرعت محاسبات را کند کند. اگر نیاز به زمان زندهٔ دائم نیست، از فرمت ثابت یا روشهای دیگر استفاده کنید.
- اگر میخواهید تاریخ/زمان فقط هنگام باز کردن فایل بهروز شود، میتوانید محاسبه دستی یا بازخوانی (Calculate on open) را بررسی کنید.
- برای ثبت یک مهرزمان ایستا (ثابت) هنگام ورود اطلاعات، استفاده از کلیدهای میانبر یا ماکرو بهتر است تا فرمول NOW.
ایجاد مهرزمان ایستا — روشهای جایگزین
روش سریع بدون فرمول:
- Ctrl + ; برای درج تاریخ امروز (ثابت)
- Ctrl + Shift + ; برای درج زمان فعلی (ثابت)
اگر میخواهید هنگام تغییر در یک سلول، زمان در سلول دیگر بهصورت خودکار درج شود، میتوانید از VBA استفاده کنید. مثال زیر زمان جاری را در ستون B درج میکند هرگاه سلولی در ستون A تغییر کند:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
Application.EnableEvents = False
Target.Offset(0, 1).Value = Now
Application.EnableEvents = True
End If
End Subتوضیح: این کد را در ماژول شیت مربوطه قرار دهید. وقتی سلولی در ستون A تغییر کند، کد از رخدادهای دیگر جلوگیری میکند (EnableEvents = False) تا از حلقهٔ بینهایت جلوگیری شود و سپس زمان فعلی را در ستون B همان ردیف درج میکند.
توصیههای حرفهای و نکات پایانی
- برای گزارشهای لحظهای و داشبوردها از NOW استفاده کنید، اما اگر دادهها نیاز به ضبط تاریخی ثابت دارند از روشهای ایستا (keyboard shortcuts، VBA یا Power Query) استفاده کنید.
- در مدلهای پیچیده مالی یا شیتهایی با هزاران سلول، محدود کردن استفاده از توابع volatile (مثل NOW، RAND، OFFSET) به بهبود عملکرد کمک میکند.
- برای اتوماسیونهای سازمانی، Power Automate یا اسکریپتهای VBA/Office Scripts میتوانند بهصورت کنترلشده و قابل پیگیری مهرزمان را ثبت کنند بدون ایجاد بار محاسباتی روی شیت.
خلاصه: تابع NOW برای نمایش تاریخ و زمان فعلی مناسب و ساده است اما به خاطر volatile بودن باید با احتیاط و با توجه به نیازهای عملکردی استفاده شود. برای ثبت زمانهای ثابت بهتر است از روشهای جایگزین استفاده کنید.
آیا این مطلب برای شما مفید بود ؟




