提问人:NewJackSwing4Ever 提问时间:10/18/2023 最后编辑:Mayukh BhattacharyaNewJackSwing4Ever 更新时间:10/18/2023 访问量:48
需要一种方法从此类似数据的文本中提取日期和时间参数 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
问:
在 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")
答:
就像我上面评论的那样,这适用于当前频道。MS365
• 细胞中使用的配方B1
=LET(a, RIGHT(A1,2), SUBSTITUTE(SUBSTITUTE(A1," ",", ",2),a," "&a)+0)
上面的公式需要填充,或者如果你想要一个动态数组公式,那么
• 细胞中使用的配方C1
=MAP(A1:A3,LAMBDA(x,SUBSTITUTE(SUBSTITUTE(x," ",", ",2),RIGHT(x,2)," "&RIGHT(x,2))+0))
笔记:输出将是一个数字(如果输出单元格没有事先格式化),因为我们都知道日期和时间在excel中存储为一天的数字和分数,因此对于所述日期和时间,它将显示您需要格式化为从--> --> -->选择将在显示中返回的样本45152.48333
Format CellsCategoryDate13th
8/14/2023 11:36 AM
或者,如果你只需要一天,那么这就足够了。
• 细胞中使用的配方B1
=TEXTBEFORE(SUBSTITUTE(A1:A3," ",", ",2)," ",-1)+0
或者,只有那时的时间,
• 细胞中使用的配方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
为了验证我的答案,如果您单击日期格式并检查第 12 个样本,您会发现 excel 理解的格式作为日期倒数,即它实际上读取的数字,即日期在 excel 中的存储方式。虽然这个格式和公式因区域设置和 excel 版本而异,但上面的公式在其他版本中或对于其他版本都可以正常工作,我们需要废弃该功能并使用重复的公式来使其工作,基本上保持不变。MS365
Excel 2021
LET()
评论
Microsoft 团队
评论
=LET(a, RIGHT(A1,2), SUBSTITUTE(SUBSTITUTE(A1," ",", ",2),a," "&a)+0)
45152.48333
Format Cells
Category
Date
8/14/2023 11:36 AM