2013-05-17 3 views
0

У меня есть новый вопрос относительно формул в Excel. Дело в том, что у меня есть лист, sheet2, содержащий даты и значения. В настоящее время я использую комбинацию индекса() и матча() функцию в для выборки различных значений, в зависимости от определенных условий - одна из которых даты, от Sheet2 в другой лист, sheet1,.Что касается формулы выпуска

Данные 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-05-17", формула оценивает отлично и возвращается, скажем, 400.000. Но завтра, «2013-05-18», нет необходимости менять ячейку (прошло значение 2013-05-17), поэтому теперь я хотел бы исправить это значение, чтобы формула не пыталась и найти «2013-05-17» в sheet2 не более. То есть Я хочу, чтобы клетки F872 просто сказать "400.000", а не "IFERROR (INDEX (...)"

Спасибо, Никлас

ответ

1

Вы можете просто обернуть вашу формулу в IF-заявление, как это :

=IF(A872<TODAY(),[your formula],[constant value]) 
Смежные вопросы