为X行添加一个值,然后为下一个x行添加另一个值

时间:2013-11-12 11:10:42

标签: excel excel-vba excel-formula vba

以下是我的数据库示例:

id    year   birthday      ...
1     1995   10 Oct 1990   ... 
1     1996   10 Oct 1990   ...
      1997   10 Oct 1990   ...
2     1995   01 Aug 1988   ...
2     1996   01 Aug 1988   ...
2     1997   01 Aug 1988   ...
3     1995   21 Mar 1987   ...
      1996   21 Mar 1987   ...
      1997   21 Mar 1987   ...

id是识别和个人的号码。数据库是纵向的,因此有多个收集日期,我称之为年份。我不得不从包含这些信息的不同数据库中编译这些数据,因此没有输入一些id号,但我想要它们。例如,该数据库中的个人缺少1997年的身份证号码,而第三个人在1996年和1997年缺少身份证号码。有没有办法通过使用公式来添加这些值?我有大约300个人超过13年的数据,所以我不想手动输入。

2 个答案:

答案 0 :(得分:0)

我没有看到足够的数据,但我认为宏更适合

Sub FillInEmpties()
    Dim i As Long
    Dim lr As Long
    lr = Range("B" & Rows.Count).End(xlUp).Row
    Dim cell As Range
    For i = 1 To lr
        Set cell = Range("A" & i)
        If IsEmpty(cell) Then
            cell = cell.Offset(-1, 0)
        End If
    Next i
End Sub

因为您必须在每个空单元格中输入公式,这不是一种有效的处理方式。


另一种方法是比较年份,然后根据年份差异填写A栏

例如

将其粘贴在A3中并将其拖下来

=IF(B3>B2,A2,A2+1)

enter image description here

答案 1 :(得分:0)

我不确定您是否需要一次性或定期执行此操作,这可能属于SuperUser,但这是一种无代码方法:

  1. 选择A栏。

  2. Ctrl + G 调出GoTo,然后选择空白。 这将选择您要填写的单元格。

  3. 在公式栏中,输入所选第一个空白单元格上方的单元格,例如下方,第一个空白单元格为A4,因此我输入了=A3

    Spreadsheet image

  4. Ctrl + 输入,公式将被复制到以前的空白单元格中。

  5. 复制粘贴为值,您已完成。