我正在处理大数据集并手动填写缺少的日期是非常繁琐的工作。我想通过应用Excel公式或VBA代码来自动执行此操作,这可以帮助我填写所有这些缺失的日期。
请查看以下数据。
答案 0 :(得分:1)
只需循环遍历日期列中的每个单元格。如果空白则指定日期值;如果不为空,则更新LastDate变量。
Sub FillInDates()
Dim rg As Range
Dim aCell As Range
Dim LastDate As Date
'set this to your date column
Set rg = ActiveSheet.UsedRange.Columns(1).Offset(1, 0)
For Each aCell In rg.Cells
If IsEmpty(aCell) Then
aCell.Value = LastDate
Else
LastDate = aCell.Value
End If
Next
End Sub
答案 1 :(得分:1)
我使用此功能:
Sub Fill_In_Missing_Dates()
Dim rng As Range
Dim cell As Range
Set rng = ThisWorkbook.Sheets("Sheet1").Range("B2:B11")
For Each cell In rng
If cell.Value = vbNullString Then cell.Value = cell.Offset(-1).Value
Next
End Sub
只需使用您的实际工作表名称和单元格更改Sheet1
和B2:B11
。
答案 2 :(得分:1)
选择列,转到Home
- Find & Select
- Go to Special
- 选择Blanks
并点击OK
。您已选择所有空白单元格。现在输入引用活动单元格上方的单元格的公式(=
符号和up arrow
),然后点击ctrl+enter
将其粘贴到所有选定的单元格中。
您可能希望之后复制粘贴整个列。
在大范围内(例如超过100000个单元格),这种方法变得很慢,所以我也建议在大桌子上使用VBA解决方案。
快速基准:ZygD和D_Bester的解决方案在130000行上运行不到2秒。如果我在同一组单元上运行它们,它们之间没有可测量的速度差异。另一方面,使用specialcells(xlcelltypeblanks)需要25秒才能找到空单元格。