Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Главное меню

ВПР, 3 условия, 2 явных и 1 логическое условие

Автор threeaaa, 18.02.2013, 17:20

« назад - далее »

threeaaa

Здравствуйте
Есть две таблицы: "Кол-во проданной недвижимости проекта на дату" и "Кол-во реализованной недвижимости итог"
В первой таблице записывается кол-во проданных единиц недвижимости за все время до указанной даты. 2 таблица итоговая и там должны отображаться числа согласно последним датам.
Вопрос:
Что нужно вбить в "продано" во второй таблице была верная информация?
Т.е. механизм в принципе такой: Т.е. вначале из таблицы ищутся строки по Названию и типам, а потом из найденного он должне выбрать самую поздню дату, и уже согласно неё поставить в ячейку "Н2" кол-во из столбца 1й таблицы "продано".
Но как это сделать я не знаю.
ВПР, суммесли, суммеслимн не помогают.

cheshiki1

=ИНДЕКС($C$2:$C$17;МАКС(($A$2:$A$17=F2)*($B$2:$B$17=G2)*СТРОКА($A$1:$A$16)))
формула массива

threeaaa

Цитата: cheshiki1 от 18.02.2013, 17:38
=ИНДЕКС($C$2:$C$17;МАКС(($A$2:$A$17=F2)*($B$2:$B$17=G2)*СТРОКА($A$1:$A$16)))
формула массива

Огромное спасибо ответчику, я даже и не знал, что задание условия ($A$2:$A$17=F2) в случае выполнения приравнивается к единице. Это наверное верх мастерства экселя. Но работать это будет только в том случае, если "Продано" будет всегда увеличиваться, т.е. в том случае, когда интересует именно максимальное значение столбца "продано". А можно как-нибудь таким же хитроумным способом решить, но уже отталкиваясь от самой поздней даты а не максимума значений?

Serge 007

Цитата: threeaaa от 18.02.2013, 22:27
...решить отталкиваясь от самой поздней даты а не максимума значений?
=СУММПРОИЗВ((МАКС((F2&G2=A$2:A$17&B$2:B$17)*D$2:D$17)&F2&G2=D$2:D$17&A$2:A$17&$B$2:$B$17)*C$2:C$17)
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

cheshiki1

#4
Цитироватья даже и не знал, что задание условия ($A$2:$A$17=F2) в случае выполнения приравнивается к единице
немного не верно. ($A$2:$A$17=F2) будет {ИСТИНА;ЛОЖЬ;ИСТИНА...}, а так --($A$2:$A$17=F2) будет {1;0;1....} или это ($A$2:$A$17=F2)*($B$2:$B$17=G2) дает {1;0;1....}
Данная мной формула выдает самое низшее значение (т.к. даты отсортированы то самая поздняя дата будет самой низшей) в таблице при условии выполнения первых двух условий. Разве результат выдает неправильно?

threeaaa

Цитата: cheshiki1 от 19.02.2013, 09:39
Цитироватья даже и не знал, что задание условия ($A$2:$A$17=F2) в случае выполнения приравнивается к единице
немного не верно. ($A$2:$A$17=F2) будет {ИСТИНА;ЛОЖЬ;ИСТИНА...}, а так --($A$2:$A$17=F2) будет {1;0;1....} или это ($A$2:$A$17=F2)*($B$2:$B$17=G2) дает {1;0;1....}
Данная мной формула выдает самое низшее значение (т.к. даты отсортированы то самая поздняя дата будет самой низшей) в таблице при условии выполнения первых двух условий. Разве результат выдает неправильно?

Результат выдает правильно. Только я так понял, что ответ этой формулы есть - максимальное значение полученное при умножении (1, 0 ,1 ... ) на кол-во проданных (177, 3, 5 ...). Я просто обнаружил в начале, что в коде нету выделения массива в котором стоят даты, неправильно разобрался в коде и подумал, что что-то тут не так :) Я вот раньше всегда пользовался формулой Индекс(.....Поискпозиций()), ВПР(_) и еще всякие вариации, но у них недостаток такой, что они ищут до первой устраивающей позиции и ни макс() ни какие-то условные операторы мне применить не получилось, эти функции не хотят почему то сохранять в своей памяти больше одного числа, ну или может я не разобрался просто. А можете мне порекомендовать какую-нибудь литературу полезную по работе с массивами?

threeaaa

Цитата: Serge 007 от 18.02.2013, 23:34
Цитата: threeaaa от 18.02.2013, 22:27
...решить отталкиваясь от самой поздней даты а не максимума значений?
=СУММПРОИЗВ((МАКС((F2&G2=A$2:A$17&B$2:B$17)*D$2:D$17)&F2&G2=D$2:D$17&A$2:A$17&$B$2:$B$17)*C$2:C$17)

Ого, и даже без массива. Огромное спасибо. Будет чему поучиться на неделе. Буду теперь почаще на форум заходить смотреть кто, что и как делает.

cheshiki1

ЦитироватьОго, и даже без массива.
есть такие функции  которые без трехпалого ввода отрабатывают как формулы массива. СУМПРОИЗВ одна из них.