Нет, это невозможно сделать с помощью формулы и если в ячейке есть формулы. У вас могут быть шрифты разных размеров в ячейке? Да. Можно ли это сделать другим способом? Да, в основном это касается VBA, но это выходит за рамки этого вопроса.
Дело в том, что формулы Excel возвращают значение, которое всегда является природным, а не форматирующим. Форматирование применяется к данным в ячейке, поэтому оно подходит для представления, которое вы хотите, например, для форматирования даты. Даты хранятся в формате сериализации в Excel и обычно они представлены в формате даты локали.
Для подхода VBA вы должны будете проанализировать данные ячейки, используя функцию, подобную InSTR()
чтобы отделить числовое значение от значения в процентах. Затем вы примените формат, который хотите, к любой части и вернете его в ячейку.
Приветствия.
РЕДАКТИРОВАТЬ:
Как вы можете видеть здесь, есть еще один способ, который включает подсчет символов и применение желаемого формата. Я записал небольшой макрос для использования в качестве шаблона.
Sub Macro1()
'
' Macro1 Macro
'
'
Range("H13").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Dude(11,3%)"
Range("H13").Select
ActiveCell.FormulaR1C1 = "Dude(11,3%)"
With ActiveCell.Characters(Start:=1, Length:=13).Font
.Name = "Tahoma"
.FontStyle = "Normal"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
With ActiveCell.Characters(Start:=14, Length:=7).Font
.Name = "Tahoma"
.FontStyle = "Normal"
.Size = 20
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Range("I13").Select
End Sub