Excel TEXT 函数无法正常工作

Excel TEXT 函数无法正常工作

假设我在单元格中有以下值

A1 : `=Now()` which displays 17.03.2014 13:45 
A2 : 12.03.2014

两者都是日期格式,并且我在另一个单元格中具有如下功能:

B1 : `=TEXT(A1;"dd.mm.yyyy")`
B2 : `=TEXT(A2;"dd mm yyyy")`

在第一种情况下,我收到#VALUE单元格中的错误;在第二种情况下,我收到:dd 03 yyyy就像只有月份有效一样。

我使用的是Windows 7和Office 2013 Professional。

猜猜是什么?

答案1

您的代码对我来说很好用。

虽然我必须使用

B1 : =TEXT(A1,"dd.mm.yyyy")    
B2 : =TEXT(A2,"dd mm yyyy")

我猜我使用的原因,;由于语言的差异。错误更可能是由于 dd.mm.yyyy

例如,我知道在德国我不能使用,dd因为德语中的 d(day)是标签,因此需要tt

我猜这个月没问题,根据你的dd 03 yyyy...我认为瑞士使用多种语言,所以我不知道该尝试什么,但是,像tt.mm.jjjj

答案2

要使用 excel TEXT 函数的英文文本格式,同时您有不同的国际系统设置(控制面板/区域和语言设置),以便命令=TEXT("12/12/2000", "yyyy")正常工作,请更改寄存器:

Key Name: HKEY_CURRENT_USER\Control Panel\International Value 25 Name: iCountry Type: REG_SZ Data: 44

请小心,无论如何,当在任何具有不同国际设置的计算机上打开该文件时,此类函数都会返回#VALUE!错误。

答案3

简单的解决方法是,无论是直接自定义格式化单元格还是使用 TEXT(),都使用您知道正确格式代码的语言的国家代码。

例如,我在美国,有美国版的 Excel,并且熟悉其日期代码格式。因此,我想使用它们,并确保无论任何人的 Windows 或 Excel 版本如何,或他们所在的国家/地区如何,它们都会“出来”,我会像下面这样操作(对于 TEXT(),假设如此,但在自定义格式中也是同样的想法):

=TEXT(A1,[$-en-US]"dd-mm-yyyy")

该函数将收集 A1 中的值,要求 Excel 将其视为日期,Excel 会说没问题,没问题(即:该值为 43857 而不是“horse”),因为它是一个正数,这是将任何事物视为日期的必要条件,然后让函数继续按照规定的方式将其呈现为日期。而不是#ERROR!像“horse”或 -6 那样给出一个。

然后,该函数将读取格式字符串并查看语言代码。然后,它将删除启动时加载的常用格式代码集,并加载英语(“en”)和美国英语(“US”)的格式代码。字符串的其余部分使用该集合中的代码,因此它将正确解释它们并将适当的字符串发送回 TEXT() 以使其显示在单元格中(并传递给其他公式(如果存在))。

我无法测试以下内容,但我假设如果使用显示星期几名称或月份名称的格式,它们将来自同一语言集。换句话说,Excel 不会认为即使您指定了国家/地区和语言,您仍然想要荷兰语或刚果语月份名称。因此,这种事情仍然需要解决,但也很容易解决,只需涉及,例如,可以添加一个简单的查找,尽管为想要适应的每种语言设置查找表会很“有趣”...

但是,这个问题通常引发的基本问题可以通过国家代码非常非常轻松地解决。现在 [$-409] 语法已被 [$-en-us] 和 [$-he-IL] 等语法取代,它们甚至不再困难或晦涩难懂。

相关内容