Excel - 使用逗号和点分隔小数

Excel - 使用逗号和点分隔小数

我有一个 Excel 电子表格,里面有一些生成的数据。然后,这个电子表格会呈现给用户,用户需要填写一些数字。然后,有一列是用户插入数据的简单总和。

问题是,尽管我的所有用户都位于使用逗号(“,”)作为小数分隔符的中欧,但其中一些用户仍然使用点(“。”)作为小数分隔符。然后 Excel 将此单元格视为日期时间,并且用户无法将单元格格式切换回数字(电子表格受密码保护,大多数单元格都已锁定)。

我的问题是:有没有办法将点和逗号都视为小数分隔符?我不能使用 VBA,并且必须有一个包含用户输入值总和的列(例如,我想将单元格转换为文本对我没有帮助,因为总和不适用于文本单元格)。

答案1

让每个用户使用“文件”>“选项”>“高级”设置 Excel 的首选小数分隔符

在此处输入图片描述

取消勾选“使用系统分隔符”并设置所需的分隔符。这样,用户 A 可以使用带有小数点的数字,而更喜欢使用小数逗号的用户 B 可以打开同一个文件,并会看到带有小数逗号的相同数字。

Excel 是国际化的,可以满足这些需求。只需勾选即可。无需 VBA。

答案2

最简单的解决方案如下,它至少可以追溯到 Excel 2013,但不受 Excel 2010 的支持。

  1. 值已生成。听起来你对此有控制权或影响力。将值生成为字符串,而不是实际数字。如果以实际数字的形式出现,请将生成公式包装在函数中TEXT。选择一个小数分隔符并将其用于所有小数很重要,或者使用稍微复杂一些的方法从生成的文本字符串中梳理出各种分隔符。即使你有一个整数值,也要将分隔符添加到其中。

  2. 接下来,将生成的值包装(或使用辅助列)到NUMBERVALUE函数中。在其中,将小数分隔符指定为您在上述步骤 1 中选择的任何分隔符。(请注意,为此目的,您的小数分隔符可以是希腊字母 beta,而不是句号或逗号!NUMBERVALUE只要关心它确实存在就行。)这就是为什么您选择将某个东西用于所有东西,而不是使用其中任何一个。

  3. 然后,Excel 将字符串转换为数值(或转换回 1)。这里重要的是,任何给定值的转换都会在任何一台机器上进行,或者如果启用了各种共享选项,则会同时在多台机器上进行。但它们自己的设置是什么并不重要:无论在哪台机器上,该函数都会将标准化字符串转换为实数,然后各个机器会弄清楚如何在自己的显示器上显示它们。如果两个人在不同的机器上查看同一个单元格,一个人可能会将句点视为分隔符,而另一个人可能会将逗号视为分隔符。

因此,您已经完成了对该问题的“最终解决”。您向每台机器提供了一组您可以完全控制的字符串,并NUMBERVALUE使用您已知的分隔符将它们输入。该函数算出了数字应该是多少,而且由于到目前为止,这一切都不依赖于任何特定机器的设置,因此没有人的设置会让它失去立足之地。

完成数字创建过程后,它只是一个存储在 Excel 中的数字。没有分隔符或其他东西,Excel 会自行显示它们,每台机器都有自己的独特功能,但实际上从未改变底层数字,只是改变其显示方式。

因此,像这样的公式:

=NUMBERVALUE(  GeneratedӚString,  "Ӛ"  )

其中Ӛ(“西里尔大写字母 Schwa 带分音符”)字符用作小数分隔符。当然,逗号或句号也可以。

相关内容