我再次提出相同的问题/要求,但有一个明确的小例子来正确传达意图。
我有一个列有日期,但并不是每一行都有它。相邻列应具有自该日期以来发生的天数。该公式应该是什么。我尝试了几件事,但仍然无法正确理解。以下是一个例子。
A B C D
1 S.no. Task Date Number of days
2 1 task1 10may16 6
3 1.1 task2 6
4 1.2 task3 6
5 2 task4 12may16 4
6 2.1 task5 4
7 3 task6 13may16 3
这里如何在'D'列中获取正确的值,特别是在D3,D4和D6中?对于这些单元格,它从“B”列的上一个填充行开始占用参考日期。目前的日期假定为2016年5月16日。
我试图根据不同列中的另一个单元格找出列中的非空单元格。例如,这是列B1中的最后一个非空单元格:Bx,其中'x'是E列中的行号,当我尝试在E24中使用该值时,我使用此值,例如24。
在我的情况下,B列包含日期,'E'包含当前日期与“B”列中日期之间的差异。有时相应的列没有日期,在这种情况下,我会去查找该列中的最后日期并找到差异。
我一直在寻找互联网以找到方法来做到这一点,但还没有找到任何东西。 Get the last non-empty cell in a column in Google Sheets给出了一种可能接近我想要的方式。但这对我也不起作用。不同之处在于我不搜索完整列,而只搜索“E”列中需要值的行。这是我无法适应给定公式的地方。我尝试过的那个,如下所示,会产生#Error!
。
=INDEX(FILTER( "B2:B"&ROW()-1 , NOT( ISBLANK( "B2:B"&ROW()-1 ) ) ) , ROWS( FILTER( "B1:B"ROW()-1 , NOT( ISBLANK( "B2:B"&ROW()-1) ) ) ) )
所以,我想,我想知道基于当前行值创建范围的正确方法。错误很可能是部分"B2:B"&ROW()-1
答案 0 :(得分:0)
最简单的方法是使用带日期的exrta列
A B C D E
S.no. Task Date Date Number of days
1 Task1 5/10/2016 5/10/2016 6
1.1 Task2 5/10/2016 6
1.2 Task3 5/10/2016 6
2 Task4 5/12/2016 5/12/2016 4
2.1 Task5 5/12/2016 4
3 Task6 5/13/2016 5/13/2016 3
D2的公式:
=if(C2="",D1,C2)
对于E2:
=TODAY()-D2
需要复制公式。
将您的公式与indirect
:
=INDEX(FILTER( indirect("B2:B"&ROW()-1) , NOT( ISBLANK( indirect("B2:B"&ROW()-1) ) ) ) , ROWS( FILTER( indirect("B2:B"&ROW()-1) , NOT( ISBLANK( indirect("B2:B"&ROW()-1)) ) ) ) )