从列A到列B自动填充数字序列

这是一个跟进的问题:

从列B中的列A自动填充相同的编号

我想创build如下输出:

Column A | Column B 1. 1 1 2. 2 3. 2 1 4. 2 5. 3 

我尝试了在FormulaR1C1中的一些修改brettdj的答案,现在的公式是。

 =IF(RC[-1]<>"""",RC[-1],R[-1]C+1) 

但它从A列开始计算而不是1。

如何使它从1开始计数?

尝试用下面的公式replace"=IF(RC[-1]<>"""",RC[-1],R[-1]C+1)"公式:

"=IF(RC[-1]<>"""",1,R[-1]C+1)"

您可以使用:

 =IF(ROW(A1)=1,1,IF(A1<>"",1,OFFSET(B1,-1,0)+1)) 

这需要对第一行进行testing,然后对后续行使用OFFSET函数。

例如:

在这里输入图像说明

如果我理解正确,下面是你的答案。

假设你的数据以A2开始,然后在B2中应用下面的公式,并向下拖动到最后

 =IF(AND(A2<>"",B1<>""),1,B1+1) 

certificate 在这里输入图像说明

编辑 :我的第一个答案是要获得链接问题中所要求的序列

所以我编辑添加代码为您的实际问题…


代码为实际的问题

我会像下面这样去

 Sub FastUpdate(rng As Range) With rng.Offset(, 1) .Cells(1, 1) = 1 .Offset(1).Resize(.Rows.Count - 1).FormulaR1C1 = "=IF(ISBLANK(RC1),R[-1]C+1,1)" End With End Sub 

使用如下

 Sub main() FastUpdate Worksheets("MySheetName").Range("A1:A14") '<--| use whatever range you need. best use fully qualified reference End Sub 

链接问题的代码

我会去如下:

 Sub FastUpdate(rng As Range) With rng.Offset(, 1) .Value = .Offset(, -1).Value .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C" .Value = .Value End With End Sub 

用法如下:

 Sub main() FastUpdate Worksheets("MySheetName").Range("A1:A14") '<--| use whatever range you need. best use fully qualified reference End Sub