填写缺失的date

我正在处理大数据集并手动填写缺失的date是非常繁琐的工作。 我想通过应用Excel公式或VBA代码来帮助我填补所有这些缺失的date。

请看下面的数据。

投入产出缺失日期 第一个表是我得到的input,我想第二个表作为我的输出。 黄色单元格显示缺失的date,应该与前一行相同。

我会使用这个function:

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 

只需将Sheet1B2:B11更改为实际的工作表名称和单元格。

只需要遍历date列中的每个单元格。 如果空白分配date值; 如果不是空白,则更新LastDatevariables。

 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 

另一种方法是如果你不想使用VBA:

select列,转到HomeFind & SelectGo to Special – selectBlanks然后点击OK 。 你有所有的空白单元格select。 现在input一个公式,引用活动单元格上方的单元格( =符号和up arrow ),然后按ctrl+enter将其粘贴到所有选定的单元格中。

之后您可能需要复制粘贴整列的值。

在巨大的范围内(例如超过100000个单元格),这种方法变得很慢,所以我也推荐大桌子上的VBA解决scheme。


快速的基准testing:ZygD和D_Bester的解决scheme在130000行上运行时间不到2秒。 如果我在同一组单元上运行它们,它们之间没有可测量的速度差异。 另一方面,使用特殊单元(xlcelltypeblanks)需要25秒才能find空单元。