情况是这样的:
0
-
-
0
-
-
-
-
0
-
-
-
0
我想成为这样的:
0
1
2
0
1
2
3
4
0
1
2
3
0
该范围内有数千个单元格,无法手动完成。
答案1
如果零之间的单元格是空的,您可以这样做:
选择电子表格中的所有单元格,然后按 F5,单击“特殊”,勾选“空白”,并按确定。现在所有空白单元格都已选中。
不改变选择,开始输入
=if(
点击向上箭头,然后输入
=0,1,
点击向上箭头,然后输入
+1)
它看起来会像这样:
按住 Ctrl 键并按 Enter。现在所有之前为空的单元格将具有如下公式
=if(A1=0,1,A1+1)
并且零之间的单元格将被编号。请注意,这可同时适用于多列。
Jason Aller 帖子中的公式对我根本不起作用。为了完整起见,这里是该公式的屏幕截图。
答案2
如果列中唯一的项目是零和空白,并且第一个项目是零,那么选择您想要处理的单元格并运行这个小宏:
Sub FillInTheBlanks()
Dim r As Range, K As Long, CH As String
K = 1
For Each r In Selection
CH = r.Text
If CH = "" Then
r.Value = K
K = K + 1
Else
K = 1
End If
Next r
End Sub
前:
之后:
答案3
在此列的右侧插入一个空列,并添加一个公式,该公式将查看左侧的单元格,如果该单元格为零,它将放置零,如果不是,它将在上面单元格中的值上加一。然后复制该列并将其作为值粘贴到源列上,并删除添加的列。
例如,如果您的列是单元格 B2 中的 A 列,则请执行以下操作:
=if(A2=0,0,B1+1)
如果零之间的单元格为空且没有连字符,则公式可以更改为:
=if(AND(A2=0, NOT(ISBLANK(A2))), 0, B1+1)