【问题标题】:Excel conversion of US date (text) to european date (date)美国日期(文本)到欧洲日期(日期)的 Excel 转换
【发布时间】:2011-06-21 08:08:23
【问题描述】:

我正在将美国网页中的数据粘贴到 Excel 表中。欧洲 Excel 无法理解美国日期......所以我将其粘贴为文本。

美国日期和欧洲日期的区别在于日期和月份的顺序不同。如何从“美国文本日期”到“欧洲”Excel 可以理解的实际日期?将其读取为日期不起作用,因此 YEAR(), MONTH(), DAY() 将不适用于本机文本字符串。必须先进行一些字符串转换。

第三列只是为了显示问题。这是对“A”列中的文本调用的 MONTH 函数的结果。它需要当月的一天,因此在到达 9 月 13 日时会引发错误。

TEXT (from US web)       EU date (real date)            MONTH(A1)
9/8/10 10:03 PM          8. Sep 2010                    8
9/9/10 10:03 PM          9. Sep 2010                    9
9/10/10 10:03 PM         10. Sep 2010                   10
9/11/10 10:03 PM         11. Sep 2010                   11
9/12/10 9:40 PM          12. Sep 2010                   12
9/13/10 9:40 PM          13. Sep 2010                   ERROR
9/14/10 9:40 PM          14. Sep 2010                   ERROR
9/15/10 9:28 PM          15. Sep 2010                   ERROR

如果没有“转换函数”,那么解决方案可能是将 m/d/yy 拆分为三列并从中创建一个日期。如果是这样,我需要一些帮助来将文本拆分为日、月和年。

更新答案.... Lazarus 想出了一个可行的方法。首先,将 A 列中的文本拆分为年、月和日。然后将它们结合起来,例如。使用日期函数

  • 年份:MID(A2,FIND("/",A2,FIND("/",A2,1)+1)+1,FIND(" ",A2,1)-FIND("/",A2,FIND("/",A2,1)+1)-1)
  • 月份:MID(A2,1,FIND("/",A2,1)-1)
  • 日:MID(A2,FIND("/",A2,1)+1,FIND("/",A2,FIND("/",A2,1)+1)-FIND("/",A2,1)-1)

【问题讨论】:

    标签: string excel date


    【解决方案1】:

    您可以尝试使用 Excel 的 DATEVALUE() 函数将文本字符串转换为实际的 Excel 日期值

    =DATEVALUE(MID(A1,4,2)&"/"&LEFT(A1,2)&"/"&RIGHT(A1,2))
    

    然后你可以根据需要对它进行数字格式屏蔽

    【讨论】:

    • 感谢有关 dateavalue 函数的输入。但是在这种情况下,其余的答案不会正常,因为日和月都会有一个或两个整数(年份总是 2)。并且使用 RIGHT 函数将从日期之后写入同一单元格的时间中选择字符。还是非常感谢。如果 Lazarus 没有准备好发布防弹转换线,我本可以用它作为“最终”线的灵感;-) BR。安德斯
    【解决方案2】:

    假设您的第一次约会在单元格 A2 中,那么以下内容将从美国结构转换为欧洲结构。

    =DATE("2000"+MID(A2,FIND("/",A2,FIND("/",A2,1)+1)+1,
     FIND(" ",A2,1)-FIND("/",A2,FIND("/",A2,1)+1)-1),
     MID(A2,1,FIND("/",A2,1)-1),MID(A2,FIND("/",A2,1)+1, 
     FIND("/",A2,FIND("/",A2,1)+1)-FIND("/",A2,1)-1))
    

    【讨论】:

    • 完美!只需要翻译成我的欧洲版本。其他函数名,我必须使用分号;而不是逗号,
    • 很高兴,令我惊讶的是,如今 Excel 更多地被视为一种数据工具,但它没有更好(或更明显)的方法来处理某些数据类型。跨度>
    【解决方案3】:

    您需要使用 text to columns 将初始 USA 值拆分为三个组件。然后,您应该完成工作中的日、月、年。使用 Concatenate 重新组装这三个组件,并使用 Rept() 命令将前导零添加回需要的位置。

    【讨论】:

      【解决方案4】:
      =((MID(A1,(SEARCH("/",A1,1)+1),((SEARCH(RIGHT(A1,4),A1,1)-1)-(SEARCH("/",A1,1)+1))))&"/"&LEFT(A1,(SEARCH("/",A1,1)-1))&"/"&RIGHT(A1,4))+0
      

      【讨论】:

      • 虽然此代码可能会解决问题,including an explanation 关于如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提出问题的人。请edit您的回答添加解释并说明适用的限制和假设。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-22
      • 2015-12-17
      • 2018-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多