Excel公式将日期从dddd mmmm dd,yyyy转换为dd / mm / yyyy

时间:2016-08-23 11:17:41

标签: excel vba excel-vba

我尝试使用公式将excel中的长日期格式从dddd mmmm dd, yyyy 格式转换为 dd/mm/yyyy

实施例

转换以下内容:

Tuesday August 23, 2016

要:

23/08/2016

我尝试使用替代和搜索但没有任何成功,据我所知,没有功能我可以作为一种格式输入并将其作为另一种格式撤回,我也尝试使用=Text(A1, "dd/mm/yyyy")但那也不起作用。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

将单元格自定义格式为dd/mm/yyyy并使用以下公式:

=DATEVALUE(RIGHT(A1,LEN(A1)-FIND(" ",A1)))

或没有任何其他格式:

=TEXT(RIGHT(A1,LEN(A1)-FIND(" ",A1)),"dd/mm/yyyy")

答案 1 :(得分:1)

所以,使用@Bathsheba建议,我走了很长一段路,但它确实有效。

尝试:

=DATEVALUE(CONCATENATE(MID(A1,1+FIND(" ",A1,FIND(" ",A1)+1),2),MID(RIGHT(A1,LEN(A1)-FIND(" ",A1)),1,3),RIGHT(A1,4)))

阐释:

  • MID(A1,1+FIND(" ",A1,FIND(" ",A1)+1),2) - 从dd

  • 中的字符串中查找A1格式的日期
  • MID(RIGHT(A1,LEN(A1)-FIND(" ",A1)),1,3) - 从A1

  • 中的字符串中取得当月的前三个字母
  • RIGHT(A1,4) - 从A1

  • 中的字符串中取出年份

然后获取这些值并将它们连接成dd mmm yyyy的格式。 DATEVALUE然后将其更改为dd/mm/yyyy的正确格式。这适用于您格式的所有日期。

注意:此公式所在的单元格应格式化为短日期。

答案 2 :(得分:1)

那么您的日期可能需要一些清洁:]

=Text( Mid( Trim(Clean(A1)), Find(" ", Trim(Clean(A1)) ), 99) * 1, "dd/mm/yyyy")

<强>更新

我刚注意到vba标签

[a1].NumberFormat = "dd/mm/yyyy"
[a1] = Split([a1], , 2)(1)        ' "Tuesday August 23, 2016" to "August 23, 2016"