需要一种方法从此类似数据的文本中提取日期和时间参数 2023 年 8 月 14 日上午 11:36 才能被识别为实际日期

Need a way to extract the date and time parameters from this data-like text Aug 14 2023 11:36AM to be recognized as actual date

提问人:NewJackSwing4Ever 提问时间:10/18/2023 最后编辑:Mayukh BhattacharyaNewJackSwing4Ever 更新时间:10/18/2023 访问量:48

问:

在 excel 中,我正在寻找一种方法来从这个类似数据的文本字符串中提取日期和时间参数 2023 年 8 月 14 日 11:36AM 并将其转换为不同的格式,例如 8/14/2023 11:36AM。

我已经阅读了其他人提出的许多方法,但并尝试使用公式解析文本并插入逗号

=CONCAT(LEFT(TRIM(A2),3), " ", MID(A2,5,2), ","," ", MID(A2,8,4))

2023 年 8 月 14 日。通常,当直接在Excel表格单元格中键入时,它将转换为实际的日期格式。但是,即使我将字段数据类型更改为 shortdate,它也不会。最终,我想捕捉整个时间和日期,并让它像实际日期一样识别。有没有特殊功能可以允许这样做?

(我经常使用 2023 年 8 月 14 日重新格式化日期,但是我还没有看到任何可以将其转换为日期的函数,但也许有)。=Text(A1, "yyyy-mm-dd")

Excel 日期 excel 公式

评论

0赞 Mayukh Bhattacharya 10/18/2023
尝试:并根据您的喜好设置单元格格式。输出将是一个数字,因为我们所有的日期和时间都存储为excel中一天的数字和分数,因此对于所述日期和时间,它将显示您需要格式化为从 --> --> -->选择第 13 个样本,该样本将在显示中返回为=LET(a, RIGHT(A1,2), SUBSTITUTE(SUBSTITUTE(A1," ",", ",2),a," "&a)+0)45152.48333Format CellsCategoryDate8/14/2023 11:36 AM

答:

1赞 Mayukh Bhattacharya 10/18/2023 #1

就像我上面评论的那样,这适用于当前频道。MS365

enter image description here


• 细胞中使用的配方B1

=LET(a, RIGHT(A1,2), SUBSTITUTE(SUBSTITUTE(A1," ",", ",2),a," "&a)+0)

上面的公式需要填充,或者如果你想要一个动态数组公式,那么

enter image description here


• 细胞中使用的配方C1

=MAP(A1:A3,LAMBDA(x,SUBSTITUTE(SUBSTITUTE(x," ",", ",2),RIGHT(x,2)," "&RIGHT(x,2))+0))

笔记:输出将是一个数字(如果输出单元格没有事先格式化),因为我们都知道日期和时间在excel中存储为一天的数字和分数,因此对于所述日期和时间,它将显示您需要格式化为从--> --> -->选择将在显示中返回的样本45152.48333Format CellsCategoryDate13th8/14/2023 11:36 AM


或者,如果你只需要一天,那么这就足够了。

enter image description here


• 细胞中使用的配方B1

=TEXTBEFORE(SUBSTITUTE(A1:A3," ",", ",2)," ",-1)+0

或者,只有那时的时间,

enter image description here


• 细胞中使用的配方B1

=SUBSTITUTE(TEXTAFTER(A1," ",3),RIGHT(A1,2)," "&RIGHT(A1,2))/1

OP在评论中更新:

谢谢。两者都奏效了。你如何处理这些,比如 2023 年 8 月 3 日上午 9:03其中一天是个位数?我知道如何像这样填充日期值 =IF(LEN(TRIM(MID(A2,5,2)))<2,CONCAT(“0”,TRIM(MID(A2,5,2))),TRIM(MID(A2,5,2)))) 但是这些公式将如何处理个位数或两位数的日期值?


给定的公式,即使它是个位数或两位数,第一个仍然有效,因为我们不是在这里寻找数字,而是在寻找第二个分隔符,这是一个空间,我们在其中隔离格式,最终被考虑并变成 excel 中的有效日期形式。请参阅以下屏幕截图,其中显示即使日期为具有相同公式的个位数,它也可以工作。month day, year

enter image description here


为了验证我的答案,如果您单击日期格式并检查第 12 个样本,您会发现 excel 理解的格式作为日期倒数,即它实际上读取的数字,即日期在 excel 中的存储方式。虽然这个格式和公式因区域设置和 excel 版本而异,但上面的公式在其他版本中或对于其他版本都可以正常工作,我们需要废弃该功能并使用重复的公式来使其工作,基本上保持不变。MS365Excel 2021LET()

enter image description here


评论

0赞 NewJackSwing4Ever 10/18/2023
谢谢。两者都奏效了。你如何处理这些,比如 2023 年 8 月 3 日上午 9:03,其中一天是个位数?我知道如何像这样填充日期值 =IF(LEN(TRIM(MID(A2,5,2)))<2,CONCAT(“0”,TRIM(MID(A2,5,2))),TRIM(MID(A2,5,2))) 但是这些公式将如何处理个位数或两位数的日期值?
0赞 Mayukh Bhattacharya 10/18/2023
@NewJackSwing4Ever是的,我已经更新了,它甚至可以使用个位数,没有任何变化。此外,如果答案可以帮助您解决,请确保接受相同的答案,以便将来对某人有所帮助。
1赞 NewJackSwing4Ever 10/19/2023
非常感谢!!!你真棒!!我会接受1000%!延迟响应的原因是它仍然无法正常工作,直到我发现我用于导出的工具由于某种原因在月份和日期(8 月和 3 日)之间为所有其他个位数日期放置了一个额外的空格,但没有为两位数日期放置额外的空格,我使用公式 =SUBSTITUTE(A4,“ ”,“ ”) 以在应用其他任一公式之前修复这些实例。如果其他人遇到同样的问题,不容易立即发现。
0赞 Mayukh Bhattacharya 10/19/2023
@NewJackSwing4Ever啊,太酷了,您可以使用一个驱动器与我共享一个 Excel 工作簿链接,我本可以进行更多研究并找出具体问题所在,从帖子本身中无法检测到的东西很少,因为它特别需要工作簿,很高兴你终于让它工作了。这也是最简单的解决方法,全部功劳归于 Microsoft 团队
1赞 NewJackSwing4Ever 10/19/2023
啊,共享文件的好点。对于未来,我将不得不更多地研究如何使用如何通过 ondrive、googledrive 或 dropbox 在 stackoverflow 上共享私有内容。还没有这样做。谢谢你的建议。