在日期中添加序号(Microsoft Excel)
在开发工作簿时,可能需要在日期的末尾放置诸如“ st,nd,rd或th”之类的后缀,例如“ 3月9日”。
不幸的是,无法使用可应用于单个单元格的内置日期格式来执行此操作。如果需要,可以为四种后缀类型中的每一种创建自定义格式,但是必须根据单元格本身的内容分别应用它们。
唯一的其他选择是使用某种转换公式。这些很容易组合在一起,但是生成的单元格将不包含真实的Excel日期,而是文本。这使得单元格内容无法用于其他与日期有关的功能。以下是可以使用的转换公式类型的示例:
=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)
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(10033)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: