仅当单元格具有在 Excel 中显示自定义文本时才显示小数

仅当单元格具有在 Excel 中显示自定义文本时才显示小数

我有一排带有数值的单元格。我想产生以下效果:

---------------------------
|Cell value | Cell result |
---------------------------
|2          | 2 kg        |
|1.43       | 1.43 kg     |
|9.5764     | 9.58 kg     |
|3.2        | 3.2 kg      |
---------------------------

基本上,

  • 我希望它们在输入的值后始终显示“kg”。
  • 输入的任何小数都需要四舍五入到小数点后 2 位;如果没有小数,则显示整数。

我已经格式化单元格,0" kg"以便它始终显示千克。

至于必要时仅显示小数,我=ROUND(X, 2)在每个单元格上使用公式仅显示两位小数(X是我引入的价值)。

问题:但是当我输入时,=ROUND(2.5, 2)它显示的3 kg不是2.5 kg。这是为什么?您还有其他可能的解决方案吗?

编辑1

我已将单元格格式更改为0.##" kg",它的工作方式与我想要的一样。现在的问题是,如果我使用=ROUND(10, 2)它,它会10. kg在数字后显示一个额外的点。

答案1

使用 A 列中的数字,在 B 列中使用 Round() 函数,然后使用自定义格式“General k\g”进行格式化。参见屏幕截图

在此处输入图片描述

答案2

根据我对您的要求的理解,有一种可能的解决方案。使用 FIXED 函数首先将其四舍五入为 2 位小数,然后检查最后三位数,如果 .00 仅使用整数部分并与 'kg' 连接,如果最后一位数字为零,则四舍五入为 1 位小数,否则四舍五入为两位小数。

假设您的数据在 B 列,请在 C 列中尝试此公式

=IF(RIGHT(FIXED(B1,2),3)=".00",CONCATENATE(INT(B1)," kg"),IF(RIGHT(FIXED(B1,2),1)="0",CONCATENATE(FIXED(B1,1)," kg"),CONCATENATE(FIXED(B1,2)," kg")))

在此处输入图片描述

相关内容