防止将数字转换为文本时四舍五入

时间:2019-01-08 08:13:02

标签: excel vba

我想将两列数字(包含整数和非整数)转换为文本,并将它们放在称为“范围”的第三列下。

预期结果:
expected

实际结果:
actual

问题在于,当我将其转换为文本时,值会四舍五入。 要进行此转换,我正在使用以下功能将其转换为文本。

C2 =TEXT(A2,"0")&"-"&TEXT(B2,"0")  

这给了我四舍五入的价值。

有人知道该如何克服吗?

  • 我无法更改列格式以增加小数位数,因为我将有不必要的0。例如我要7而不是7.0

  • 我尝试将功能更改为
    C2 =TEXT(A2,"##.#")&"-"&TEXT(B2,"##.#"),这有助于不舍入所需文本。但是,它也增加了一个额外的“。”整数后的小数点。例如7.或20。而且我不知道如何摆脱多余的小数点。

这是非常新的,将不胜感激。打开尝试宏。

1 个答案:

答案 0 :(得分:2)

您不需要VBA代码。试试这个

检查单元格是否有小数。您可以通过=INT(A1)=A1进行操作。将其包含在公式=IF(INT(A2)=A2,TEXT(A2,"0"),TEXT(A2,"0.0"))中。对于第二个单元格类似

=IF(INT(A2)=A2,TEXT(A2,"0"),TEXT(A2,"0.0")) & "-" & IF(INT(B2)=B2,TEXT(B2,"0"),TEXT(B2,"0.0"))

enter image description here