Это невозможно при использовании стандартного форматирования чисел в Excel.
Конечно, вы можете преобразовать свой номер в текстовую строку с помощью =TEXT(A1;"0.00E+00")
, а затем вы можете преобразовать эту текстовую строку в новую текстовую строку в нужном вам формате.С верхними индексами становится немного сложнее, так как их нужно отображать с помощью функции UNICHAR
(эта функция доступна с Excel 2013).
Значения Unicode для использования с этой функцией следующие (изверхний индекс от 0 до 9): 8304,185,178,179,8308,8309,8310,8311,8312,8313
Таким образом, верхний индекс 50 будет =UNICHAR(8309)&UNICHAR(8304)
Вы можете создать в другом месте в своей книге именованный диапазон с этими значениями, поэтому преобразование будет легко сINDEX
.На самом деле, я бы создал два диапазона, один для первой цифры показателя степени (где у вас нет 0, а есть пустая строка, поскольку вы не хотите отображать 10 ^ 03, но 10 ^ 3), ивторой для второй цифры показателя степени (где вы держите 0).
Подводя итог:
- Преобразовать число в строку текста с помощью
=TEXT(A1;"0.00E+00")
- Заменить "E" на "x"
- Замените «+» на «10»
- Если число отрицательное, добавьте
-
- Замените два последних символа соответствующим верхним индексом (преобразуйте обратно в число с помощью
NUMBERVALUE()
изатем используйте INDEX()
, чтобы получить значение Unicode для подачи в функцию UNICHAR
.
Итак, для последней цифры формула (именованный диапазон значений Unicode - EXPO1 и EXPO2 вв моем случае):
=UNICHAR(INDEX(EXPO2;1;NUMBERVALUE(RIGHT(A1;1))+1))
Для первой цифры показателя степени (т. е. одного, но последнего символа текстовой строки) используйте эту формулу для преобразования в верхний индекс:
=UNICHAR(INDEX(EXPO1;1;NUMBERVALUE(LEFT(RIGHT(A1;2);1)+1)))
Я немного ленивый, я мог бы использовать MID
вместо комбинации LEFT/RIGHT
. И обратите внимание, что именованный диапазон теперь EXPO1, где первое значение - это значение Unicode пустой строки (8203).
Вся формула:
=LEFT(TEXT(A1;"0.00E+00");4)&
"x10"&
UNICHAR(INDEX(EXPO1;1;NUMBERVALUE(LEFT(RIGHT(TEXT(A1;"0.00E+00");2);1)+1)))&
UNICHAR(INDEX(EXPO2;1;NUMBERVALUE(RIGHT(TEXT(A1;"0.00E+00");1))+1))
с EXPO1 иd EXPO2 именованные диапазоны, как описано выше.
Чтобы сделать формулу полностью самодостаточной, вы можете жестко закодировать их в формулу, тогда это будет выглядеть так:
=LEFT(TEXT(A1;"0.00E+00");4)&
"x10"&
UNICHAR(INDEX({8203,185,178,179,8308,8309,8310,8311,8312,8313};1;NUMBERVALUE(LEFT(RIGHT(TEXT(A1;"0.00E+00");2);1)+1)))&
UNICHAR(INDEX({8304,185,178,179,8308,8309,8310,8311,8312,8313};1;NUMBERVALUE(RIGHT(TEXT(A1;"0.00E+00");1))+1))
Наконец, обратите внимание, что формула зависит откак вы конвертируете число в текст.На первый вопрос ОП я использовал точность до 2 цифр после запятой ("0.00E+00"
).Если вы хотите отобразить больше, вам нужно извлечь более 4 символов с первой формулой LEFT
в моем примере.