2013-05-17 56 views
0

我有一个关于Excel中公式的新问题。事情是,我有一张纸,sheet2,包含日期和值。目前我使用的指数()匹配的组合()函数来获取不同的值,根据一定的条件 - 一个是日期,从Sheet 2中到另一个片材,Sheet 1中,。关于公式问题

中的数据Sheet2中会不时更新时间因此在数据显然会“消失”,当然还有一定的日期,在指数匹配产生的错误公式,不能够找到手头的价值。

我的问题是,然后,如果有一个简单的方法来写公式,这样,如果我们试着从工作表Sheet1 发现日期是于当前日期,转换电流值变成恒定值。伪代码会是这样的,

IF date_to_find from sheet1 IN sheet2 > todays_date Then 
    Set value to constant (do not evaluate formula) 
Else 
    Find value in sheet2 where the dates are matched in both sheet1 and sheet2 
End 

我知道最简单的方法可能是刚刚实现VBA整个事情,只是想检查,如果任何人有一个更好的解决方案。

在工作表Sheet1 当前公式为

'A872 = "2013-05-17" 
'F872 is the goal cell (containing formula) 
'$A$1:$K$100 contains date in format "yyyy-mm-dd" (given as column) 
'$A$2:$K$2 contains currencies (given as row) 
'$A$3:$K$3 contains text (also given as row) 

IFERROR(INDEX('sheet2'!$A$1:$K$100;MATCH(A872;'sheet2'!$A$1:$A$100;0);_ 
     MATCH(1;('sheet2'!$A$2:$K$2="EUR")*('sheet2'!$A$3:$K$3="Matching text");0));"") 

因此,如果当前的日期是 “2013年5月17日”,配方完全计算并返回,说,400.000。但明天,“2013-05-18”,没有必要改变单元格(2013-05-17值已过去),所以我现在想FIX这个值,这样公式不会尝试并找到“2013-05-17”sheet2不再。即我想细胞F872,只是说“400.000”,而不是“IFERROR(INDEX(...)”

感谢, 尼克拉斯

回答

1

你可以只换你的公式在这样一个IF语句:

=IF(A872<TODAY(),[your formula],[constant value])