Excel Formula Vlookup проблема - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть 2 листа Excel («лист 1, лист 2»).

Лист 1 и Лист 2 имеют "product #" в столбце A и "price" в столбце C. Я пытаюсь написать формулу, которая позволила бы Листу 1 искать на листе 2, если есть Product # match In в столбце A и при наличии совпадения № продукта обновите на листе 1 столбец C (Цена) цену продукта из листа 2. Если не найдено совпадений № продукта из листа 2, оставьте цену только на листе 1.

Я использую эту формулу, которая возвращает «0» в случае ошибки, но я не могу понять, как изменить ее, чтобы оставить цену в покое, когда продукт не найден.

=IFERROR(VLOOKUP(A2,updated!A:C,3,FALSE),0)

Спасибо

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Единственное предостережение: вам нужно написать эту формулу в новом столбце, скажем, в D2, потому что вы не можете перезаписать свою первоначальную цену формулой.

=IFERROR(VLOOKUP(A2,updated!A:C,3,FALSE),C2)

Это говорит: «если A2 соответствует значению в столбце A обновленного листа, вернуть цену из столбца C обновленного листа, если только не возникает ошибка, в этом случае используйте исходную цену на листе 1 (C2).

0 голосов
/ 09 ноября 2018

Вы хотите использовать INDEX/MATCH для этого:

Поместите следующую формулу в столбец C и заполните = ЕСЛИОШИБКА (ЕСЛИ (ИНДЕКС (Лист2 B: B, MATCH (А2, Лист2 A: А, 0)) = Лист1 В2, В2, ИНДЕКС (Лист2 Б:! Б, MATCH (А2, Лист2 A: , 0))), "")

MATCH найдет, строка на листе 2 с тем же идентификатором продукта, INDEX вернет соответствующую цену. Если он соответствует значению на листе 1, формула возвращает значение на листе 1 в столбце B. Если этого не произойдет, он вернет цену от Sheet2

...