在Excel中重新格式化日期的更好方法

时间:2019-08-29 14:04:39

标签: excel

我当前正在将数据提取到excel上,如下所示: enter image description here

我正在使用以下公式将日期转换为如下形式:enter image description here

公式 = {VLOOKUP(LEFT([@[Date attending]],3),Parameters!$O$1:$P$13,2,0)&"/"&MID([@[Date attending]],5,2)&"/"&MID([@[Date attending]],9,4)*1

上面公式的快速概述:


左指的是第一张图片(2019年8月7日),并抓住了“八月”。 “参数”选项卡上有一个帮助者列,可将我的月份转换为数字。因此8月将转换为8。其余公式基本上只是连接“ 2019年8月7日”的部分内容。

显然这有问题。如您在上方所见,这也在字符串中使用逗号(2019年8月7日)。 enter image description here因此,每次发生这种情况时,我都会将公式更改为以下内容:(TLDR;我只是更改了一个MID公式以获取一个字符而不是2个字符)


=VLOOKUP(LEFT([@[Date attending]],3),Parameters!$O$1:$P$13,2,0)&"/"&MID([@[Date attending]],5,1)&"/"&MID([@[Date attending]],9,4)*1

更改的公式的结果:enter image description here

4 个答案:

答案 0 :(得分:1)

您可以使用DATEVALUE()SUBSTITUTE()

=DATEVALUE(SUBSTITUTE([VLOOKUP FORMULA HERE],"at",""))

enter image description here

B5的格式为m/d/yy

替代方法(如我所评论)是从您的VLOOKUP()结果中删除逗号。但是,根据要对此结果进行 的操作,您可能希望将其实际设置为日期格式,即DATEVALUE()的格式。

答案 1 :(得分:1)

您不需要参数。尤其是因为您的日期(除了 at 单词以外)确实是明确的。

只需使用DATEVALUE

=DATEVALUE(LEFT([@[Date attending]],FIND(" at",[@[Date attending]])))

=INT(SUBSTITUTE([@[Date attending]],"at ",""))

如果您还希望有时间,那么:

=DATEVALUE(LEFT([@[Date attending]],FIND(" at",[@[Date attending]])))+ TIMEVALUE(MID([@[Date attending]],FIND("at",[@[Date attending]])+3,99))

或更简单:

=--SUBSTITUTE([@[Date attending]],"at ","")

如果由于某种原因需要月份号,请使用MONTH函数将上面的内容包装起来。

根据需要设置结果格式。

enter image description here

答案 2 :(得分:0)

有一个名为DATE的函数,带有3个参数(DATE(年,月,日)),将为您进行转换。

所以我想您可以采用类似的解决方法:

DATE(MID([@[Date attending]],9,4)*1,VLOOKUP(LEFT([@[Date attending]],3),Parameters!$O$1:$P$13,2,0),MID([@[Date attending]],5,2))

希望有帮助

答案 3 :(得分:0)

A1 中使用文本,在另一个单元格中输入:

=DATEVALUE(LEFT(A1,FIND(" at",A1)-1))

并应用正确的格式:

enter image description here

通过这种方式,您不必将Aug转换为8