在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将与您发布的格式完全相同。 但是,如果没有,您可以根据情况更改LEFT
和RIGHT
函数以及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,",")
您可以根据需要进行格式化