计算列中的非空值,但根据相邻列重置计数器

时间:2018-01-18 00:57:27

标签: excel

我正在尝试为应用程序编写测试计划,每个步骤需要一个基于模块,测试,测试步骤的3部分编号。
因此,例如第三个模块的测试,第二个测试,第四个步骤应该是3.2.4。

例:
enter image description here

目前,我将3个部分放在不同的列中,第4列将它们连接在一起 模块计数器对=COUNTA(INDIRECT("E18"&":E"&ROW()))没有问题(表格从第18行开始)。

我的问题从其他2个计数器开始,因为它们需要在前一个计数器递增后重置 因此,当添加新模块时,第二个计数器需要重置为1,同样适用于第三个计数器(注意每个模块可以有任意数量的测试,并且每个测试可以有任意数量的步骤,因此这个计数器需要是动态的,只有当前一个计数器增加1时才重置为1。

我尝试过混合使用CELL(“地址”),LOOKUP和INDEX,但我的组合似乎没有达到我的需要。

1 个答案:

答案 0 :(得分:2)

在C栏中使用以下公式

=IF(F18="",C17,0)+1

除非有新的测试,否则只需在前一个数字中加一,它会重置为1.注意如果第17行不为空,请将第一行中的公式替换为1作为种子/起点。 / p>

在B栏中使用以下内容:

=IF(E18="",B17+(F18<>""),1)

仅在有新测试标签时才添加1,但如果有新模块则重置为1。请注意,如果第17行不为空,则仅将第1行中的公式替换为1作为种子/起点。

在A栏中,使用以下内容:

=COUNTA($E$18:E18)

只需计算从范围起点到您已复制到当前行的模块条目数。

对于D栏:

=A18&"."&B18&"."&C18

POC