问题描述
May 22,2018 at 02:17PM
要使Google表格更易理解,例如:
22/5/2018 14:17:00
这可能吗?我说的是将书面月份转换为计数月份,从12小时制转换为24小时制,并重新安排日期/月份。我觉得这有点模棱两可,但是有可能吗?
解决方法
请使用以下内容
=--REGEXREPLACE(A2,"at","")
由于日期/时间是数字,因此您的结果将采用43242.5951388889
然后从菜单Format--> Number--> Date time
将结果格式化为标准格式。
您还可以进一步选择More Formats--> More date and time formats
以获得更多选项。
(如果仍有问题,请告诉我们)
添加
正如JvdV在他的comment上所建议的,并且由于REGEXREPLACE
比SUBSTITUTE
更加贪婪,
=--SUBSTITUTE(A2,"")
,
解决方案1-获取日期时间值
您可以使用公式转换这类字符串,而无需在菜单中设置格式:
= DATE(
REGEXEXTRACT(A2,"\d{4}"),MATCH(
LOWER(REGEXEXTRACT(A2,"^\w+")),{"jan"; "feb"; "mar"; "apr"; "may"; "jun"; "jul"; "aug"; "sep"; "oct"; "nov"; "dec"},0
),REGEXEXTRACT(A2,"\s(\d{2}),")
)
+ TIME(
MOD(REGEXEXTRACT(A2,"(\d+):") + IF(REGEXMATCH(A2,"(?i)\s(?:(?:0?\d|1[^2]):\d+pm|12:\d+am)$"),12,0),24),":(\d{2})"),0
)
然后C1
使用以下公式格式化了日期时间:
=TEXT(B2,"dd/m/yyyy hh:mm:ss")
解决方案2-获得正确的字符串
=SUBSTITUTE(
SUBSTITUTE(
REGEXREPLACE(
A2,"(?i)^\D+(\d+)\D+(\d+)\D+\d+:(\d+)(?:PM|AM)$","$1/month/$2 hour:$3:00"
),"month",0
)
),"hour",MOD(REGEXEXTRACT(A2,"(?i)\s(?:(?:0?\d|1[^2]):.+pm|12:.+am)$"),24)
)