در بسیاری از مواقع، در آموزش دوران کودکی، سن کودک در قالب Years.Months برای گزارش، پذیرش و ارزیابی مورد نیاز است. اساساً این فرمت تعداد سال ها و ماه های سپری شده از تولد را به تفکیک یک دوره نشان می دهد.
راه های مختلفی وجود دارد که می توانید برای رسیدن به سن مورد نظر پیش بروید. فرمولی که برای انجام کار انتخاب می کنید، کاملاً تحت اللفظی به ترجیح شما در فرمول ها بستگی دارد.
با فرض اینکه تاریخ تولد را در سلول A1 دارید، ممکن است فکر کنید می توانید از مقداری ریاضی در تاریخ برای تعیین اطلاعات مناسب استفاده کنید. به عنوان مثال، ممکن است فکر کنید که می توانید از این فرمول استفاده کنید:
=NOW() - A1
این مقداری را تولید میکند که تفاوت بین این دو تاریخ است، اما اگر یک قالب سفارشی ("yy.mm") را برای نتیجه اعمال کنید، متوجه میشوید که سالها. ماههای مورد نظر را نشان نمیدهد. شما چیزی نزدیک می کنید. سال ها درست است، اما ماه ها از 1 تا 12 متغیر است، در حالی که باید از 0 تا 11 متغیر باشد.
این به این معنی است که شما باید برای یک رویکرد فرمولی شروع به بازیگری کنید. یک فرمول ساده به صورت زیر خواهد بود:
=YEAR(NOW())-YEAR(A1) & "." & MONTH(NOW())-MONTH(A1)
تغییرات زیادی در مورد بالا وجود دارد، اما مشکل این است که همه آنها فقط به ماه امروز در مقایسه با ماه تاریخ تولد نگاه می کنند. آنها روز ماه را در نظر نمی گیرند. آن چه مهم است؟ زیرا تعداد ماههای سپری شده از تولد بستگی به مقایسه روز ماه تولد با روز ماه کنونی دارد و فرمول این تمایز را مجاز نمیداند.
بنابراین، ممکن است فرمول پیچیده تری را در نظر بگیرید که در واقع سعی می کند سال ها و ماه های سپری شده را محاسبه کند، مانند فرمول زیر:
=TEXT(INT((NOW()-A1)/365.25),"##0")&"."&TEXT(INT(MOD(NOW()-A1,365.25)/31),"00")
این بسیار به چیزی که نیاز است نزدیکتر است، اما هنوز هم میتوان یک یا دو روز نزدیک به روز تولد نزدیک شد. Closer still فرمولی است که از تابع YERFRAC استفاده می کند:
=ROUNDDOWN(YEARFRAC(A1,TODAY()),0)&"."&ROUNDDOWN((YEARFRAC(A1,TODAY())-ROUNDDOWN(YEARFRAC(A1,TODAY()),0))*12,0)
با این حال، بهترین (و ساده ترین) روش فرمولی این است:
=DATEDIF(A1,NOW(),"y") & "." & DATEDIF(A1,NOW(),"ym")
فرمول متکی بر تابع DATEDIF است که تفاوت بین دو تاریخ را تعیین می کند. مقدار برگردانده شده توسط تابع به پارامتر سومی که به تابع ارسال می شود بستگی دارد. در این حالت، اولین فراخوانی DATEDIF تعداد سال های سپری شده و دومی تعداد ماه های سپری شده را برمی گرداند. این دقیق ترین نتایج را از هر یک از فرمول های مورد بحث تا کنون ارائه می دهد.