从列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