【问题标题】:Separate date and time in ExcelExcel 中的单独日期和时间
【发布时间】:2015-12-30 13:17:05
【问题描述】:

我需要在 Excel 中为大量数据列表分隔日期和时间,格式为 12/23 1600(即 12 月 23 日 16:00)。 我尝试了函数 =DATE(YEAR(serial_number),MONTH(serial_number),DAY(serial_number)),但它无法读取该格式。

你能告诉我如何在不改变格式的情况下做到这一点吗?

【问题讨论】:

  • 您将无法从该日期格式中获取年份。 Excel 会将其视为文本 - =serial_number+1 返回 #VALUE 错误。您必须使用文本函数将各个部分拉出,然后将其输入 DATE 函数 - =LEFT(serial_number,FIND("/",serial_number)-1) 将返回 12,=MID(serial_number,FIND(" ",serial_number)+1,LEN(serial_number)) 将返回时间部分。

标签: excel date datetime time excel-formula


【解决方案1】:

当我看到你的数据时,这对我有用

=DATE(YEAR(TODAY()),LEFT(A2,2),MID(A2,4,2))

=TIME(INT(MID(A2,FIND(" ",A2)+1,9)/100),MOD(MID(A2,FIND(" ",A2)+1,9)/100,1)*100,0)

【讨论】:

  • 只要格式始终相同 - 例如 01/08 0730 而不是 1/8 730
  • @Bob - 是的,它有效,非常感谢。我注意到该函数将年份返回到 2016,这是我们在 2016 中的默认值吗?
【解决方案2】:

如果数据是字符串,AND IF你的windows短日期区域格式是MDY,那么试试:

=DATEVALUE(LEFT(A1,FIND(" ",A1)-1))

如果数据是“真实”日期,格式化为您显示的格式,然后尝试:

=INT(A1)    

无论哪种情况,请务必按照您的意愿格式化结果。

如果您的 Windows 区域设置不是 MDY,那么您可以使用这个更复杂的公式:

=DATE(YEAR(TODAY()), LEFT(A1,FIND("/",A1)-1),MID(LEFT(A1,FIND(" ",A1)-1),FIND("/",A1)+1,2))

时间部分可以试试

=TIMEVALUE(REPLACE(RIGHT(A1,4),3,0,":"))

如果上述方法不起作用,请提供有关单元格中的确切内容、您的区域格式等的更多信息。

【讨论】:

  • 我正要说我的回答是正确的 - 但你的回答是 2023 年 12 月 1 日,这可能是 OP 所追求的。我认为他们是在某个未知年份的 12 月 23 日之后。
  • @DarrenBartrup-Cook 正如我所写,我的工作需要您的 Windows 区域设置为 MDY。我猜你的是 DMY,因为这会产生你显示的结果。
  • 点了。将等同于 =DATEVALUE("12/23"),即 MDY 的 2015 年 12 月 23 日。
  • 我试图合并这两个函数 =DATE(YEAR(TODAY()),LEFT(A2,2),MID(A2,4,2)) 和 =TIME(INT(MID(A2 ,FIND(" ",A2)+1,9)/100),MOD(MID(A2,FIND(" ",A2)+1,9)/100,1)*100,0) 将它们应用于此单元格 01/21 0501 ,所以我做了以下事情: =DATE(YEAR(TODAY()),LEFT(A2,2),MID(A2,4,2))+TIME(INT(MID(A2,FIND(" ",A2)+1,9)/100),MOD(MID(A2,FIND(" ",A2)+1,9)/100,1)*100,0) ,应该是1/21 /2016 5:01 ,但我只有 1/21/2016 ,请您检查一下并告诉我错误是什么?
  • 这里工作正常。我猜你没有正确格式化单元格以显示时间和日期。
猜你喜欢
  • 2015-03-22
  • 2021-07-27
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 2018-01-14
  • 2018-08-28
  • 1970-01-01
相关资源
最近更新 更多