Piers گزارشی دارد که اجرا می شود و پس از تکمیل آن، زمان شروع و مدت زمان را در چند ثانیه ثبت می کند. اگر A1 زمان شروع و B1 تعداد ثانیه باشد، Piers از فرمول زیر برای تعیین زمان پایان استفاده می کند:
=A1+TIME(0,0,B1)
این فرمول به خوبی کار می کند، مگر اینکه اجرای گزارش بیش از 32767 ثانیه طول بکشد، که اغلب اتفاق می افتد. پیرز متعجب است که از چه فرمولی می تواند برای عبور از این محدودیت ظاهری اکسل استفاده کند.
اول، مهم است که بدانید آنچه که کشف کرده اید، در واقع یک محدودیت اکسل است. یا به طور دقیق تر، محدودیت عملکرد TIME. سه پارامتری که در تابع استفاده می کنید (نماینده ساعت، دقیقه و ثانیه) باید مقادیر صحیح باشند. برای این واقعیت که هر مقدار باید در محدوده 0 تا 32767 باشد، "حرف برنامه نویسی" است. خارج از آن محدوده، و شما یک خطا دریافت می کنید.
یک راه حل این است که به سادگی اطمینان حاصل کنید که از مقداری خارج از این محدوده استفاده نمی کنید. من این فرمول را دوست دارم که هنوز از تابع TIME استفاده می کند:
=A1+TIME(INT(B1/3600),0,MOD(B1,3600))
در حالی که محدودیت در فرمول اصلی شما به این معنی است که نمیتوانید گزارشی را بیش از 9 ساعت (32767 ثانیه) اجرا کنید، این فرمول اصلاحشده مدت زمان تقریباً 4 سال را مدیریت میکند. (اگر گزارش هایی دارید که بیش از 4 سال طول می کشد تا اجرا شوند، احتمالاً چیزی اشتباه است!)
البته، میتوانید از تابع TIME بهکلی دور بزنید و به سادگی فرمول خود را برای اضافه کردن ثانیهها به مقدار A1 ایجاد کنید. این ساده تر از آن است که به نظر می رسد. تنها کاری که باید انجام دهید این است که به یاد داشته باشید که مقادیر زمانی در اکسل به صورت کسری از روز ذخیره می شوند. از آنجایی که هر روز 86400 ثانیه (60 ثانیه * 60 دقیقه * 24 ساعت) وجود دارد، می توانید از این فرمول استفاده کنید:
=A1+B1/86400
فقط مطمئن شوید که سلول حاوی فرمول برای نمایش زمان فرمت شده باشد و مشکلی نخواهید داشت. (فقط سلول را به همان شکلی که سلول A1 قالب بندی می شود فرمت کنید؛ برای این کار می توانید از Format Painter استفاده کنید.)