Необходимо добавить значения из нескольких столбцов на одном листе в другой лист на основе соответствия - PullRequest
0 голосов
/ 04 февраля 2019

Одна рабочая книга, несколько рабочих листов (вкладок)

Рабочая таблица 1 .В каждой ячейке есть столбцы A – K.Для любой данной строки значения в столбцах G, H, I, J, K напрямую соответствуют значению в столбце B

Рабочий лист 2 .В каждой колонке есть данные в столбцах A – P.

. Мне нужна формула, чтобы: всякий раз, когда значение в столбце B на рабочем листе 1 соответствует любому значению в столбце N на рабочем листе 2 , доставьте соответствующие значения из столбцов G, H, I, J, K на рабочем листе 1 в столбцы Q, R, S, T, U на рабочем листе 2 .

1 Ответ

0 голосов
/ 05 февраля 2019

Это можно сделать с помощью INDEX и MATCH.

INDEX возвращает значение из массива, и мы должны предоставить строку и столбец.MATCH возвращает местоположение значения в массиве.Если массив является столбцом, он возвращает номер строки, если массив является строкой, он возвращает номер столбца.Скажем, вот как выглядит ваш лист1:

1004 *Sheet 1

В этом случае мы хотим найти «счастливый» в столбце N листа 2, которыйможет выглядеть так:

Sheet 2

«счастливый» появляется в столбце N в строке 10. Итак, мы хотим получить «тест» из листа G3 1и хотим, чтобы оно появилось в листе Q10 2. Для этого мы можем использовать следующий код:

=INDEX(Sheet1!$A$1:$K$10,MATCH(Sheet2!$N10,Sheet1!$B$1:$B$10,0),7)

Чтобы разбить это (сфокусируйтесь на 1-м и 3-м элементе [пока игнорируйте часть MATCH]):

INDEX(array,row,col) 

где массив - лист1 A1: P15.В столбце Q листа 2 мы хотим получить значение из столбца G листа 1, поэтому номер столбца равен 6 (6 = «7», который появляется перед закрывающей скобкой).

Но какой ряд?Вот где в игру вступает MATCH:

MATCH(lookup_value, lookup_array, [match_type])

Мы хотим, чтобы строка, в которой «счастливый» появился в столбце B листа 1, и формула MATCH, которую мы написали:

MATCH(Sheet2!$N10,Sheet1!$B$1:$B$10,0)

Здесь,значение, которое мы хотим найти, это «happy», которое находится в N10, так что это наше lookup_value (обратите внимание на $N10, столбец N абсолютный, а строка относительная).Теперь, где мы хотим найти «счастливых»?Это верно, столбец B Листа 1, поэтому у нас есть Sheet1!$B$1:$B$10 (мы также можем использовать Sheet1!$B:$B, если мы хотим найти весь столбец).Наконец, мы имеем match_type как 0, потому что 0 обозначает точное значение.Мы хотим найти точную фразу «счастливый».

Собираем все вместе, и у нас есть следующий код для столбца Q:

=INDEX(Sheet1!$A$1:$K$10,MATCH(Sheet2!$N10,Sheet1!$B$1:$B$10,0),7)

Для столбца R единственное, что изменяется, эточто нам больше не нужно значение в столбце G листа 1, нам нужно значение из столбца H листа 1, поэтому значение 7 в конце меняется на 8:

=INDEX(Sheet1!$A$1:$K$10,MATCH(Sheet2!$N10,Sheet1!$B$1:$B$10,0),8)

enter image description here

Извините за длинное объяснение, просто хотел убедиться, что вы поняли код, чтобы вы могли редактировать его в соответствии со своими потребностями.Надеюсь, это поможет.

...