Excel formula 在Excel中格式化科学记数法

Excel formula 在Excel中格式化科学记数法,excel-formula,Excel Formula,是否可以在Excel中将科学记数法中的数字格式化为以10为基数的指数而不是以E为基数的指数? 例如,Excel将0.00123转换为1.23E3,但我希望格式为,这在Excel中使用标准数字格式是不可能的 当然,您可以将数字转换为=text(A1;“0.00E+00”)的文本字符串,然后您可以将此文本字符串转换为所需格式的新文本字符串。上标有点棘手,因为您必须使用UNICHAR函数来显示这些上标(该函数从Excel 2013开始提供) 与函数一起使用的Unicode值如下(从上标0到9): 83

是否可以在Excel中将科学记数法中的数字格式化为以10为基数的指数而不是以E为基数的指数?
例如,Excel将0.00123转换为1.23E3,但我希望格式为

,这在Excel中使用标准数字格式是不可能的

当然,您可以将数字转换为
=text(A1;“0.00E+00”)
的文本字符串,然后您可以将此文本字符串转换为所需格式的新文本字符串。上标有点棘手,因为您必须使用
UNICHAR
函数来显示这些上标(该函数从Excel 2013开始提供)

与函数一起使用的Unicode值如下(从上标0到9):
83041851781798308830983310831183128313

所以上标50应该是
=UNICHAR(8309)&UNICHAR(8304)

您可以在工作簿的其他位置创建一个具有此值的命名范围,因此使用
索引
可以轻松地进行转换。 实际上,我将创建两个范围,一个用于指数的第一个数字(其中没有0,而是一个空字符串,因为您不想显示10^03,而是10^3),另一个用于指数的第二个数字(其中保留0)

总结如下:

  • 使用
    =text(A1;“0.00E+00”)
  • 将“E”替换为“x”
  • 将“+”替换为“10”
  • 如果数字为负数,则添加一个
    -
  • 将最后两个字符替换为相应的上标(使用
    NUMBERVALUE()
    转换回数字,然后使用
    INDEX()
    获取Unicode值以输入
    UNICHAR
    函数
因此,对于最后一个数字,公式是(在我的例子中,Unicode值的命名范围是EXPO1和EXPO2):
=UNICHAR(索引(EXPO2;1;NUMBERVALUE(右(A1;1))+1))

对于指数的第一位数字(即文本字符串的最后一个字符),使用此公式转换为上标:
=UNICHAR(索引(EXPO1;1;NUMBERVALUE(左(右(A1;2);1)+1))

我在这里有点懒,我也可以使用
MID
来代替
LEFT/RIGHT
组合。请注意,命名范围现在是EXPO1,其中第一个值是空字符串(8203)的Unicode值

整个公式是:
=左侧(文本(A1;“0.00E+00”);4)&
“x10”&
UNICHAR(索引(EXPO1;1;NUMBERVALUE)(左(右(文本(A1;“0.00E+00”);2;1)+1)))&
UNICHAR(索引(EXPO2;1;数字值(右(文本(A1;“0.00E+00”);1))+1))

EXPO1和EXPO2的命名范围如上所述

要使公式完全自我维持,您可以将这些硬编码到公式中,这样就变成:
=左侧(文本(A1;“0.00E+00”);4)&
“x10”&
UNICHAR(索引({8203185178179830883098310831183128313};1;数字值(左(右)(文本(A1;“0.00E+00”);2);1)+1)))&
UNICHAR(索引({8304185178179830883098310831183128313};1;数字值(右(文本(A1;“0.00E+00”);1))+1))


最后,请注意,公式取决于如何将数字转换为文本。每个OP初始问题,我在逗号后使用了2位精度(
“0.00E+00”
)。如果您想显示更多内容,则必须使用我的示例中的第一个
公式提取超过4个字符。

我使用完整公式对我的答案进行了微调。