excel 手动进行更改时对任务列表重新排序

djmepvbi  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(91)

我有一个表,在第一列中列出了顺序为1-41的任务列表。我想通过在中间列中放置任务编号来允许手动覆盖序列,并在“结果序列列”中重新计算序列。
该问题围绕着被覆盖的连续任务。
数据在一个表中,所以我试图避免数组公式,但在这一点上,我对任何东西都持开放态度。
如果有人知道一种方法来获得这个列表中的连续数字的数量,我将不胜感激。
Sequences
我希望结果是结果序列列中的结果。
我知道如何让它计数,并返回正确的序列号时,被改变的任务是非顺序的。它是一系列基于单元格值和带数字单元格计数的IF、MATCH和COUNTIF公式。是连续的条目把它搞砸了。被序列偏移的任务被序列号的计数偏移。

aurhwmvo

aurhwmvo1#

请尝试

=LET(manual,SORT(FILTER([Manual],[Manual]<>"")),
mrows,ROWS(manual),
mstarts,REDUCE("",SEQUENCE(mrows),LAMBDA(a,c,VSTACK(a,IF(c=1,INDEX(manual,1),IF(INDEX(manual,c)<>INDEX(manual,c-1)+1,INDEX(manual,c),""))))),
fmstarts,FILTER(mstarts,mstarts<>""),
mends,REDUCE("",SEQUENCE(mrows),LAMBDA(a,c,VSTACK(a,IF(c=mrows,INDEX(manual,mrows),IF(INDEX(manual,c+1)<>INDEX(manual,c)+1,INDEX(manual,c),""))))),
fmends,FILTER(mends,mends<>""),
lengths,fmends-fmstarts+1,
prevResult,IFERROR(XLOOKUP(TRUE,(FILTER([Manual],ROW([Manual])<ROW())=""),FILTER([Result],ROW([Result])<ROW()),0,0,-1),0)+1,
offset,XLOOKUP(prevResult,fmstarts,lengths,0),
IF(@[Manual]<>"",@[Manual],prevResult+offset))

相关问题