Excel formula 在Excel中格式化科学记数法
是否可以在Excel中将科学记数法中的数字格式化为以10为基数的指数而不是以E为基数的指数?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将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()
获取Unicode值以输入INDEX()
函数UNICHAR
=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个字符。我使用完整公式对我的答案进行了微调。