هنگام توسعه یک ورک بوک، ممکن است نیاز داشته باشید که پسوندهایی مانند "st، nd، rd یا th" را در انتهای تاریخ ها قرار دهید، مانند "9th March". متأسفانه، هیچ راهی برای انجام این کار با استفاده از قالب های تاریخ داخلی که می توانید برای سلول های جداگانه اعمال کنید، وجود ندارد. در صورت تمایل می توانید قالب های سفارشی را برای هر یک از چهار نوع پسوند ایجاد کنید، اما آنها باید به صورت جداگانه بر اساس محتویات خود سلول اعمال شوند.
تنها گزینه دیگر استفاده از نوعی فرمول تبدیل است. کنار هم قرار دادن اینها به اندازه کافی آسان است، اما سلول به دست آمده حاوی تاریخ واقعی اکسل نیست، بلکه متنی خواهد داشت. این امر مانع از استفاده محتویات سلول در سایر توابع مرتبط با تاریخ می شود. در زیر نمونه ای از نوع فرمول تبدیلی است که می توانید استفاده کنید:
=DAY(A1)&IF(OR(DAY(A1)={1,2,3,21,22,23,31}),
CHOOSE(1*RIGHT(DAY(A1),1),"st","nd ","rd "),"th")
&TEXT(A1,"mmmm, yyyy")
موارد دیگری نیز وجود دارند، اما همه آنها اساساً یک کار را انجام می دهند - قسمت های مختلف یک تاریخ را از هم جدا کرده و آنها را با پسوند مناسب کنار هم قرار دهید.
اگر ترجیح می دهید، می توانید یک تابع ماکرو نیز ایجاد کنید که با پسوند ترتیبی، یک تاریخ با فرمت مناسب را برگرداند. زیر یکی از این ماکروها است:
Function OrdinalDate(myDate As Date)
Dim dDate As Integer
Dim dText As String
Dim mDate As Integer
Dim mmmText As String
dDate = Day(myDate)
mDate = Month(myDate)
Select Case dDate
Case 1: dText = "st"
Case 2: dText = "nd"
Case 3: dText = "rd"
Case 21: dText = "st"
Case 22: dText = "nd"
Case 23: dText = "rd"
Case 31: dText = "st"
Case Else: dText = "th"
End Select
Select Case mDate
Case 1: mmmText = " January"
Case 2: mmmText = " February"
Case 3: mmmText = " March"
Case 4: mmmText = " April"
Case 5: mmmText = " May"
Case 6: mmmText = " June"
Case 7: mmmText = " July"
Case 8: mmmText = " August"
Case 9: mmmText = " September"
Case 10: mmmText = " October"
Case 11: mmmText = " November"
Case 12: mmmText = " December"
End Select
OrdinalDate = dDate & dText & mmmText
End Function
شما از ماکرو به سادگی با فراخوانی آن در یک فرمول سلولی استفاده می کنید. به عنوان مثال، اگر تاریخ ذخیره شده در سلول B7 دارید، می توانید از موارد زیر در هر سلول دیگری استفاده کنید:
=OrdinalDate(B7)