我将这些数字作为文本粘贴在一张纸上:
0.000180
0.000590
0.000850
0.000240
0.000290
0.000160
0.00419
0.000180
0.00187
0.000160
0.000310
0.000120
我想将它们转换为 Excel 中的数字。但是,当这样做时,我最后会丢失 0(例如 0.000180 变为 0.00018)。如果我尝试增加小数位数,那么 0.00419 将变为 0.004190,这是不好的(因为我必须为具有确切小数位数的报告打印这些值)。更糟糕的是,我需要应用一些条件格式(当数字粘贴为文本时,这不起作用)。是否有可能将这些值格式化为数字,同时在同一列中具有不同位数的值?谢谢
案例 1:你找到一个数学规则
如果您找到某种规则来计算您希望从数字本身显示的有效位数,那么它相对容易:您创建与您想要多少不同位数一样多的条件格式条件,并且对于每个条件您定义具有那么多数字的数字格式。
例如,根据您的数据,我可以猜测您想要显示 3 个有效数字。我不知道这是否属实,但如果是这种情况,您可以创建几个条件,例如:
=TRUNC(-LOG10(A1))+3=6
→ 格式为小数点后 6 位=TRUNC(-LOG10(A1))+3=5
→ 格式为小数点后 5 位加上所需的数量。请注意,我假设您已将文本转换为数字,并且这些数字从单元格 A1 开始。
案例 2:没有数学规则
另一方面,如果没有数学规则,并且您只需要保持与输入文本中相同数量的字符,则可以执行类似于案例 1 的操作。
保持文本列不变(例如,从单元格 A1 开始),然后再创建一列,将相同的数据转换为数字(例如,从单元格 B1 开始)
然后使用一系列规则将条件格式应用于 B 列
=LEN(A1)-2=6 → format
到小数点后 6 位=LEN(A1)-2=5 → format
到小数点后 5 位加上所需的数量。
你可以这样编码:
按ALT+F11或类似键将代码插入模块。突出显示存储为要转换的文本的数字,然后运行代码。