目前,我有一张如下表所示的表格。
Jan-16 Feb-16 Mar-16 Apr-16 May-16 Jun-16 Jul-16 Aug-16 Sep-16 Oct-16 Nov-16 Dec-16
Forecast 5 8 7 - - - - - - - - -
每月预测数字设置为仅在该月结束时填充。
在我的信息中心中,我试图捕获此表中最新的预测编号,因此输出看起来像......
Current Forecast 7
我认为要实现这一目标,当前预测需要一系列IF,INDEX,MATCH和MAX(最大日期)功能,但我无法弄清楚这一点。
来自已删除的评论:
抱歉,我没有澄清。这是正确的 - " - "是应用数字格式的零。
答案 0 :(得分:0)
我没有测试过这个,但看起来它会做你正在寻找的东西。
=INDEX(B$2:M$2,MATCH(TRUE,INDEX(B2:M2<>"-",),0))
正如Dirk指出的那样,这实际上会返回第一场比赛。
答案 1 :(得分:0)
如果值之间没有空日期,则此公式将执行:
=INDEX(B2:M2,COUNTIF(B2:M2,"<>-"))
并且中间有空日期,那么这个数组公式将会
=INDEX(B2:M2,MAX(ISNUMBER(B2:M2)*COLUMN(A:L)))
需要使用Ctrl + Shift + Enter确认
答案 2 :(得分:0)
第一个问题是,如果这些是第1行的实际日期或类似文本的日期。假设这些是格式为 mmm-yy 的实际日期,因为这是更好的方法。
第二个问题是第2行中的非活动数字是否显示连字符,因为它们是具有会计样式编号格式的零,或者如果您实际上在单元格中放置了连字符。假设它们是具有会计样式编号格式的零,因为这是更好的方法。
=INDEX(B2:M2, MATCH(AGGREGATE(14, 6, (B1:M1)/(B2:M2<>0), 1), B1:M1, 0))
' for pre xl2010 systems w/o AGGREGATE
=INDEX(B2:M2, MATCH(MAX(INDEX((B1:M1)+(B2:M2=0)*-1E+99, , )), B1:M1, 0))