Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel文本公式不';t转换为';yyyy';到一年_Excel_Date_Date Formatting - Fatal编程技术网

Excel文本公式不';t转换为';yyyy';到一年

Excel文本公式不';t转换为';yyyy';到一年,excel,date,date-formatting,Excel,Date,Date Formatting,我想在Excel 2013中结合一些文本和日期 假设我有一个A2单元,日期为2014年10月30日。我尝试用以下公式将日期附加到文本之后: =“一些文本和日期:”&A2 但输出以数字形式显示日期:一些文本和日期:41942 所以我试着用这个公式: =“一些文本和日期:”&text(A2;“dd-mm-yyyy”) 但这显示了一些文本和日期:30-10-yyyy,而不是一些文本和日期:30-10-2014 所以,或者我不明白文本公式是如何工作的,或者这里是否存在一些错误/问题 更新:看起来我有荷兰

我想在Excel 2013中结合一些文本和日期

假设我有一个A2单元,日期为2014年10月30日。我尝试用以下公式将日期附加到文本之后:
=“一些文本和日期:”&A2

但输出以数字形式显示日期:一些文本和日期:41942

所以我试着用这个公式:
=“一些文本和日期:”&text(A2;“dd-mm-yyyy”)

但这显示了一些文本和日期:30-10-yyyy,而不是一些文本和日期:30-10-2014

所以,或者我不明白
文本
公式是如何工作的,或者这里是否存在一些错误/问题


更新:看起来我有荷兰版的Windows(7)和英文版的Excel(2013)很重要,这导致了这个问题

所有荣誉归于@AxelRichter,谢谢Axel

看起来,如果你有荷兰版的Windows,但有英文版的Excel(2013),那么公式就会混淆。例如,我仍然有英文公式名,如
TEXT
(荷兰语为
TEKST
),但仍然必须在公式中使用冒号而不是逗号。
text
的format_text值仍然需要荷兰格式,该格式与当年不同(jjjj而不是yyyy)

因此,如果您有荷兰Windows和英文Excel版本,则某些文本后跟格式化日期的正确公式为:

=“一些文本和日期:”&text(A2;“dd mm JJJ”)

我希望微软能解决这个问题,这很烦人

解决方案:要检查“JJ”格式是否正常工作:

要以特定格式显示的日期为A1

在单元格A2中,将cel链接到cel,并使用以下公式以特定格式显示日期:

=TEXT(A1;"dd/mm/jjjj")
=IF(RIGHT(A2;4)="jjjj";TEXT(A1;"yyyy");TEXT(A1;"jjjj"))
然后,在第三个cel中放置以下公式:

=TEXT(A1;"dd/mm/jjjj")
=IF(RIGHT(A2;4)="jjjj";TEXT(A1;"yyyy");TEXT(A1;"jjjj"))

如果右边的4位数字是“jjjj”,则此公式将显示格式为“yyyy”的日期,否则将使用格式为“jjjj”。

对于相同的问题,如果您的系统或键盘是丹麦语,则使用åååå代替JJJ。我也费了很大劲才找到这把钥匙。
但是,如果除了荷兰语或丹麦语之外,任何人都面临同样的问题,那么您可以检查哪把钥匙是正确的。要查找它,请右键单击任何单元格并转到“格式单元格”,然后选择“自定义”并查找本地语言中与日期相关的格式。在那里,您可以找到在您的本地语言中用于日期格式的正确键

这里的Excel显然失败了。文本应该是语言不可知的

我发现的解决方法,特别是如果要格式化多个单元格:

  • 在隐藏单元格或白色单元格中计算所需的日期格式:
  • =IF(类型(值(文本(日期单元格;“YY”))=1;“DD.MM.YYYY”;“БМ.М.Γ”)

    如果需要,可以将其扩展以支持多个区域,如:

    =IF(类型(值(文本(日期单元格;“YY”))=1;“DD.MM.yyyyy”;IF(类型(值(文本(日期单元格;“ΓΓ”))=1;“БП.М.М.Γ.ΓΓ”;“DD.MM.jjj”))

  • 在需要日期的单元格上,使用上一个单元格作为第二个参数:

  • =“Date:&TEXT(Date\u CELL;FORMAT\u CELL)

    我们在工作中遇到了同样的问题,我发现如果我不能影响窗口的本地化,那么我会使用一个公式,在您的情况下,该公式如下所示:

    ="Some text and a date: "&TEXT(A2;"dd-mm-")&YEAR(A2)
    

    有趣的是,“dd”和“mm”是一样的。

    这个问题仍然存在于Excel 2016(或者Office 365,如果可以的话)。这是由Windows中的不同语言设置引起的。对于具有不同年份符号的语言(荷兰语是'jjjj',葡萄牙语是'aaaa'),这种情况会发生。如果遇到此问题,请尝试使用本地Windows语言的年份格式。

    您现在可以使用“e”而不是“yyyy”。e是yyyy a的通用版本

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

    例如,我在美国,拥有美国版的Excel,并且熟悉其日期代码格式。因此,我希望使用它们,并确保它们“出来”,而不管任何人的Windows或Excel版本,或它们所在的国家/地区,我都会像下面这样做(对于
    TEXT()
    ,比方说,但在自定义格式中的想法是相同的):

    函数将收集A1中的值,要求Excel将其视为日期,Excel会并且会说fine,it's cool(即:该值是,比如说,43857,而不是“horse”),因为它是一个正数,这是任何被视为日期的要求,并让函数继续以规定的方式将其视为日期。而不是给出一个
    #错误与“horse”或-6一样

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

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

    然而,这里出现的基本问题,以及这个问题的一般情况,是非常非常容易用国家代码解决的。现在,它们甚至不再是坚硬或神秘的了