Поиск в массиве по двум критериям
Maxim_prm
Дата: Вторник, 04.07.2017, 08:17 |
Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
Добрый день. прошу Вас помочь мне вот с такой задачей: Есть два источника по заправкам техник (Лист1 и Лист2), необходимо в колонку F Листа2 подставить максимально близкое время (меньшее) из колонки B Листа1, но учитывая №карты (колонка С Листа1 и Колонка Е Листа2). Другими словами нужно искать время только в тех строках. в которых № карты совпадает. Спасибо.
Добрый день. прошу Вас помочь мне вот с такой задачей: Есть два источника по заправкам техник (Лист1 и Лист2), необходимо в колонку F Листа2 подставить максимально близкое время (меньшее) из колонки B Листа1, но учитывая №карты (колонка С Листа1 и Колонка Е Листа2). Другими словами нужно искать время только в тех строках. в которых № карты совпадает. Спасибо. Maxim_prm
Ответить
Сообщение Добрый день. прошу Вас помочь мне вот с такой задачей: Есть два источника по заправкам техник (Лист1 и Лист2), необходимо в колонку F Листа2 подставить максимально близкое время (меньшее) из колонки B Листа1, но учитывая №карты (колонка С Листа1 и Колонка Е Листа2). Другими словами нужно искать время только в тех строках. в которых № карты совпадает. Спасибо. Автор - Maxim_prm Дата добавления - 04.07.2017 в 08:17
_Boroda_
Дата: Вторник, 04.07.2017, 09:00 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16885
Репутация:
6599
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
У Вас время на Лист1 по убыванию, следовательно, вполне достаточно такой формулыКод
=ЕСЛИОШИБКА(--ИНДЕКС(Лист1!B:B;ПОИСКПОЗ(E2;Лист1!C$1:C$141;));"")
Или формула массива. Здесь уже неважно, что время отсортированоКод
=МАКС(--ЕСЛИ(E2=Лист1!C$1:C$141;Лист1!B$1:B$141))
Два минуса переводят "текстовую" дату в "числовую" Формат ячеек во второй формуле можно поставитьДД.ММ.ГГГГ чч:мм:сс;; Файл перевложил
У Вас время на Лист1 по убыванию, следовательно, вполне достаточно такой формулыКод
=ЕСЛИОШИБКА(--ИНДЕКС(Лист1!B:B;ПОИСКПОЗ(E2;Лист1!C$1:C$141;));"")
Или формула массива. Здесь уже неважно, что время отсортированоКод
=МАКС(--ЕСЛИ(E2=Лист1!C$1:C$141;Лист1!B$1:B$141))
Два минуса переводят "текстовую" дату в "числовую" Формат ячеек во второй формуле можно поставитьДД.ММ.ГГГГ чч:мм:сс;; Файл перевложил _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение У Вас время на Лист1 по убыванию, следовательно, вполне достаточно такой формулыКод
=ЕСЛИОШИБКА(--ИНДЕКС(Лист1!B:B;ПОИСКПОЗ(E2;Лист1!C$1:C$141;));"")
Или формула массива. Здесь уже неважно, что время отсортированоКод
=МАКС(--ЕСЛИ(E2=Лист1!C$1:C$141;Лист1!B$1:B$141))
Два минуса переводят "текстовую" дату в "числовую" Формат ячеек во второй формуле можно поставитьДД.ММ.ГГГГ чч:мм:сс;; Файл перевложил Автор - _Boroda_ Дата добавления - 04.07.2017 в 09:00
Maxim_prm
Дата: Вторник, 04.07.2017, 09:51 |
Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
_Boroda_ , Большое спасибо за помощь, я наверное неправильно объяснил, необходимо найти дату/время максимально приближенную к времени (колонка B листа2) и учитывая номер карты. Т.е. в колонке F строка 2 должна была появится дата/время из строки 138 на Листе1 (08.05.2017 08:37:02). Заранее прошу прощения за непонятное объяснение изначально.
_Boroda_ , Большое спасибо за помощь, я наверное неправильно объяснил, необходимо найти дату/время максимально приближенную к времени (колонка B листа2) и учитывая номер карты. Т.е. в колонке F строка 2 должна была появится дата/время из строки 138 на Листе1 (08.05.2017 08:37:02). Заранее прошу прощения за непонятное объяснение изначально.Maxim_prm
Ответить
Сообщение _Boroda_ , Большое спасибо за помощь, я наверное неправильно объяснил, необходимо найти дату/время максимально приближенную к времени (колонка B листа2) и учитывая номер карты. Т.е. в колонке F строка 2 должна была появится дата/время из строки 138 на Листе1 (08.05.2017 08:37:02). Заранее прошу прощения за непонятное объяснение изначально.Автор - Maxim_prm Дата добавления - 04.07.2017 в 09:51
_Boroda_
Дата: Вторник, 04.07.2017, 10:00 |
Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16885
Репутация:
6599
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Это я невнимательно прочитал Так?Код
=МАКС(--ЕСЛИ((E2=Лист1!C$1:C$141)*(--B2>--Лист1!B$1:B$141);Лист1!B$1:B$141))
Код
=ЕСЛИОШИБКА(--ИНДЕКС(Лист1!B:B;ПОИСКПОЗ(E2;ЕСЛИ(--B2>--Лист1!B$1:B$141;Лист1!C$1:C$141);));"")
Это я невнимательно прочитал Так?Код
=МАКС(--ЕСЛИ((E2=Лист1!C$1:C$141)*(--B2>--Лист1!B$1:B$141);Лист1!B$1:B$141))
Код
=ЕСЛИОШИБКА(--ИНДЕКС(Лист1!B:B;ПОИСКПОЗ(E2;ЕСЛИ(--B2>--Лист1!B$1:B$141;Лист1!C$1:C$141);));"")
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Это я невнимательно прочитал Так?Код
=МАКС(--ЕСЛИ((E2=Лист1!C$1:C$141)*(--B2>--Лист1!B$1:B$141);Лист1!B$1:B$141))
Код
=ЕСЛИОШИБКА(--ИНДЕКС(Лист1!B:B;ПОИСКПОЗ(E2;ЕСЛИ(--B2>--Лист1!B$1:B$141;Лист1!C$1:C$141);));"")
Автор - _Boroda_ Дата добавления - 04.07.2017 в 10:00
Maxim_prm
Дата: Вторник, 04.07.2017, 11:25 |
Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация:
0
±
Замечаний:
0% ±
Excel 2010
_Boroda_ , Отлично, то что доктор прописал. Огромное СПАСИБО!!) Три дня голову ломали.
_Boroda_ , Отлично, то что доктор прописал. Огромное СПАСИБО!!) Три дня голову ломали.Maxim_prm
Ответить
Сообщение _Boroda_ , Отлично, то что доктор прописал. Огромное СПАСИБО!!) Три дня голову ломали.Автор - Maxim_prm Дата добавления - 04.07.2017 в 11:25
jakim
Дата: Вторник, 04.07.2017, 13:38 |
Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1218
Репутация:
316
±
Замечаний:
0% ±
Excel 2010
Для Вашего офиса подойдёт и такая формула без массивного ввода
Код
=IFERROR(AGGREGATE(14;6;Лист1!B$1:B$141/(Лист1!B$1:B$141<B2)/(Лист1!C$1:C$141=E2);1);"")
только время на обоих листах должно быть в числовом формате.
Для Вашего офиса подойдёт и такая формула без массивного ввода
Код
=IFERROR(AGGREGATE(14;6;Лист1!B$1:B$141/(Лист1!B$1:B$141<B2)/(Лист1!C$1:C$141=E2);1);"")
только время на обоих листах должно быть в числовом формате.
jakim
Сообщение отредактировал jakim - Вторник, 04.07.2017, 13:38
Ответить
Сообщение Для Вашего офиса подойдёт и такая формула без массивного ввода
Код
=IFERROR(AGGREGATE(14;6;Лист1!B$1:B$141/(Лист1!B$1:B$141<B2)/(Лист1!C$1:C$141=E2);1);"")
только время на обоих листах должно быть в числовом формате.
Автор - jakim Дата добавления - 04.07.2017 в 13:38