咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

案例效果:

一、函数公式转换:

用函数公式,将工作表中N列格式"00000000"的值转换成格式为“yyyy-mm-dd"的日期,填入工作表的O列:

=IF(N2<>"",DATE(VALUE(LEFT(N2,4)),VALUE(MID(N2,5,2)),VALUE(RIGHT(N2,2))),"")

将该公式输入工作表的O2单元格,然后将公式拖动填充到O列的所有单元格即可。该公式的含义是:

1、判断N列当前单元格是否为空,如果不为空则进行转换,否则填入空字符串。

2、使用LEFT、MID、RIGHT函数从N列当前单元格的值中提取年、月、日的数值,并使用VALUE函数将这些数值转换为数字。

3、使用DATE函数将年、月、日的数字转换为日期格式,并填入O列当前单元格中。

注意:该公式假定N列中的值均为八位数字,并且没有进行有效性检查,如果数据不符合要求,则可能会导致错误。因此在使用前请确保已备份数据。

二、用VBA转换

VBA代码,将工作表中N列格式"00000000"的值转换成格式为“yyyy-mm-dd"的日期,填入工作表的P列:

Sub ConvertEightDigitToDateFormat() Dim lastRow As Long Dim i As Long lastRow = Cells(Rows.Count, "N").End(xlUp).Row '获取N列最后一行的行数 For i = 2 To lastRow '从第2行开始循环 If Len(Cells(i, "N").Value) = 8 Then '如果N列当前单元格的值是八位数字,则进行转换 Cells(i, "P").Value = DateSerial(Left(Cells(i, "N").Value, 4), Mid(Cells(i, "N").Value, 5, 2), Right(Cells(i, "N").Value, 2)) '将N列当前单元格的值转换成日期格式,并填入O列 Cells(i, "P").NumberFormat = "yyyy-mm-dd" '设置O列当前单元格的数字格式为“yyyy-mm-dd” End If Next i End Sub

该代码使用了循环结构,从第2行开始循环遍历N列中的所有单元格。使用了条件判断语句,如果当前单元格的值是八位数字,则将其转换成日期格式并填入O列中。同时设置了O列单元格的数字格式为“yyyy-mm-dd”,以保证显示的日期格式正确。