Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Поиск по дате (месяц и год), Найти по месяцу и году в дате и возвратить значение соседней ячейки
 
Доброго времени суток. В оглавлении и описании изложил суть. Пол несколько часов пытался сам решить и в сети найти как это сделать без кучи дополнительных столбцов. Уже начинаю думать что это невозможно. Сложность в том что как искать только по месяцу с годом в дате?!
 
Может так?
Код
=SUMIFS(B:B;A:A;">"&EOMONTH(D3;-1);A:A;"<="&EOMONTH(D3;0))
Изменено: БМВ - 26 Фев 2017 00:30:50
 
Здравствуйте.
В F3 можно вот такую формулу массива (массива!!!)
Код
=ЕСЛИОШИБКА(ИНДЕКС($A$3:$B$13;ПОИСКПОЗ(МЕСЯЦ(D3)&ГОД(D3);МЕСЯЦ($A$3:$A$13)&ГОД($A$3:$A$13);0);2);"")

потом протянуть вниз.
Кому решение нужно - тот пример и рисует.
 
Здравствуйте. Или так, тоже Формула Массива
Код
=ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$13;ПОИСКПОЗ(ТЕКСТ(D3;"М.Г");ТЕКСТ($A$3:$A$13;"М.Г");));"")
 
Код
=ИНДЕКС(C2;ПОИСКПОЗ(ДАТА(ГОД(RC[-2]);ЦЕЛОЕ((МЕСЯЦ(RC[-2])-1)/3)*3+1;1);C1;))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ещё две формулы
Код
=MAX(INDEX(B$3:B$13*(YEAR(A$3:A$13)=YEAR(D3))*(MONTH(A$3:A$13)=MONTH(D3));0))
Код
=IFERROR(AGGREGATE(15;6;B$3:B$13/(YEAR(A$3:A$13)=YEAR(D3))/(MONTH(A$3:A$13)=MONTH(D3));1);"")
 
Интересно. Я думал что формула ИНДЕКС с ПОИСКПОЗ не сработает, так как задать нужно месяц и год в формате даты, а искать-то будет в числовом формате ))
спасибо за помощь

Слушайте, это не поиск, а произведение искусства ))) Всем огромное благодарю
Изменено: alexhorse - 26 Фев 2017 20:25:57
 
Просто  из любопытства, почему не подошел мой вариант?
 
БМВ,подошел. Я не писал что не подошел. Просто возился сам до того как написать на форум, и пытался что-то выдумать как раз с наиболее популярным вариантом пары функций ИНДЕКС и ПОИСКПОЗ. Я бы сказал, что Ваше решение самое оригинальное, никогда бы не додумался. Просто как-то привычнее и надежнее кажется ИНДЕС+ПОИСКПОЗ, читал что эта "парочка" стабильна и по ряду причин предпочтительнее ВПР и других вариантов...
 
ок, ну тогда добавлю, что если задача расширится до поиска например не цифрового значения, то добавляетя излюбленная комбинация  ИНДЕС+ПОИСКПОЗ или ВПР
Код
=IFERROR(INDEX(C:C;MATCH(SUMIFS(A:A;A:A;">"&EOMONTH(D3;-1);A:A;"<="&EOMONTH(D3;0));A:A);0);"-")
и получаем уже не сумму, а то что рядом.
 
БМВ, как вы избавились от формулы в виде массива? потому что вместо этого А:А как весь столбец?
 
Я не избавлялcz, я сразу не использовал :-).  Все три используемые функции работают со столбцами, и судя по всему там идет встроенное определение области с данными. (для собственых VBA функций предусматреть пересечение выбранного диапазона с UsedRange тоже не сложно), что позволяет не сильно думать о том, что расчет будет долгим при одинаковых даных.
Сумма - просто посчитает сумму по условию и исходя из уникальности это будет сумма равная единственному числу в столбце A. Далее ищем его позицию в столбце и смотрим что там в этой строке в другом столбце. Если просто заменить столбец на используемую область, нужно только скоррректировать что вернет MATCH с учетом первой строки данных.
Изменено: БМВ - 27 Фев 2017 10:49:09
Страницы: 1
Читают тему (гостей: 1)