使用公式查找最后一个占用的单元格

时间:2018-02-28 17:37:24

标签: excel

这个公式"工作",但似乎有点长啰嗦。任何人都可以建议更容易"公式。它将第5列中的值返回到第1列中的日期,该日期是从单独的(和离散的)工作表中调用的。如果第5列中没有数据(因为我们尚未达到或超过该日期),则会调用最新的可用数据($ A $ 20,是当前工作表上的"调用日期) : -

IF(VLOOKUP($A$20,'[FTSE100.xlsx]Meteor Step Down  
Plans'!$A$18:$E$2828,5)="",VLOOKUP(HLOOKUP(A20,'[FTSE100.xlsx]Meteor Step 
Down Plans'!$A$18:$A$2628,MATCH(TRUE,INDEX(ISBLANK('[FTSE100.xlsx]Meteor 
Step Down Plans'!$E$18:$E$2828),0,0),0)-1),'[FTSE100.xlsx]Meteor Step Down 
Plans'!$A$18:$E$2828,5),VLOOKUP($A$20,'[FTSE100.xlsx]Meteor Step Down 
Plans'!$A$18:$E$2828,5))

公式与数据的工作簿不同。该公式用于确定数组中的最后一个值,其中第一列是日期范围(01/01/2000到31/12/2027 ......说)所需数据在第5列。条目可能是最新的(即最后一个条目是今天进行的,因此它将获取今天的价值。最后一个条目可能已经过了几天(几周),因此它将获取指定列中的最后一个值(第5列)。我不知道为什么它不能进入​​命名范围,因为数组大小是固定的。这有帮助吗?

谢谢罗恩,差不多在那里。这对于"缺失"非常有效。数组中的日期。即当缺少周六和周日日期时,它会找到上周五的值(在第5列)。但是(并且通常有"然而"),如果$ 20美元是数组中最后一个数据的日期之前的日期,即第5列在该日期为空,则公式返回0(零),而不是输入数据的最后日期的数据。即输入02/04/2018并且您的公式返回0,而不是最后一个日期28/02/2018的数据。这有点清楚吗? (无论如何,感谢你花时间 - 我仍然在努力弄清楚你的公式如何运作。" /"是否重要(除了是"鸿沟通过"符号,如果是这样的话我以前从未遇到过的事情?问候...........迈克.PS阵列中的日期(第1列)都是从2016年到2027年(周末和银行假日除外),按升序排列,即2016年1月1日至2011年12月31日

罗恩 - 对不起伙伴,买我不能看到"秒"式???

1 个答案:

答案 0 :(得分:0)

如果我理解你想要正确做什么,(由于你没有提供数据,实际输出或所需输出的例子,这很难做到),试试:

=LOOKUP(2,1/((myDate>=A:A)*(LEN(A:A)>0)),E:E)

如果您在A列中有日期而E列中没有条目,那么您可能需要执行以下操作:

=LOOKUP(2,1/((myDate>=A:A)*(LEN(A:A)>0)*(LEN(E:E)>0)),E:E)

当然,您必须修改单元格引用和命名范围以引用正确的工作簿和单元格。

可能是这样的:

=LOOKUP(2,1/(($A$20>='[FTSE100.xlsx]Meteor Step Down Plans'!$A$18:$E$2828)*(LEN('[FTSE100.xlsx]Meteor Step Down Plans'!$A$18:$E$2828)>0)),'[FTSE100.xlsx]Meteor Step Down Plans'!$E$18:$E$2828)

这应该返回E列中的项目,该项目与A列中的myDate位于同一行或上方。如果A列中不存在myDate,则它将匹配最近的早期日期在A列中,从E列的那一行返回。

在公式的第二个版本中,它还会检查E列中是否有与A日期相匹配的条目,如果没有,它将在上面显示。