在 EXCEL 中创建动态分层编号。满足特定条件后重置计数

Creating a dynamic hierarchical numbering in EXCEL. Reset the count after certain criteria is met

我正在尝试创建具有动态分层编号的甘特图 sheet。图表的设置是这样的:

The set up and what is currently achieved

使用的公式:

B栏=D13&"."&E13&"."&F13&"."&G13

D栏=IF(tipas<>"", IF(ROW(ps.nr)=ROW($D)+4,1,IF(tipas="R","",IF(tipas="PS",MAX(prev.col.range)+1, MAX(prev.col.range)))),"")

E栏=IF(tipas<>"", IF(OR(tipas="PS", tipas="R"),"",IF(ROW(s.nr)=ROW($E)+4,1,IF(tipas="S",MAX(prev.col.range)+1, MAX(prev.col.range)))),-1)

F栏=IF(tipas<>"", IF(OR(tipas="PS",tipas="S",tipas="R"),"",IF(ROW(d.nr)=ROW($F)+4,1,IF(OR(tipas="D",tipas="DG",tipas="M"),MAX(prev.col.range)+1, MAX(prev.col.range)))),-1)

G 列 当前与 F

相同

Explaining for formulas:

"Tipas" is a named range reffering to current row H column

"ps.nr", "s.nr", "dg.nr", "d.nr" are named ranges for current row number

"prev.col.range" is a named range getting range from header row until current row

就图表类型(“tipas”H 列)按完美顺序设置而言 PS 然后是 S 和 D 然后它工作得很好。

当我尝试实现动态部分时,问题就开始了。例如,如果我在中间的任何地方将类型更改为 S,并且在它之前有任务(类型 D),则计数集关闭并且编号丢失。

Illustration of what I'm trying to achieve

主要问题是:

如果H列的值为PS或S,如何重置F列的编号,如果值为DG,如何停止添加数字? 仅当 H 列的值为 DG 时,G 列才应开始计数,如果不是 DG,则应停止并重置。

将这个公式输入F13:

=IF(H13<>"",IF(OR(H13="PS",H13="S",H13="R"),"",IF(ROW(H13)=ROW($F)+4,1,IF(G13="",IF(OR(H13="D",H13="DG",H13="M"),MAX(INDIRECT("F"&AGGREGATE(14,6,1/(($H:H13="PS")+($H:H13="S"))*ROW($H:H13),1)&":"&CELL("address",F12)))+1,MAX(INDIRECT("F"&AGGREGATE(14,6,1/(($H:H13="PS")+($H:H13="S"))*ROW($H:H13),1)&":"&CELL("address",F12)))),F12))),-1)

G13中的这个:

=IF(AND(OR(H12="DG",G12<>""),OR(H13="D",H13="M")),IF(H13="R","",IF(G12="",1,G12+1)),"")

他们应该 returns 你所期望的(只要你提供的数据可以保证)。测试并发送反馈。欢迎 errors/misfunctions 的 and/or 报告提出问题,很可能会得到解决。