Как я могу выполнить ВПР по строкам со строками заголовка в качестве критериев в Excel / VBA?

#excel #vba #match #vlookup #transpose

#excel #vba #совпадение #ВПР #транспонировать

Вопрос:

Пример

Данные:
Данные

Вывод:
Вывод

Здравствуйте, пожалуйста, посмотрите прикрепленный лист. У меня есть таблицы с финансовыми данными, организованными по столбцу ID и по строкам даты в заголовках.

На листе 1 я хочу указать диапазон дат в ячейках B1 и D1 листа 1, для которых будет рассчитываться норма прибыли. Например, учитывая приведенные ниже изображения, мне нужна формула в B3 выходных данных, которая может суммировать значения прибыли от 2/1 до 2/6 (34).

Может ли кто-нибудь указать мне правильное направление в отношении VBA или даже некоторых формул Excel на листе? Ценю любые отзывы

Комментарии:

1. HLOOKUP ?

2. INDEX MATCH OFFSET INDIRECT также стоило бы прочитать.

3. @Nathan_Sav, HLOOKUP должно быть достаточно, как выяснил @cybernetic.nomad. Но да, очевидно, что знание этих

4. Не беспокойтесь, я предпочитаю INDEX(range,match,match) метод, а не поисковые запросы для гибкости.

5. @cybernetic.nomad Я не слишком знаком с Hlookup; Я вижу, как он ищет значение строки, заданное датой в качестве входных данных, но как я могу использовать его для диапазона дат и диапазона значений строк? Т.е. если диапазон дат был от 2/1 до 2/6, как бы я суммировал соответствующие строки отчета о прибылях и убытках, чтобы вернуть (4 6 7 10 2 5) 34 в ячейке B3?

Ответ №1:

Вы можете использовать MATCH для поиска идентификатора и дат, а также ряда в INDEX , чтобы вернуть требуемый диапазон для a SUM

 =SUM( INDEX( Profit, IDRow, FromDateColumn) : INDEX( Profit, IDRow, ToDateColumn))
  

где FromDateColumn , ToDateColumn и IDRow находятся с MATCH

 =SUM(
 INDEX(Profit!$1:$1048576, MATCH($A$3,Profit!$A:$A,0), MATCH($B$1,Profit!$1:$1,0)) :
 INDEX(Profit!$1:$1048576, MATCH($A$3,Profit!$A:$A,0), MATCH($D$1,Profit!$1:$1,0)) )