При разработке учебного пособия вам может потребоваться разместить такие суффиксы, как «st, nd, rd или th» в конце дат, как в «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), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (10033) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Adding_Ordinal_Notation_to_Dates [Добавление порядкового номера к датам].