Кардинальные числа являются обычными числами c числа и имеют вид: 1, 2, 3, 4 и т. Д. c.
Порядковые числа имеют суффикс и выглядит так: 1-й, 2-й, 3-й, 4-й, и т. д. c.
Обратите внимание, что в порядковой форме числа на самом деле являются текстовыми и должны использоваться только для отображения; Excel больше не будет считать их числами.
Если кардинальное число находится в A1
, эта формула приведет к порядковому представлению ...
=IF(OR(--RIGHT(A1,2)={11,12,13}),"th",IFERROR(CHOOSE(RIGHT(A1),"st","nd","rd"),"th"))
Приведенная выше формула НЕ нужна быть введен массив. Достаточно обычного подтверждения.
Для полноты здесь можно использовать приведенную выше удивительно лаконичную формулу в качестве UDF. Поместите следующую функцию в модуль стандартного кода VBA ...
Function Ordinal(n)
Ordinal = n & Evaluate("IF(OR(--RIGHT(" & n & ",2)={11,12,13}),""th"",IFERROR(CHOOSE(RIGHT(" & n & "),""st"",""nd"",""rd""),""th""))")
End Function
Теперь вы можете вызывать ее из формулы на листе. Например, в ячейке A1
вы можете иметь следующую формулу:
=Ordinal(123)
Или из подпрограммы VBA ...
Msgbox Ordinal(21)
И получить и сохранить массив Первые 255 порядковых чисел в VBA вы можете использовать следующую вариацию как функцию ...
Function Ordinals()
Ordinals = [ROW(1:255)&IF((--RIGHT(ROW(1:255),2)>10)*(--RIGHT(ROW(1:255),2)<14),"th",IFERROR(CHOOSE(RIGHT(ROW(1:255)),"st","nd","rd"),"th"))]
End Function
Теперь получите массив следующим образом ...
Sub Test()
Dim v
v = Ordinals '<-- v is now a 2d array and holds the first 255 ordinals
MsgBox v(211, 1)
End Sub