【问题标题】:How to a convert a string in this format "20180101" into a date value like 01/01/2018 in Excel? [duplicate]如何在 Excel 中将此格式“20180101”的字符串转换为日期值,如 01/01/2018? [复制]
【发布时间】:2018-03-24 16:48:16
【问题描述】:

我可以使用什么公式将字符串转换为显示为 01/01/2018 的日期值?

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    如果您尝试从公式到另一个单元格中执行此操作,而不是在原位(为此,根据 Jeeped 的回答,使用“文本到列”),您可以结合 @987654321 @ 和MID,或使用REPLACE 并与+0DATEVALUE 进行转换:

    =DATE(MID(A1,1,4), MID(A1,5,2), MID(A1,7,2))
    

    =REPLACE(REPLACE(A1,7,0,"-"),5,0,"-")+0
    

    =DATEVALUE(REPLACE(REPLACE(A1,7,0,"-"),5,0,"-"))
    

    (其中A1 是转换日期)

    第一个公式只是将数字分成20180101,并将它们用作年、月和日。第二个 2 通过首先在位置 7 ("201801-01") 和位置 5 ("2018-01-01") 插入(即REPLACE 0 个字符)连字符并将字符串转换回数字/日期来工作。

    【讨论】:

    • 你是明星!第一个例子解决了我的问题:)
    • 您可以就地使用 T2C 或输出到备用列。您所要做的就是指定目的地:(位于我在下面的回复中捕获的同一屏幕上)。
    【解决方案2】:

    使用数据,TextToColumns,固定宽度,日期:YMD,完成。可能是日期:YDM,具体取决于您的字符串日期格式(您提供了一个模棱两可的示例)。

    【讨论】:

    • 我已经完成了这项工作,它所做的一切都是以这种格式将我的字符串分成 3 个不同的列: Column1: 2018 ;第 2 列:1 / 第 3 列:1。它没有将其转换为日期值。
    • 您需要删除第二个对话框屏幕上的额外字段。我没有提到这一点,因为我的测试时没有显示十。只需双击分隔日期的垂直线或将它们拖走。
    • ... 甚至使用 Delimited 代替并关闭所有分隔符。
    【解决方案3】:

    使用下面的代码

    =RIGHT((text),2)&"/"&MID((text),5,2)&"/"&LEFT((text),4)
    

    【讨论】:

      【解决方案4】:

      使用将文本格式作为输入的 DATEVALUE() 函数。并不是说如果您的输出单元格不是日期格式,您将看到一个简单的 int 而不是预期的 2016 年 1 月 1 日。

      我建议您参考 DATEVALUE 函数文档,以更深入地了解输入格式等

      【讨论】:

      • 这给了我#VALUE
      • 这是因为您的原始单元格(要输入的文本之一)不是“文本”格式
      • 我之前尝试过使用 datevalue 但对于 =Datevalue("20180101") 我得到 #Value!这有点道理。
      • 我已将我的专栏从一般更改为文本 - 我遇到了同样的问题
      • 我尝试格式化为 text 并使用'20180101(用撇号强制字符串),但都没有成功
      猜你喜欢
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多