您将需要执行一系列字符串操作和日期时间函数。首先假设您的字符串位于 A1 单元格中。为了做到这一点,我们将从最大单位(年)到最小单位(秒)进行处理。您可以按任何顺序执行此操作,因为它们都会集中到一个公式中,但对于步骤的细分,最好有一个顺序。
步骤 1) 列出年份
=RIGHT(A1,4)
这将为我们提供字符串的最后 4 个字符,在本例中是年份。
步骤 2) 提取月份
=MONTH(DATEVALUE(MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND(" ",A1)+1)-FIND(" ",A1)-1)&"-"&1))
这种丑陋的做法是查看第一个和第二个空格的位置,然后拉出中间的绳子,这就是你的月份。然后,它通过添加 - 和数字 1 将其转换为 excel 倾向于识别为日期缩写形式的格式。所以在你的情况下,如果看起来像 May-1。 Datevalue 将其转换为 Excel 日期序列,然后我们将其拉回并获取月份,在您的情况下为 5
如果上述公式不适合您,可能是由于区域设置所致。如果是这种情况,您可以使用以下方法:
=MATCH(MID(A1,FIND(" ",A1)+1,3),{"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"},0)
如果您使用此替代公式,请务必相应地调整最终方程。
步骤 3) 抽出一天的时间
=TRIM(MID(A1,FIND(" ",A1,FIND(" ",A1)+1)+1,2))
因此,上面的公式找到第二个空格,然后开始拉出其后的下一个字符,总共两个字符。现在,由于我不知道该月的第一天是 01 还是 1,所以我可能最终会抓住 1 之后的空间。trim 函数会删除多余的空格。
第 4 步)确定日期
Excel 中的 DATE 函数需要年、月和日,并将这些值转换为 Excel 日期序列。在这种情况下,我们将转换:
=DATE(year,month,day)
将上面的方程代入如下:
=DATE(right(A1,4),MONTH(DATEVALUE(MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND(" ",A1)+1)-FIND(" ",A1)-1)&"-"&1)),TRIM(MID(A1,FIND(" ",A1,FIND(" ",A1)+1)+1,2)))
第5步)抓紧时间
我假设这是 24 小时制,因为没有 AM/PM 指示器。您可以通过提取小时、分钟和秒来提取时间,与 DATE 函数类似,使用 TIME 函数。但是您的时间采用不同的可识别格式,因此让我们一次性提取所有时间。我们也会作弊一点,因为我们可以通过您的格式判断时间中的所有个位数都有一个前导零。这意味着您的时间字符串的长度恒定为 8。我们不会查找第三个空格(这可能会使嵌套查找语句变得非常难看),而是查找第一个 : 并最终得到以下结果:
=MID(A1,FIND(":",A1)-2,8)
请注意,我们从第一个 : 开始返回 2 个字符,然后从该点向右拉出总共 8 个字符。现在我们已经有了一个很好的时间字符串,我们可以使用 TIMEVALUE 函数将其转换为时间,如下所示:
=TIMEVALUE(MID(A1,FIND(":",A1)-2,8))
步骤 6) 合并日期和时间
由于在 Excel 中,日期存储为整数,时间存储为小数,因此我们可以简单地将两者相加,并将日期和时间存储在同一单元格中。我们将通过以下方式实现这一目标:
=DATE(right(A1,4),MONTH(DATEVALUE(MID(A1,FIND(" ",A1)+1,FIND(" ",A1,FIND(" ",A1)+1)-FIND(" ",A1)-1)&"-"&1)),TRIM(MID(A1,FIND(" ",A1,FIND(" ",A1)+1)+1,2)))+TIMEVALUE(MID(A1,FIND(":",A1)-2,8))
步骤 7) 格式化单元格
因此,对于其中包含公式的单元格,请选择“自定义”格式,而不是“常规”格式。在可以键入的栏中,输入以下显示格式:
dd/mm/yyyy hh:mm:ss
备用日期法
如果步骤 2 中的公式适合您,则可以使用以下公式作为您的日期公式:
=DATEVALUE(TRIM(MID(A1,FIND(" ",A1,FIND(" ",A1)+1)+1,2))&"-"&A3&"-"&RIGHT(A1,4))
您的组合日期时间公式将是:
=DATEVALUE(TRIM(MID(A1,FIND(" ",A1,FIND(" ",A1)+1)+1,2))&"-"&A3&"-"&RIGHT(A1,4))+TIMEVALUE(MID(A1,FIND(":",A1)-2,8))
使用的公式
文本/字符串函数
- RIGHT https://support.office.com/en-US/article/RIGHT-RIGHTB-functions-240267EE-9AFA-4639-A02B-F19E1786CF2F
- MID https://support.office.com/en-US/article/MID-MIDB-functions-D5F9E25C-D7D6-472E-B568-4ECB12433028
- FIND https://support.office.com/en-US/article/FIND-FINDB-functions-C7912941-AF2A-4BDF-A553-D0D89B0A0628
- TRIM https://support.office.com/en-US/article/TRIM-function-410388FA-C5DF-49C6-B16C-9E5630B479F9
日期/时间函数
- DATE https://support.office.com/en-US/article/DATE-function-E36C0C8C-4104-49DA-AB83-82328B832349
- 日期值 https://support.office.com/en-US/article/DATEVALUE-function-DF8B07D4-7761-4A93-BC33-B7471BBFF252
- 时间价值 https://support.office.com/en-US/article/TIMEVALUE-function-0B615C12-33D8-4431-BF3D-F3EB6D186645
- MONTH https://support.office.com/en-US/article/MONTH-function-579A2881-199B-48B2-AB90-DDBA0EBA86E8