答案1
简单的解决方法(无论是直接自定义格式化单元格还是使用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] 等语法取代,它们甚至不再困难或晦涩难懂。
不过我要指出的是,如果唯一的困难是年份部分,最简单的解决方法是user353435
:只需使用“e”作为格式字符串的年份部分。最简单的方法。还有更多吗?只需执行上述操作即可。
答案2
e
只需这样写yyyy
:
text(a1;"e-mm-dd")
答案3
我不确定这是否是解决问题的正确方法,但这在我的荷兰语机器上有效。
在荷兰语中,y(表示年份)代替了 j(表示 jaar)。
TEXT(G1533, "mm-dd-jjjj")
或者...你可以采取这样的做法:
CONCATENATE(TEXT(G1533, "mm-dd-"), YEAR(G1533))
答案4
这是由您 PC 的区域设置引起的。您需要转到控制面板,然后选择“区域和语言”,然后在那里将日期设置设置为与 dd-mm-yyyy 相匹配。