Страницы: 1
RSS
минимальная дата в массиве для указанной даты, Почему может не работать МИН(ЕСЛИ...
 
Всем добра!
Помогите найти ответ на вопрос: почему не работает формула - файл с примером прикрепляю.
Смысл в том, что формула должна возвращать минимальную дату месяца и года для указанной даты.
 
Код
=МИН(ЕСЛИ((ГОД(D2:D54)=ГОД(H2))*(МЕСЯЦ(D2:D54)=МЕСЯЦ(H2));D2:D54))
потому что И
 
Потому что в формулах массивов испольуется вместо ИЛИ знак "+", вместо И знак "*".

т.е. =МИН(ЕСЛИ((ГОД(D2:54)=ГОД(H2))*(МЕСЯЦ(D2:54)=МЕСЯЦ(H2));D2:54))
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
блин... а в чем проблема в данном случае при использовании "И" ? почему именно формула не может отрабатывать с "И" корректно?
 
"И" и "ИЛИ" не возвращают массивы, а только одно значение.
Как вариант:

Код
=ИНДЕКС(D2:D55;1+ПОИСКПОЗ(H2-ДЕНЬ(H2)+1;D2:D55))

или

Код
=ПРОСМОТР(H2-ДЕНЬ(H2)+1;D2:D54;D3:D55)
Изменено: DV - 16.01.2014 13:32:50
 
понял теперь!! спасибо! DV, за альтернативное решение спасибо вдвойне!
 
а если в G11 10.11.2013 и надо найти дату равную или меньше, то, по идее подойдет формула: =ИНДЕКС($D$2:$D$53;ПОИСКПОЗ(G11;$D$2:$D$53;1);1)
но, насколько я знаю, она будет корректно работать только если даты в массиве отсортированы по возрастанию, если же даты вперемешку, то какую тогда лучше использовать формулу?
 
Цитата
если даты в массиве отсортированы по возрастанию
Да. Или:
=ВПР(G11;$D$2:$D$53;1;1)
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
формула массива (вводится одновременным нажатием Ctrl+Shift+Enter)
Код
=НАИБОЛЬШИЙ(ЕСЛИ(D2:D53<=G11;D2:D53);1)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
спасибо, ikki !!!
 
Александр, зачем НАИБОЛЬШИЙ ?
Код
=МАКС(ЕСЛИ(D2:D53<=G11;D2:D53))
 
Цитата
=МАКС(ЕСЛИ(D2 :D 53<=G11;D2 :D 53))
А тогда зачем ЕСЛИ? ..(( D2:53<=G11)*D2:53)
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Цитата
зачем
тс-с-с! для конспирации было :)
что-то я думал, что НАИБОЛЬШИЙ может и не потребовать трех пальцев.
поэкспериментировал.
не получилось.
а поменять забыл.

МАКС, действитьельно, проще.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
да!! вот формула, для тех, ко решит воспоользоваться:=МАКС((D2  :D  53<=G11)*(D2  :D  53))
конечно же она вводится как формула массива
Изменено: Zhukov_K - 16.01.2014 15:03:07
 
Цитата
конечно же она вводится как формула массива
Ну, если ВПР не нравится, то жмите три пальца.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Цитата
А тогда зачем ЕСЛИ? ..((D2:D53<=G11)*D2:D53)
для случая наличия в диапазоне ячеек с текстом (в приложенном примере таких нет)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
Страницы: 1
Наверх