我在A:A列中有一个不规则日期的升序排序列表:
A B C D (A:A,A2:A) E (A:A,A3:A)
2017-11-09 10 10 NA NA
2017-11-10 11 21 1 NA
2017-11-14 15 36 4 5
2017-11-15 22 58 1 5列C:C是B:B的累加和。我正在尝试获取D:D/E:E中的above公式,以查找当前行(开始日期)和上面X行(结束日期)之间的datedif:
=ArrayFormula(DATEDIF(B:B-(X Rows),B:B,"D"))目标是找出X天内D:D的变化范围:
D:D - D:D-rowX / datedif (A:A-rowX, A:A)即在行C4上运行2天:
(C4-C2) / datedif(C4-2,C4,"D")
(58-21) / datedif(C2,C4,"D")
37 / 5 = 7.4在第C10行上运行5天:
(C10-C5) / datedif(C10-5,C10,"D")在行C20上运行15天:
(C20-C5) / datedif(C20-15,C20,"D")我试图计算1,2,3,4,7,28行的X,这意味着数组必须从1,2,3,4,7,28行开始。
现在,数组错误到错误引用,因为第一个开始日期是DATEDIF( B-X,B1,"D"),其中B-X是无效的负引用。具有错误值而不是错误引用的数组公式似乎只是跳过错误,并在输入有效后开始工作。但我不知道如何跳过不好的推荐信。我尝试过用INDIRECT强制开始日期,但不能让它将值识别为日期。我还尝试了DATEDIF(B:B, B:B+X,"D"),它会输出正确的数字,但结果会被X行偏移。我已经尝试过反向排序A:A,=ArrayFormula(if(len(A:A),DATEDIF(SORT(A2:A,1,0),SORT(A:A,1,0),"D"),""))它会生成一个正确答案的逆序列表,我不知道如何将其反向。
看起来我漏掉了什么明显的东西?
编辑:尝试澄清原始帖子
有没有一种简单的方法来替换整个列?替代解决方案?
公式大致有效,但没有对齐到正确的行:
C D E
1 2 3
1 2 3
1 2 3
1 2
1我只需要把它展示出来
C D E
1
1 2
1 2 3
1 2 3
1 2 3为了对齐,我可以在F列的row2中放入单元格:
=array_constrain(ARRAYFORMULA(D:D),COUNT(A:A)-2,1)或列G的row3中的单元格:
=array_constrain(ARRAYFORMULA(E:E),COUNT(A:A)-3,1)但是如果我尝试使用row1的触发器公式:
=arrayformula(if(row(A:A)>=2,array_constrain(D:D,COUNT(A:A)-2,1)))它将所有>=2行标记为假,并且仍然呈现D:D,而不将单元格移动到适当的行数:
C D
1 false
1 2
1 2
1 2
1编辑:我正在关闭请求,最终只使用了vlookup(B:B-X),它提供了一个大致足够的结果来满足我的需求。
https://stackoverflow.com/questions/47623154
复制相似问题