ワークブックを作成するときは、「3月9日」のように、日付の最後に「st、nd、rd、th」などの接尾辞を付ける必要がある場合があります。

残念ながら、個々のセルに適用できる組み込みの日付形式を使用してこれを行う方法はありません。必要に応じて、4つのサフィックスタイプごとにカスタムフォーマットを作成できますが、セル自体の内容に基づいて個別に適用する必要があります。

他の唯一のオプションは、ある種の変換式を使用することです。これらは簡単に組み合わせることができますが、結果のセルには実際の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")

他にもありますが、基本的に同じことを行います。日付のさまざまな部分を引き離し、適切な接尾辞を付けて元に戻します。

必要に応じて、序数の接尾辞を付けて、適切にフォーマットされた日付を返すマクロ関数を作成することもできます。以下はそのようなマクロの1つです:

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_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2510)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。