2015-05-01 19 views
1

Мне нужна помощь для написания макроса для использования в Excel. По сути, я работаю с большими группами финансовых данных, которые почти всегда уникальны. Мне нужно иметь возможность сравнивать каждую ячейку в одном столбце (B) с другим целым столбцом (H) для поиска подходящего значения. После нахождения значения соответствия мне нужно, чтобы макрос распечатывал значение, относящееся к исходному найденному значению, в ячейку рядом с искомым значением. (Колонок G будет иметь заголовки со ссылкой на значение ячейки H)Найти и найти в VBA

В принципе мне нужно, чтобы иметь возможность сравнивать отдельные значения каждой ячейки в столбце B на весь столбец H, а если и когда есть совпадение, значение столбца G указано в колонке A рядом с исходной ячейкой в ​​столбце B. Извините за страшное объяснение.

Поиск по столбцу H для сравнения значений B2. Если H30 = B30, напечатайте G30 в A2.

+0

Stackoverflow не написание службы кода, но если у вас есть код, который вы испытываете проблемы мы будем любить помогать. –

ответ

0

Для этого вам, скорее всего, не нужен макрос. Попробуйте функцию ВПР: https://support.office.com/en-in/article/VLOOKUP-function-adceda66-30de-4f26-923b-7257939faa65

Edit: Синтаксис должно быть что-то вроде:

=VLOOKUP(B1, G:H, 2, FALSE) 

затем заполнить вниз и корректировать абсолютные ссылки в соответствующих случаях для таблицы.

+0

любые предложения по синтаксису Vlookup? Я уже пробовал это, и я не могу понять, как вернуть значение, не соответствующее самому совпадающему значению. –

+0

@ LukeSagaser Я отредактировал ответ, чтобы добавить синтаксис. Обратите внимание, что VLOOKUP всегда ищет первый столбец массива и затем возвращает значения из этого столбца или столбцов справа - если вы абсолютно не можете изменить порядок своих столбцов, вам нужно будет использовать другую функцию. – APH

1

Поскольку вы не можете использовать VLOOKUP(), вам нужно использовать вложенный MATCH() и INDEX().

=INDEX(G:G,MATCH(B1,H:H,FALSE))

Для справки: