excel - 使用公式中的多个函数在 Excel 中创建层次结构序列

标签 excel excel-formula

我需要能够在行中创建层次结构,以将任务与子任务和子子任务分开。基本上任务是级别 1,子任务是级别 2,子子任务是级别 3,子子任务是级别 4。

enter image description here

因此,单元格 A1 应包含公式,当复制到单元格 G1 时,应去除单元格 F1 的值,然后 +1,以便单元格 G1 的值变为 2。 单元格 B1 应包含公式,该公式将获取单元格 A1 的值并添加 .1,以便该值变为 1.1,如果进一步向下复制,该值将增加 >.1 以便下一个单元格为 1.21.3 等等。第 3 级和第 4 级的其余步骤应该与第 2 级中的公式几乎相似。

我尝试在不使用 VBA 的情况下仅使用简单的公式来完成此操作,这些公式可以作为模板行放置在我的电子表格中,并且可以在需要时复制到电子表格的任何位置。

最佳答案

好的,首先查看这篇文章 here ,您应该能够找到创建所需内容所需的一切。 现在这里是示例中每个级别的所有公式

1级

=IF(ISERROR(VALUE(SUBSTITUTE(OFFSET(A1,-1,0,1,1),".",""))),1,IF(ISERROR(FIND("@",SUBSTITUTE(OFFSET(A1,-1,0,1,1),".","@",1))),VALUE(OFFSET(A10,-1,0,1,1))+1,VALUE(LEFT(OFFSET(A1,-1,0,1,1),FIND("@",SUBSTITUTE(OFFSET(A1,-1,0,1,1),".","@",1))-1))+1))

2级

=IF(ISERROR(VALUE(SUBSTITUTE(OFFSET(A2,-1,0,1,1),".",""))),"0.1",IF(ISERROR(FIND("@",SUBSTITUTE(OFFSET(A2,-1,0,1,1),".","@",1))),OFFSET(A2,-1,0,1,1)&".1",LEFT(OFFSET(A2,-1,0,1,1),FIND("@",SUBSTITUTE(OFFSET(A2,-1,0,1,1),".","@",1)))&IF(ISERROR(FIND("@",SUBSTITUTE(OFFSET(A2,-1,0,1,1),".","@",2))),VALUE(RIGHT(OFFSET(A2,-1,0,1,1),LEN(OFFSET(A2,-1,0,1,1))-FIND("@",SUBSTITUTE(OFFSET(A2,-1,0,1,1),".","@",1))))+1,VALUE(MID(OFFSET(A2,-1,0,1,1),FIND("@",SUBSTITUTE(OFFSET(A2,-1,0,1,1),".","@",1))+1,(FIND("@",SUBSTITUTE(OFFSET(A2,-1,0,1,1),".","@",2))-FIND("@",SUBSTITUTE(OFFSET(A2,-1,0,1,1),".","@",1))-1)))+1)))

3级

=IF(ISERROR(VALUE(SUBSTITUTE(OFFSET(A3,-1,0,1,1),".",""))),"0.0.1",IF(ISERROR(FIND("`",SUBSTITUTE(OFFSET(A3,-1,0,1,1),".","`",2))),OFFSET(A3,-1,0,1,1)&".1",LEFT(OFFSET(A3,-1,0,1,1),FIND("`",SUBSTITUTE(OFFSET(A3,-1,0,1,1),".","`",2)))&IF(ISERROR(FIND("`",SUBSTITUTE(OFFSET(A3,-1,0,1,1),".","`",3))),VALUE(RIGHT(OFFSET(A3,-1,0,1,1),LEN(OFFSET(A3,-1,0,1,1))-FIND("`",SUBSTITUTE(OFFSET(A3,-1,0,1,1),".","`",2))))+1,VALUE(MID(OFFSET(A3,-1,0,1,1),FIND("`",SUBSTITUTE(OFFSET(A3,-1,0,1,1),".","`",2))+1,(FIND("`",SUBSTITUTE(OFFSET(A3,-1,0,1,1),".","`",3))-FIND("`",SUBSTITUTE(OFFSET(A3,-1,0,1,1),".","`",2))-1)))+1)))

4级

=IF(ISERROR(VALUE(SUBSTITUTE(OFFSET(A4,-1,0,1,1),".",""))),"0.0.0.1",IF(ISERROR(FIND("`",SUBSTITUTE(OFFSET(A4,-1,0,1,1),".","`",3))),OFFSET(A4,-1,0,1,1)&".1",LEFT(OFFSET(A4,-1,0,1,1),FIND("`",SUBSTITUTE(OFFSET(A4,-1,0,1,1),".","`",3)))&IF(ISERROR(FIND("`",SUBSTITUTE(OFFSET(A4,-1,0,1,1),".","`",4))),VALUE(RIGHT(OFFSET(A4,-1,0,1,1),LEN(OFFSET(A4,-1,0,1,1))-FIND("`",SUBSTITUTE(OFFSET(A4,-1,0,1,1),".","`",3))))+1,VALUE(MID(OFFSET(A4,-1,0,1,1),FIND("`",SUBSTITUTE(OFFSET(A4,-1,0,1,1),".","`",3))+1,(FIND("`",SUBSTITUTE(OFFSET(A4,-1,0,1,1),".","`",4))-FIND("`",SUBSTITUTE(OFFSET(A4,-1,0,1,1),".","`",3))-1)))+1)))

当然可能还有其他方法,但这也可行。

如果您对此有疑问,请告诉我。

关于excel - 使用公式中的多个函数在 Excel 中创建层次结构序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27708237/

相关文章:

c# - 打开 Excel 应用程序客户端

excel - Excel中与分隔符公式连接的问题

Excel-根据另一列中的不同值求和值

excel - 将所有 Excel 工作表设置为定义的缩放级别

excel - 使用查找 : Method 'Range' Of Object '_Worksheet' failed"

sql-server - 在 VBA 中将记录集存储到数组

Excel 将 "x h x m"格式更改为仅分钟

excel - 检测 Excel 单元格中分隔值内的重复

excel - Countif 动态标准范围

excel - 使用 VBA 遍历两个不同的目录