数字格式 #.# - Excel 错误?

数字格式 #.# - Excel 错误?

我尝试使用数字格式 #.# 将 7 显示为 7,但它确实显示“7”。 (在 Excel 或其他 MS 环境中)

我想7.1成为7.17成为77.49成为7.5,也就是说#.#(见这里

我无法在该单元格中使用公式,因为用户将对其进行编辑,我只能与自定义格式细胞。

在此处输入图片描述

有没有办法显示一个没有微小零的数字,但如果小数点分隔符后有内容,则最终显示一位小数?

由于格式#.###意味着,7对于7,在这种情况下 Excel 无法正确呈现值,这应该被视为漏洞, 和固定的由 Microsoft 提供。下面是一个 .Net 示例,其中的#.#数字格式正确显示123123(没有点)。 https://dotnetfiddle.net/JDBLM2

我的问题是因为我尝试在类似 Excel (telerik) 的电子表格中格式化数字,例如

sheet.range("C11:Z100").format('[>=1]#;[<1]#.####');

但是对于整数没有这样的格式条件,例如:

sheet.range("C11:Z100").format('[=INT(C11)=C11]#;[=INT(C11)<>C11]#.####');

我不能使用虚拟专用网络,因为我只有电子表格,所以我在包含电子表格的 Web 应用程序上工作,并且我没有 VBA,我只有 C# 服务器端代码和客户端的 JavaScript。

答案1

如果不结合 Excel 提供的两种格式或使用 VBA,您就无法实现您想要的效果。

VBA 是一种简单的“遍历所有单元格”来修复格式的方法。如果你愿意,那就去做吧。如果不愿意,我可不能帮你提供详细信息。

但是,解决此问题的传统方法是使用常规格式将单元格格式化为所需的基本格式: #.#。到目前为止,一切顺利。您有“7.1”……现在要摆脱“7。”条目。

应用条件格式,使用规则测试条目的“整数性”,如果测试通过,则应用“常规”格式。因此,所有“7.1”条目均保持不变,而整数将重新格式化为“7”,您就大功告成了。

与 VBA 相比,它的优点是可以在您输入值时自动且即时地完成。应用 CF 会给您的电子表格增加负担吗?哦,是的……不过,除非您拥有真正庞大的数据集,否则您现在不应该注意到它。而且我要指出的是,VBA 既不会免计算(!!!),您也不会乐意将其自动化并看到它命中每个击键。所以……

如果它可以自然发生就好了,但是...Excel 没有这些。

使用 CF 的缺点是,对电子表格进行的任何涉及您指定范围的结构性更改都可能会使您需要检查和修复的范围分裂。

(我所说的“巴尔干化”是指分裂成小块,没有因数千年来被外来者完全统治而产生的民族自豪感,并且觉得你唯一能让自己骄傲并假装自己是男人的方法就是屠杀成千上万来自附近其他民族的男人、女人,尤其是他们的孩子,你们中间也有同样悲惨的被完全统治的历史。不,不是现代意义上的“巴尔干化”......而是更古老、更不可怕的意思。)

(几十年来,这一直是解决方案。Excel 没有提供任何帮助,也没有为此道歉。)

相关内容