Excel получает значение из другого листа на основе нескольких условий

введите здесь описание изображения У меня есть два листа в Excel, Sheet1 и Sheet2. Оба они содержат 3 столбца A, B и C.

Моя цель - получить значения от C в Sheet2 до C в Sheet1 на основе условий, сравнивающих значения в A и B одновременно.

A в Sheet2 содержит числа, сгруппированные вместе, например 11,11,13,13,12,12. A в Sheeet1 содержит некоторые из этих чисел, но не обязательно в том же порядке или в том же количестве строк, например 11,11,12,13,13.

B в Sheet2 также содержит числа вроде 2,1,1,2,1,2. B в Sheet1 снова содержит часть этих чисел. Например, 1,2,1,1,2.

Существуют только уникальные комбинации пар в A и B (в указанном порядке) для Sheet1 и Sheet2 соответственно.

C в Sheet2 состоит из чисел, связанных с определенной комбинацией чисел в A и B.

Теперь я хочу заполнить C в Sheet1 на основе значений из C в Sheet2. Например, для C1: получите значение (строка x) в 'Sheet2'! Cx, чтобы 'Sheet1'! A1 = 'Sheet2'! Ax, И 'Sheet1'! B1 = 'Sheet2'! Bx (который будет 2-й ряд в этом примере).

Я думал о чем-то вроде

C1=INDEX('Sheet2'!C:C;...)

куда

...=IF(AND(MATCH(A1;'Sheet2'!A:A;0);MATCH(B1;'Sheet2'!B:B;0));?;?)

? = Я не знаю, что бы здесь написать, но мне бы хотелось, чтобы возвращаемое значение IF было номером строки, в которой выполняются оба условия.

Проблема в том, что ПОИСКПОЗ возвращает только первое число в A и B соответственно, для которого условие истинно, в то время как у меня есть несколько неуникальных чисел в A. Я бы хотел просмотреть весь 'Sheet2'! A: A и получить все совпадающие значения, а затем просмотрите соответствующий 'Sheet2'! B: B, чтобы проверить второе условие.

А может быть, к этой проблеме можно подходить совсем по-другому. У кого-нибудь есть предложения, как это решить?


person Sofie Molin Andersson    schedule 12.04.2019    source источник


Ответы (2)


Вот способ просмотра нескольких значений в функции MATCH(), например:

Лист1:

введите здесь описание изображения

Лист2:

введите здесь описание изображения

Формула на C2 листе1:

{=IFERROR(INDEX(Sheet2!$C$2:$C$6,MATCH(Sheet1!A2&Sheet1!B2,Sheet2!$A$2:$A$6&Sheet2!$B$2:$B$6,0)),"")}

Примечание. Это формула массива, поэтому вводите ее с помощью Ctrl Shift Enter

Результат:

введите здесь описание изображения

person JvdV    schedule 12.04.2019
comment
Вот как я обычно это делаю. Будет ли это работать с конкатенацией чисел? - person MGP; 12.04.2019
comment
@MarcoGetrost, что именно ты имеешь в виду? например, объединить A1 и B1 и сопоставить только один столбец с объединенными значениями? - person JvdV; 12.04.2019
comment
в вашем примере вы объединяете строку и число и сопоставляете результат. ОП хочет найти два числа. Что произойдет, если у него 11 в столбце A и 1 в столбце B для одного результата и 1 в столбце A и 11 в столбце B. Будет ли ваше решение работать? - person MGP; 12.04.2019
comment
@MarcoGetrost, теперь я знаю, что вы имели в виду. И да, он все равно будет работать, если вы, например, объедините с ним ",". Хороший момент! - person JvdV; 12.04.2019

Формула C1 =INDEX(Sheet2!C:C;MATCH(A1;Sheet2!A:A;0);MATCH(B1;Sheet2!B:B;0))

person Dmitrij Holkin    schedule 12.04.2019