Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/ВПР по максимальному значению в другом столбце - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
ВПР по максимальному значению в другом столбце
Stormy Дата: Вторник, 03.03.2015, 14:50 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 366
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток, уважаемые форумчане!
Немного запутался в формуле с применением ВПР.
Вроде бы решал уже такую задачу, но не могу вспомнить как . Надеюсь на вашу помощь.
К сообщению приложен файл: 5614831.xlsx (10.5 Kb)


Место для рекламы.
 
Ответить
СообщениеДоброго времени суток, уважаемые форумчане!
Немного запутался в формуле с применением ВПР.
Вроде бы решал уже такую задачу, но не могу вспомнить как . Надеюсь на вашу помощь.

Автор - Stormy
Дата добавления - 03.03.2015 в 14:50
_Boroda_ Дата: Вторник, 03.03.2015, 14:57 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16888
Репутация: 6611 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Для Вашего файла можно так, например:
Формула массива
Код
=ОСТАТ(МАКС(ЕСЛИ(G6:G19=B6;J6:J19+H6:H19));1)

Код
=ОСТАТ(МАКС((G6:G19=B6)*J6:J19+H6:H19);1)

обычная формула
Код
=ОСТАТ(СУММПРОИЗВ(МАКС((G6:G19=B6)*J6:J19+H6:H19));1)
К сообщению приложен файл: 5614831_2.xlsx (10.7 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДля Вашего файла можно так, например:
Формула массива
Код
=ОСТАТ(МАКС(ЕСЛИ(G6:G19=B6;J6:J19+H6:H19));1)

Код
=ОСТАТ(МАКС((G6:G19=B6)*J6:J19+H6:H19);1)

обычная формула
Код
=ОСТАТ(СУММПРОИЗВ(МАКС((G6:G19=B6)*J6:J19+H6:H19));1)

Автор - _Boroda_
Дата добавления - 03.03.2015 в 14:57
Nic70y Дата: Вторник, 03.03.2015, 14:59 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010
а может так
Код
=ИНДЕКС(H6:H19;ПОИСКПОЗ(СУММПРОИЗВ(МАКС((B6=G6:G19)*J6:J19));J6:J19);0)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Вторник, 03.03.2015, 14:59
 
Ответить
Сообщениеа может так
Код
=ИНДЕКС(H6:H19;ПОИСКПОЗ(СУММПРОИЗВ(МАКС((B6=G6:G19)*J6:J19));J6:J19);0)

Автор - Nic70y
Дата добавления - 03.03.2015 в 14:59
Stormy Дата: Вторник, 03.03.2015, 15:29 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 366
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, Nic70y,
Благодарю, уважаемые.
Вспомнил. Решал через СУММЕСЛИ , но ваши варианты намного проще.


Место для рекламы.
 
Ответить
Сообщение_Boroda_, Nic70y,
Благодарю, уважаемые.
Вспомнил. Решал через СУММЕСЛИ , но ваши варианты намного проще.

Автор - Stormy
Дата добавления - 03.03.2015 в 15:29
Stormy Дата: Вторник, 03.03.2015, 17:02 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 366
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
_Boroda_,
А как быть, если в формуле еще нужно добавить условие I6:I19 = 3 ?

Код
=ОСТАТ(МАКС(ЕСЛИ(G6:G19=B6;J6:J19+H6:H19));1)


Место для рекламы.

Сообщение отредактировал Stormy - Вторник, 03.03.2015, 17:03
 
Ответить
Сообщение_Boroda_,
А как быть, если в формуле еще нужно добавить условие I6:I19 = 3 ?

Код
=ОСТАТ(МАКС(ЕСЛИ(G6:G19=B6;J6:J19+H6:H19));1)

Автор - Stormy
Дата добавления - 03.03.2015 в 17:02
_Boroda_ Дата: Вторник, 03.03.2015, 17:13 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16888
Репутация: 6611 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Под ЕСЛИ еще условие засунуть
Код
=ОСТАТ(МАКС(ЕСЛИ((I6:I19=3)*(G6:G19=B6);J6:J19+H6:H19));1)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПод ЕСЛИ еще условие засунуть
Код
=ОСТАТ(МАКС(ЕСЛИ((I6:I19=3)*(G6:G19=B6);J6:J19+H6:H19));1)

Автор - _Boroda_
Дата добавления - 03.03.2015 в 17:13
jakim Дата: Вторник, 03.03.2015, 22:21 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1218
Репутация: 316 ±
Замечаний: 0% ±

Excel 2010
Ещё одна массивная формула

Код
=INDEX(H6:H19;MATCH(1;(G6:G19=B6)*(J6:J19=MAX(J6:J19*(I6:I19=3)));0))
 
Ответить
Сообщение
Ещё одна массивная формула

Код
=INDEX(H6:H19;MATCH(1;(G6:G19=B6)*(J6:J19=MAX(J6:J19*(I6:I19=3)));0))

Автор - jakim
Дата добавления - 03.03.2015 в 22:21
Stormy Дата: Среда, 04.03.2015, 09:03 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 366
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
_Boroda_,
Странно, если цена выше 1 , то выдает остаток после запятой.
jakim,
Благодарю.
Выдает ошибку #Н/Д


Место для рекламы.

Сообщение отредактировал Stormy - Среда, 04.03.2015, 09:18
 
Ответить
Сообщение_Boroda_,
Странно, если цена выше 1 , то выдает остаток после запятой.
jakim,
Благодарю.
Выдает ошибку #Н/Д

Автор - Stormy
Дата добавления - 04.03.2015 в 09:03
Stormy Дата: Среда, 04.03.2015, 09:24 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 366
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Код
{=МАКС(ЕСЛИ((G6:G19=B6)*(I6:I19=3);J6:J19+H6:H19-J6:J19))}

Так работает, но начинаются проблемы, если в диапазоне Регионы ( I6:I19) два или больше региона под номером 3 , которые соответствуют B6 в диапазоне G6:G19


Место для рекламы.
 
Ответить
Сообщение
Код
{=МАКС(ЕСЛИ((G6:G19=B6)*(I6:I19=3);J6:J19+H6:H19-J6:J19))}

Так работает, но начинаются проблемы, если в диапазоне Регионы ( I6:I19) два или больше региона под номером 3 , которые соответствуют B6 в диапазоне G6:G19

Автор - Stormy
Дата добавления - 04.03.2015 в 09:24
_Boroda_ Дата: Среда, 04.03.2015, 09:37 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 16888
Репутация: 6611 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
если цена выше 1 , то выдает остаток после запятой.

Все правильно. Из-за куска +H6:H19. Я думал, что это проценты. <1.
Можно тогда так:
Код
=ИНДЕКС(H6:H19;ПОИСКПОЗ(МАКС((G6:G19=B6)*(I6:I19=3)*J6:J19);J6:J19;))

или немассивная
Код
=ПРОСМОТР(;-1/(МАКС((G6:G19=B6)*(I6:I19=3)*J6:J19)=J6:J19);H6:H19)
К сообщению приложен файл: 5614831_66.xlsx (10.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
если цена выше 1 , то выдает остаток после запятой.

Все правильно. Из-за куска +H6:H19. Я думал, что это проценты. <1.
Можно тогда так:
Код
=ИНДЕКС(H6:H19;ПОИСКПОЗ(МАКС((G6:G19=B6)*(I6:I19=3)*J6:J19);J6:J19;))

или немассивная
Код
=ПРОСМОТР(;-1/(МАКС((G6:G19=B6)*(I6:I19=3)*J6:J19)=J6:J19);H6:H19)

Автор - _Boroda_
Дата добавления - 04.03.2015 в 09:37
Stormy Дата: Пятница, 06.03.2015, 16:44 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 366
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
_Boroda_,
На примере все работает. Переношу формулу на основной лист ( около 20000 строк) выдает ошибку НД . Не могу понять в чем проблема


Место для рекламы.
 
Ответить
Сообщение_Boroda_,
На примере все работает. Переношу формулу на основной лист ( около 20000 строк) выдает ошибку НД . Не могу понять в чем проблема

Автор - Stormy
Дата добавления - 06.03.2015 в 16:44
Stormy Дата: Суббота, 07.03.2015, 07:57 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 366
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
_Boroda_,
Доброе утро )) Добрался до рабочего компьютера, сейчас буду пробовать. О результатах отчитаюсь позже B)
В примере кусок реального файла. Первый столбец это ИД товара, второй цена, третий столбец регион ( для каждой группы фирм используется своя цена, в нашем случае нужен идентификатор под №3)
четвертый столбец это порядковый номер изменений цен.
Все эти данные я получаю из базы на Аксесс ( написана сторонним разработчиком) на лист в Экзеле.
Дальше на другом листе у меня есть перечень товаров на котором нужно сравнивать цены ( порядка 200 наименований).
Моя задача получить последнею цену для региона 3 для каждого товара.


Место для рекламы.
 
Ответить
Сообщение_Boroda_,
Доброе утро )) Добрался до рабочего компьютера, сейчас буду пробовать. О результатах отчитаюсь позже B)
В примере кусок реального файла. Первый столбец это ИД товара, второй цена, третий столбец регион ( для каждой группы фирм используется своя цена, в нашем случае нужен идентификатор под №3)
четвертый столбец это порядковый номер изменений цен.
Все эти данные я получаю из базы на Аксесс ( написана сторонним разработчиком) на лист в Экзеле.
Дальше на другом листе у меня есть перечень товаров на котором нужно сравнивать цены ( порядка 200 наименований).
Моя задача получить последнею цену для региона 3 для каждого товара.

Автор - Stormy
Дата добавления - 07.03.2015 в 07:57
_Boroda_ Дата: Суббота, 07.03.2015, 18:15 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 16888
Репутация: 6611 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Первый столбец это ИД товара

Следовательно, там значения не всегда по порядку и ИНДЕКС():ИНДЕКС() их не возьмет. Тогда моя задумка облегчения не прокатит, она реальна только для упорядоченного первого столбца.
Зато вот это
четвертый столбец это порядковый номер изменений цен.
позволит нам вообще не использовать 4-й столбец, ведь он-то по возрастанию получается
Тогда формулу можно записать так:
Код
=ПРОСМОТР(;-1/((I6:I19=3)*G6:G19=B6);H6:H19)
- обычная
или
Код
=ПРОСМОТР(;-1/(ЕСЛИ(I6:I19=3;G6:G19)=B6);H6:H19)
- массивная, но должна быть пошустрее первой
А
выдает ошибку НД
- возможно, где-то в таблице ошибка затесалась в данных? Или просто нет в списке такого товара или тройки у этого товара. Или значения текстом, а не числами. Засуньте тогда формулу вовнутрь ЕСЛИОШИБКА.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Первый столбец это ИД товара

Следовательно, там значения не всегда по порядку и ИНДЕКС():ИНДЕКС() их не возьмет. Тогда моя задумка облегчения не прокатит, она реальна только для упорядоченного первого столбца.
Зато вот это
четвертый столбец это порядковый номер изменений цен.
позволит нам вообще не использовать 4-й столбец, ведь он-то по возрастанию получается
Тогда формулу можно записать так:
Код
=ПРОСМОТР(;-1/((I6:I19=3)*G6:G19=B6);H6:H19)
- обычная
или
Код
=ПРОСМОТР(;-1/(ЕСЛИ(I6:I19=3;G6:G19)=B6);H6:H19)
- массивная, но должна быть пошустрее первой
А
выдает ошибку НД
- возможно, где-то в таблице ошибка затесалась в данных? Или просто нет в списке такого товара или тройки у этого товара. Или значения текстом, а не числами. Засуньте тогда формулу вовнутрь ЕСЛИОШИБКА.

Автор - _Boroda_
Дата добавления - 07.03.2015 в 18:15
Stormy Дата: Вторник, 10.03.2015, 12:24 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 366
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
_Boroda_,
А как быть, если на нужный ИД , два региона №3 ? Поэтому и думал по 4-ому столбцу определять последнею цену.


Место для рекламы.
 
Ответить
Сообщение_Boroda_,
А как быть, если на нужный ИД , два региона №3 ? Поэтому и думал по 4-ому столбцу определять последнею цену.

Автор - Stormy
Дата добавления - 10.03.2015 в 12:24
Stormy Дата: Вторник, 10.03.2015, 12:42 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 366
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
_Boroda_,
Верно!
Вроде пробовал и не получалось, а сейчас все правильно и нормально работает ))
Спасибо.


Место для рекламы.
 
Ответить
Сообщение_Boroda_,
Верно!
Вроде пробовал и не получалось, а сейчас все правильно и нормально работает ))
Спасибо.

Автор - Stormy
Дата добавления - 10.03.2015 в 12:42
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!