之前的答案似乎将日期格式作为文本提供给您。如果这适合您的需求,那就太好了。但是,如果您希望它采用 excels 日期/时间格式,您可以使用以下格式。我发现通常使用 excel 格式的日期和/或时间会更好,因为如果您可能想要对日期进行任何形式的进一步操作,例如按时间顺序排序,那么您可以稍后使用更简单的公式按字母顺序排列。
您将需要完成一系列字符串操作和日期函数。让我们首先假设您的字符串在 AH2 单元格中。为了做到这一点,我们将从最大的单位(年)到最小的单位(天)。您可以按任何顺序执行此操作,因为最终将全部归为一个公式,但对于步骤的细分,最好有一个顺序。
第 1 步)拉出这一年
=RIGHT(AH2,4)
这将给我们字符串的最后 4 个字符,在这种情况下是年份。
第 2 步)退出月份
=MONTH(DATEVALUE(LEFT(AH2,3)&"-"&1))
这需要前 3 个字符,即您的月份。然后,它通过添加 - 和数字 1 将其转换为 Excel 倾向于将其识别为日期短格式的格式。所以在你的情况下,如果看起来像 8 月 1 日。 Datevalue 将其转换为 excel 日期序列,然后我们将其拉回并从您的情况下为 8 获取月份
如果上述公式对您不起作用,则可能是由于区域设置。如果是这种情况,您可以使用以下内容:
=MATCH(LEFT(AH2,3),{"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"},0)
如果您使用此替代公式,请务必相应地调整最终公式。
第 3 步)结束这一天
=TRIM(MID(AH2,FIND(",",AH2)-2,2))
上面的公式找到第一个逗号,然后返回 2 个字符,然后开始拉下一个 2 个字符。现在,由于我不知道该月的第一天是 01 还是只是 1,它最终可能会抢占 1 前面的空间。修剪功能会删除多余的空间。
第 4 步)构建日期
Excel 中的 DATE 函数需要 YEAR、MONTH 和 DAY 并将这些值转换为 excel 日期序列。在这种情况下,我们将转换:
=DATE(year,month,day)
通过将上面的方程代入以下公式:
=DATE(RIGHT(AH2,4),MONTH(DATEVALUE(LEFT(AH2,3)&"-"&1)),TRIM(MID(AH2,FIND(",",AH2)-2,2)))
最后一点是确保您的单元格被格式化为日期,而不是常规或其他格式,这将导致日期以整数格式显示。
使用的公式
文本/字符串函数
日期/时间函数