تابع timevalue در اکسل
تابع TIMEVALUE در اکسل برای تبدیل یک رشته یا متن که نمایانگر زمان است به مقدار عددی استفاده میشود. مقدار خروجی این تابع بخشی از تاریخ-زمان اکسل است که نشاندهنده کسری از شبانهروز است (از 0 تا کمتر از 1). این تابع بسیار مفید است وقتی که زمانها بهصورت متن وارد شدهاند و میخواهیم آنها را در محاسبات ریاضی، جمع و تفریق زمان یا تبدیل به ساعت/دقیقه/ثانیه استفاده کنیم.
ساختار (Syntax)
ساختار تابع به شکل زیر است:
=TIMEVALUE(time_text)پارامتر:
- time_text: یک رشته متنی که نمایانگر زمان است، مانند “9:30 AM” یا “14:45:30”.
نوع مقدار خروجی
TIMEVALUE عددی بین 0 و 0.9999999 بازمیگرداند که نشاندهنده کسری از روز است. برای تبدیل این مقدار به ساعت کافی است آن را در 24 ضرب کنید؛ برای دقیقه در 24*60 و برای ثانیه در 24*3600 ضرب کنید.
مثالهای ساده
=TIMEVALUE("14:30")
=TIMEVALUE("2:15:30 PM")
=TIMEVALUE("09:00")*24توضیح: مثال اول برابر با 0.604166667 است (14.5/24). مثال دوم مقدار زمانی بعد از ظهر را به کسری روز تبدیل میکند. مثال سوم با ضرب در 24 مقدار ساعت (9) را برمیگرداند.
نمونه جدول ورودی/خروجی
| time_text | فرمول | خروجی (کسر روز) | توضیح |
|---|---|---|---|
| “06:00” | =TIMEVALUE(“06:00”) | 0.25 | ۶ صبح = یکچهارم روز |
| “18:00” | =TIMEVALUE(“18:00”) | 0.75 | ۶ بعدازظهر = سهچهارم روز |
| “2:30 PM” | =TIMEVALUE(“2:30 PM”) | 0.604166667 | مطابق با 14:30 |
تبدیل به ساعت، دقیقه و ثانیه
- ساعت: =TIMEVALUE(“14:30”)*24
- دقیقه: =TIMEVALUE(“14:30”)*24*60
- ثانیه: =TIMEVALUE(“2:15:30 PM”)*24*3600
برای نمایش عددی ساعت یا دقیقه معمولاً از تابع ROUND یا INT برای حذف اعشار استفاده میکنیم:
=ROUND(TIMEVALUE("9:37 AM")*24,2)این فرمول مقدار ساعت را تا دو رقم اعشار گرد میکند. اگر بخواهیم فقط ساعت کامل را بگیریم از INT استفاده میکنیم.
مقایسه با VALUE و DATEVALUE
- VALUE: سعی میکند متن را به یک عدد تبدیل کند — هم تاریخ و هم زمان را میتواند در برخی فرمتها تشخیص دهد.
- DATEVALUE: برای تبدیل رشتههای تاریخ به عدد صحیح تاریخ استفاده میشود (بخش صحیح تاریخ-زمان).
- TIMEVALUE: مخصوص تبدیل بخش زمان است و همیشه عدد کسری (بخش اعشاری روز) برمیگرداند.
اگر یک رشته شامل تاریخ و زمان باشد، میتوانید از VALUE یا ترکیب DATEVALUE+TIMEVALUE استفاده کنید. مثلاً:
=VALUE("2025-10-31 14:30")
=DATEVALUE("2025-10-31") + TIMEVALUE("14:30")توضیح: مثال اول در صورت پشتیبانی اکسل از قالب ورودی، کل تاریخ-زمان را به عدد تبدیل میکند. مثال دوم بخش تاریخ و بخش زمان را جداگانه محاسبه و جمع میکند.
مسائل رایج و راهحلها
- عدم شناسایی متن زمان: گاهی اکسل متن را بهعنوان زمان تشخیص نمیدهد و خطا یا #VALUE! میدهد. دلیل میتواند تفاوت در جداکنندهها، استفاده از حروف فارسی برای AM/PM یا فرمت محلی (locale) باشد.
- حل مشکل جداکنندههای فارسی/عربی: از SUBSTITUTE یا REPLACE استفاده کنید تا کاراکترهای نامتعارف را با “:” یا ” ” جایگزین کنید.
- استفاده از NUMBERVALUE: اگر عددی همراه با جداکننده اعشار نامتعارف دارید، NUMBERVALUE میتواند مفید باشد.
مثالهای عملی برای متون غیرمعمول
فرض کنید زمانها بهصورت “۹:۳۰” با ارقام فارسی وارد شدهاند. اکسل ممکن است آن را نپذیرد؛ میتوانیم ابتدا ارقام فارسی را به انگلیسی تبدیل کنیم:
=TIMEVALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"۰","0"),"۱","1"),"۲","2"))
توضیح: این مثال نشان میدهد چگونه با SUBSTITUTE چندباره ارقام فارسی را به معادل انگلیسی تبدیل کنیم تا TIMEVALUE بتواند آن را پردازش کند. در عمل باید همه ارقام ۰ تا ۹ را جایگزین کنید یا از یک تابع کمکی استفاده کنید.
پردازش رشتههای با AM/PM فارسی
اگر رشته شامل عباراتی مثل “قبل از ظهر” یا “بعد از ظهر” باشد، اکسل معمولاً آن را نمیشناسد. باید آنها را به “AM” یا “PM” تبدیل کنید یا فرمت 24 ساعته بسازید. نمونه:
=TIMEVALUE(SUBSTITUTE(SUBSTITUTE(A2,"قبل از ظهر","AM"),"بعد از ظهر","PM"))
توضیح: ابتدا عبارات فارسی AM/PM را با معادل انگلیسی جایگزین میکنیم و سپس TIMEVALUE را اعمال میکنیم. این روش زمانی مفید است که دادهها از منابع مختلف با زبانهای متفاوت آمده باشند.
مدیریت خطاها
برای جلوگیری از خطا در مواجهه با دادههای نامعتبر از IFERROR یا ISERROR استفاده کنید:
=IFERROR(TIMEVALUE(A1), "")توضیح: اگر مقدار در A1 قابل تبدیل نباشد، نتیجه خالی میماند بهجای نمایش خطای #VALUE!.
کاربردهای حرفهای و نکات تکمیلی
- گزارشسازی: تبدیل زمانهای متنی به عدد برای محاسبه میانگین زمان پاسخ، مجموع ساعات کاری، یا نمودارهای زمانی ضروری است.
- ادغام با Power Query: اگر حجم داده زیاد است، بهتر است تبدیلها را در Power Query انجام دهید که ابزارهای قویتری برای تشخیص زمان و تبدیل زبانها دارد.
- دقت اعشار: هنگام محاسبه ثانیهها یا محاسبات حساس زمانی، دقت اعشاری خروجی TIMEVALUE را در نظر بگیرید و از فرمتدهی مناسب استفاده کنید.
- VBA: در صورتی که پردازش پیچیدهتری لازم دارید، تابع TimeValue در VBA نیز وجود دارد که میتواند رشته را به متغیر زمان تبدیل کند.
مثال VBA (اختیاری)
Sub ExampleTimeValue()
Dim t As Date
t = TimeValue("2:15:30 PM")
MsgBox "Time is: " & Format(t, "hh:mm:ss")
End Subتوضیح: این ماکرو در VBA مقدار متنی زمان را با TimeValue به نوع Date/Time تبدیل میکند و سپس آن را با فرمت ساعت:دقیقه:ثانیه نمایش میدهد. تابع TimeValue در VBA مشابه تابع اکسل عمل میکند اما در محیط برنامهنویسی قابل کنترلتر است.
خلاصه و پیشنهادات عملی
- از TIMEVALUE برای تبدیل رشتههای زمان به مقدار عددی کسری روز استفاده کنید.
- برای محاسبات ساعتی، خروجی را در 24 یا 24*60 ضرب کنید.
- با توابع SUBSTITUTE، NUMBERVALUE و IFERROR دادههای محلی یا نامنظم را پیشپردازش کنید.
- برای مجموعه دادههای بزرگ یا ترکیبی از تاریخ و زمان، از Power Query یا ترکیب DATEVALUE و TIMEVALUE بهره ببرید.
با رعایت موارد فوق میتوانید رشتههای زمانی متنوع را در اکسل بهدرستی پردازش کنید و از آنها در محاسبات دقیق زمانی بهره ببرید.
آیا این مطلب برای شما مفید بود ؟




