Excel 跳过某些单元格时的增量编号

Excel 跳过某些单元格时的增量编号,excel,numbers,conditional,rows,countif,Excel,Numbers,Conditional,Rows,Countif,我试图在Excel中进行增量编号,但这是针对特定条件的。如果条件不匹配,则应保留现有单元格的详细信息 图片: 从图中可以看出,我想在B列创建一个编号列表,该列表基于D列中相应行中显示的信息。因此,在第二行中,我希望计数从“1”开始,然后仅当“is_null”和“equal”的计数增加时才继续扩展。同时,我希望它跳过绿色和蓝色单元格,保持内容不变 到目前为止,我已经完成了以下公式: =COUNTIF($D$1:D2,“为空”)+COUNTIF($D$1:D2,“等于”) 这会正确编号,但是会覆盖

我试图在Excel中进行增量编号,但这是针对特定条件的。如果条件不匹配,则应保留现有单元格的详细信息

图片:

从图中可以看出,我想在B列创建一个编号列表,该列表基于D列中相应行中显示的信息。因此,在第二行中,我希望计数从“1”开始,然后仅当“is_null”和“equal”的计数增加时才继续扩展。同时,我希望它跳过绿色和蓝色单元格,保持内容不变

到目前为止,我已经完成了以下公式:
=COUNTIF($D$1:D2,“为空”)+COUNTIF($D$1:D2,“等于”)

这会正确编号,但是会覆盖绿色和蓝色单元格,而不是将它们分别保留为“A”和“stop”


如果有人能帮我解决这个问题,那我就可以走了。谢谢

如果在D列中找到字符串“set_path”或“stop”,我不确定该值应该是多少,但如果这些字符串始终相同(即“a”如果Column D=“set_path”和“stop”如果Column D=“stop”),则可以通过以下公式获得所需的结果:

=IF(和(D2“设置路径”,D2“停止”),COUNTIF($D$1:D2,“为空”)+COUNTIF($D$1:D2,“等于”),IF(D2=“设置路径”,“a”,IF(D2=“停止”,“停止”,“停止”))

更新:

使用VBA,您可以保持单元格的内容不变,而不必使用下面的代码用公式覆盖它们:

Sub foo()
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
'declare and set the worksheet you are working with, amend as required.
Dim LastRow As Long, i As Long

LastRow = ws.Cells(ws.Rows.Count, "D").End(xlUp).Row
'get the last row with data on Column D

For i = 2 To LastRow
    If ws.Cells(i, "B").Value = "" Then 'if cell is empty add formula
        ws.Cells(i, "B").FormulaR1C1 = "=COUNTIF(R1C4:RC[2],""is_null"")+COUNTIF(R1C4:RC[2],""equals"")"
    End If
Next i

End Sub
第二次更新:

现在,如果在D列中找到“set_path”,我已经调整了公式,使字母增加1(请记住,这将从A-Z开始,然后它将按照ASCII表开始遍历符号,因此,如果需要其他行为,您可能必须对此进行修改):


=IF(AND(D2“set_path”,D2“stop”)、COUNTIF($D$1:D2,“is_null”)+COUNTIF($D$1:D2,“equals”)、IF(D2=“set_path”、IFERROR(CHAR(COUNTIF($D$D$2:D2,“set_path”)+64)、“”)、IF(D2=“stop”、“stop”))

公式就快到了!唯一的问题是,我还需要对“set_path”进行增量增加。在当前情况下,只要看到“set_path”,就会输入“a”。如果你能想到一个公式,第一个“set_path”是“a”,第二个“set_path”是“b”等等,那就太完美了@Sunny我已经用第二个公式更新了我的答案,达到了你的预期,如果有帮助,你能接受我的回答吗?谢谢:)一切正常。非常感谢你!