تابع HOUR در اکسل
تابع HOUR یکی از توابع ساده اما بسیار کاربردی اکسل است که ساعت یک مقدار زمانی را (از 0 تا 23) استخراج میکند. این تابع وقتی با تاریخ-زمان یا مقدار زمان کار میکنید و لازم است جزء ساعت را جدا کنید، بسیار مفید است — مثلاً در گزارشگیری، برنامهریزی شیفتها، تحلیل زمان وقوع رویدادها و محاسبات زمانی.
تعریف و سینتکس
ساختار کلی تابع:
=HOUR(serial_number)پارامتر serial_number میتواند:
- مقدار زمانی/تاریخ-زمان داخل یک سلول (مثلاً A1 دارای 2025-05-01 14:30 باشد)
- فرمولی که تاریخ یا زمان تولید میکند (مثل DATEVALUE یا TIMEVALUE)
- مقدار متنی زمان که با تابع TIMEVALUE یا VALUE به زمان واقعی تبدیل شده باشد
مثالهای ساده
| محتوای سلول | فرمول | نتیجه |
|---|---|---|
| 14:30 | =HOUR(A1) | 14 |
| 2025-05-01 09:05 | =HOUR(A2) | 9 |
| “8:45 PM” (متن) | =HOUR(TIMEVALUE(A3)) | 20 |
| 1.5 (روز) | =HOUR(A4) | 12 (نکته: 1.5 روز = 36 ساعت → 36 mod 24 = 12) |
نمونه فرمولها و توضیح آنها
=HOUR(A1)این سادهترین حالت: اگر A1 زمان یا تاریخ-زمان باشد، ساعت آن را برمیگرداند.
=HOUR(TIMEVALUE("9:45 PM"))اگر زمان به صورت متن است، با TIMEVALUE آن را به مقدار زمانی قابلفهم برای اکسل تبدیل کرده و سپس ساعت را استخراج میکنیم.
=IF(HOUR(A2)>=9,"روز","شب")مثال کاربردی برای تعیین شیفت: اگر ساعت ثبت شده از 9 یا بیشتر باشد، روز در غیر این صورت شب.
کار با بازهها و مدتها (Durations)
نکته مهم: تابع HOUR همیشه جزء ساعت در محدوده 0–23 را برمیگرداند. برای مدتهایی که بیش از 24 ساعت هستند (مثلاً نتیجه جمع چند زمان)، HOUR تنها بخش باقیمانده پس از گرفتن مدول 24 را نشان میدهد. برای بدست آوردن مجموع واقعی ساعت باید از ضرایبی استفاده کنید.
=INT(A1*24)اگر A1 مقداری به شکل روز (مثلاً 1.5 = 36 ساعت) باشد، ضرب در 24 و استفاده از INT تعداد کامل ساعتها را به شما میدهد (در مثال: 36).
=SUM(A1:A10)*24برای جمعزدن چند سلول زمان و تبدیل نتیجه به ساعت کل (با در نظر گرفتن مقادیر بیش از 24 ساعت)، ابتدا از SUM استفاده کنید و سپس در 24 ضرب کنید. نتیجه عددی است — در صورت نیاز میتوانید ROUND یا INT بزنید.
تبدیل متنهای غیرقابلفهم به زمان
بعضی منابع داده زمانها را به صورت متنهای متفاوت مثل “1430” یا “9:5” میدهند؛ برای تبدیل آنها میتوان از توابع LEFT/RIGHT/MID و TIME استفاده کرد:
=TIME(LEFT(A1,2),RIGHT(A1,2),0)در این مثال A1 فرض شده رشتهای مانند “1430” است؛ LEFT و RIGHT را میگیریم تا ساعت و دقیقه سازگار بسازیم و با TIME آن را به مقدار زمانی تبدیل میکنیم. سپس میتوانیم HOUR را روی آن اعمال کنیم.
مثال ترکیبی پیشرفته — استخراج ساعت از تاریخ و زمان متنی
=HOUR(DATEVALUE("2025-05-01")+TIMEVALUE("08:15"))در این فرمول ابتدا تاریخ و زمان جداگانه به مقدار عددی اکسل تبدیل و جمع میشوند (تاریخ بخش صحیح، زمان بخش کسری روز) سپس HOUR ساعت آن تاریخ-زمان را برمیگرداند.
نکات و خطاهای رایج
- مقادیر متن: اگر سلول به صورت متن فرمت شده باشد، HOUR خطا یا نتیجه نادرست میدهد. از VALUE یا TIMEVALUE برای تبدیل استفاده کنید.
- فرمت نمایش: ممکن است سلول دارای مقدار درست اما با فرمت نمایش غیرمعمول باشد — همیشه مقدار واقعی سلول (فرمت General) را چک کنید.
- مقادیر منفی یا خطا: HOUR برای مقادیر منفی یا غیرقابلتبدیل خطا بازمیگرداند.
- پشتیبانی نسخه: تابع HOUR در همه نسخههای معمول اکسل (PC، Mac، Office 365) موجود است.
مثال VBA کوچک برای محاسبه مجموع ساعت از یک سلول
Function TotalHours(r As Range) As Double
TotalHours = r.Value * 24
End Functionاین تابع کاربرتعریفشده در VBA مقدار سلول r را (که به صورت روز/زمان ذخیره شده) در 24 ضرب میکند و تعداد ساعت را برمیگرداند. برای سلولهایی که مدت زمان را نشان میدهند (مثلاً 1.25 روز)، خروجی مقدار صحیح ساعت خواهد بود.
کاربردهای عملی و توصیههای حرفهای
- گزارشگیری شیفت: از HOUR برای گروهبندی رویدادها در بازههای ساعتی (مثلاً شمارش رخدادها در هر ساعت) استفاده کنید.
- محاسبه زمان کارکرد: برای محاسبه مجموع ساعت کارکرد در بازههای روزانه از SUM(range)*24 استفاده کنید تا مشکل مدول 24 رفع شود.
- ترکیب با INDEX/MATCH یا VLOOKUP: میتوانید بر اساس خروجی HOUR سطرها را فیلتر یا جستجو کنید (مثلاً پیدا کردن رکوردهای بین ساعت 8 تا 17).
- استفاده در فرمت شرطی: برای رنگآمیزی ردیفها در بازههای ساعت مشخص، فرمولهای مبتنی بر HOUR در فرمت شرطی بسیار مفیدند.
خلاصه و جمعبندی
تابع HOUR تابعی ساده اما کلیدی برای استخراج جزء ساعت از مقادیر زمان یا تاریخ-زمان است. نکات اصلی که باید به خاطر بسپارید: HOUR همیشه مقدار 0–23 را برمیگرداند، زمان در اکسل به صورت کسری از روز ذخیره میشود، برای مدتهای بیش از 24 ساعت باید از ضرب در 24 یا INT استفاده کنید و برای متون باید ابتدا آنها را به مقدار زمانی تبدیل نمایید.
آیا این مطلب برای شما مفید بود ؟




