在Excel中将string转换为MM / DD / YYYYdate格式

我有一个从imdb.com表,我想将其中一个字段转换为Excel可以识别的date格式(IMDBs只是被理解为一个任意的string)。

他们使用的格式的一个例子是:“星期三5月27日00:00:00 2015”。 我想将其转换为“MM / DD / YYYY”格式。 我将如何使用Excel来解决这个问题?

你可以试试这个:

=TEXT(DATE(RIGHT(A1, 4), MATCH(TRIM(RIGHT(LEFT(A1, 7), 4)), {"Jan","Feb","Mar","Apr","May","Jun","Jul","Sep","Aug","Oct","Nov","Dec"}, 0), TRIM(RIGHT(LEFT(A1, 10), 2))), "mm/dd/yyyy") 

不要忘了,要运行这个公式,你必须按下Ctrl + Shift + Enter,而不是Enter。

上述公式假定您的所有date将与您发布的格式完全相同。 但是,如果没有,您可以根据情况更改LEFTRIGHT函数以及month数组中的值。

这是如何工作的一个运行:

1)从string中find年份

 RIGHT(A1, 4) 

2)它从string中find月份

 RIGHT(LEFT(A1, 7), 4) 

3)从数组中查找月份的索引

 MATCH(TRIM(RIGHT(LEFT(A1, 7), 4)), {"Jan","Feb","Mar","Apr","May","Jun","Jul","Sep","Aug","Oct","Nov","Dec"}, 0) 

4)从string中查找date

 TRIM(RIGHT(LEFT(A1, 10), 2)) 

5)使用DATE函数将其转换为DATE

 DATE(RIGHT(A1, 4), MATCH(TRIM(RIGHT(LEFT(A1, 7), 4)), {"Jan","Feb","Mar","Apr","May","Jun","Jul","Sep","Aug","Oct","Nov","Dec"}, 0), TRIM(RIGHT(LEFT(A1, 10), 2))) 

6)使用TEXT函数格式化结果

TEXT函数允许您以任何喜欢的方式格式化单元格值。

有关此function的更多信息,请参阅此处 。

这是这个公式的屏幕截图工作:

在这里输入图像说明

答案有两部分。

第一步是将您的string转换为Exceldate时间。 这是涵盖在这个答案: 在Excel中将string转换为纪元时间 。

第二步是将显示格式设置为MM/DD/YY ,这是使用正常的单元格格式完成的。 请参阅: https : //support.office.com/en-ca/article/Format-a-date-the-way-you-want-8e10019e-d5d8-47a1-ba95-db95123d273e 。

要就地转换这些值,请select您希望转换的单元格并运行这个较短的macros:

 Sub Datemaker() Dim r As Range, d As Date For Each r In Selection ary = Split(r.Text, " ") d = DateValue(ary(1) & " " & ary(2) & " " & ary(4)) r.Value = d r.NumberFormat = "mm/dd/yyyy" Next r End Sub 

给定明确的格式,另一个公式将该值转换为Exceldate:

 =--REPLACE(MID(A1,5,20),7,9,",") 

您可以根据需要进行格式化