2013-07-15 2 views
1

следующей ситуации:ВПР: искомое_значение, как диапазон дат

Лист 1 обеспечивает диапазон дат в два клетках:

Beginning____End 

1.2013______2.2013 

2.2013______3.2013... 

Листа 2 содержат конкретные даты и значение

3.1.2013_____500$ 

5.2.2013_____700$... 

То, что я хочу теперь нужно вставить значения из листа 2 рядом с правыми диапазонами дат в листе 1. Обратите внимание, что для каждого диапазона дат существует только одна дата (и, следовательно, одно значение).

1.2013___ 2.2013___500$ 

2.2013___ 3.2013___700$ 

Обычно в такой ситуации, я хотел бы использовать ВПР и матч даты, но это не работает, так как я должен был бы поместить диапазон значений в lookup_value.

Я был бы очень благодарен за вашу помощь. Эта проблема кажется такой простой, но я не могу понять решение! Я попытался применить некоторые решения для подобных проблем, которые я нашел здесь и на других сайтах, но пока не нашел решения.

Спасибо и с наилучшими пожеланиями!

ответ

1

Я не уверен, есть ли альтернатива, но это то, что я придумал:

=IF(VLOOKUP(C3,Sheet1!$B$3:$C$11,1)>=B3,VLOOKUP(C3,Sheet1!$B$3:$C$11,2),0) 

Прежде всего следует отметить, что у вас есть «плавающий» или unanchored диапазон, который вызвал ваш LOOKUP() работать несколько, но это в конечном итоге приведет к множеству неправильных ценностей.

В формуле, вот небольшое описание:

VLOOKUP(C4,Sheet1!$B$3:$C$11,1)>=B4 это проверяет, если End of Period равно или до даты в Sheet1 мы ищем. В случае пропусков месяца этот бит позаботится об этом.

VLOOKUP(C3,Sheet1!$B$3:$C$11,2) это ищет соответствующее значение даты.

И я обновил ваш файл here.

+1

Хорошее решение! В текущей версии вашего файла вы использовали OFFSET и MATCH, но приведенная выше формула работает (в интересах читателей без листа примеров конкретные даты и значения указаны в Sheet1! $ B $ 3: $ C $ 11 и даты начала и окончания указаны в столбцах B и C листа, где используется приведенная выше формула). – nekomatic

+0

@nekomatic Ой, я пробовал с Offset и Match в первый раз, и я думаю, что забыл сохранить обновленный только с vlookup. Спасибо что подметил это! Я просто обновил excel. – Jerry

+0

Эй, Джерри, эй нематик! Большое спасибо за помощь, мне очень нравится решение Jerrys. Спасибо nekomatic за указание, что VLOOKUP выглядит либо для точного соответствия, либо для наибольшего значения, которое меньше значения поиска. Я поместил решение jerrys в слова, что могло бы помочь не таким опытным пользователям excel, как я. Пожалуйста, исправьте меня, если я ошибаюсь: если наибольшее значение, меньшее [верхнего предела диапазона], больше или равно [нижний конец диапазона] -> поиск [верхний край диапазона], если нет -> написать 0 –

0

Пока ваши даты на Sheet2 в порядке возрастания, вы все равно можете использовать VLOOKUP. Если вы проверите справку для VLOOKUP, вы увидите, что если параметр range_lookup опущен или TRUE, функция будет соответствовать первому значению, которое равно значению поиска, или наибольшему значению, которое меньше значения поиска. Таким образом, в вашем примере, если ячейка B2 на Sheet1 содержит 2.2013, тогда VLOOKUP(Sheet1!B2, Sheet2!$A$1:$B2) вернет 500, потому что 3.1.2013 - это последнее значение в столбце поиска, которое меньше значения поиска (Excel рассматривает значение даты в месяце.год, равное 1.month. год).

Если всегда значение на Лист2 за каждый месяц - то есть он никогда не пропускает от 5.2.2013 до 7.4.2013, например - тогда ВПР сама по себе должна делать то, что вам нужно. Если на Sheet2 иногда отсутствуют месяцы, вам необходимо ограничить диапазон поиска функции VLOOKUP, чтобы предотвратить (в этом примере) дату окончания 4.2013 с возвратом значения 5.2.2013. Вы можете сделать это, используя функции OFFSET и MATCH, чтобы построить диапазон для table_array VLOOKUP, который начинается с начала диапазона дат, который вы ищете. Используйте параметр match_type 1 в функции MATCH, чтобы заставить его вести себя так же, как VLOOKUP.

+0

Привет, некоматик, спасибо за ваш ответ. Я устал от вашего предложения с помощью VLOOKUP, а также попробовал LOOKUP в следующем файле: [link] (https://dl.dropboxusercontent.com/u/18406645/vlookup.xlsx) Как вы сказали, есть проблемы, когда месяцы пропускаются. К сожалению, это относится к моим данным. Я не смог полностью понять ваше предложение со смещением и совпадением. У вас есть ссылка, которая будет объяснять или не указывать? Большое спасибо за помощь! –

+0

Я попытался построить пример, но решение Джерри было проще, поэтому я рекомендую вам принять следующее: D Как он комментирует, вам нужно быть осторожным, чтобы указать абсолютные диапазоны (используя символ $), где это необходимо. – nekomatic