сопоставьте столбец «A» с «D», используйте идентификатор столбца «B» и поместите его перед соответствующим значением на «D» - PullRequest
0 голосов
/ 30 мая 2019

Я довольно новичок в Excel и VBA все еще, вот в чем моя проблема, столбец «A» имеет идентификатор, указанный в «B», а столбец C содержит общий список, не включенный в «A», что я пытаюсь do is ("if" A "=" C "), затем используйте идентификатор из" B "и поместите его / скопируйте перед" D "

= ИНДЕКС (В2, MATCH (А2, С2))

Я подумываю создать макрос, в котором я могу просто скопировать список тестов на другой лист, а затем сопоставить значения, поскольку столбцы "A" и "C" не совпадают, а затем скопировать значение из "B" в " D "если" A "найден на" C " У меня есть более 2500 значений, которые будут частью столбца «C», но столбец «A» никогда не будет иметь такое же количество строк, как «C» Я знаю, это выглядит просто на скриншоте, но соглашение об именах отличается.

Я надеюсь, что имеет смысл то, что я пытаюсь объяснить здесь. если нет, пожалуйста, дайте мне знать enter image description here

1 Ответ

1 голос
/ 30 мая 2019

Ваша логика «IF» может быть захвачена функцией IF.Таким образом, вы помещаете эту формулу в D2 и перетаскиваете ее так далеко, как хотите.

=if(A2=C2,B2,"")

Редакция: вышеприведенное сработает, если совпадение будет проверяться в той же строке.Но теперь я понимаю, что мы должны просматривать весь столбец A. В этом случае мы можем сделать следующее в D2 и перетащить:

=iferror(indirect(address(1+match(C2,A$2:A,0),2)),"")

. Iferror позволяет объекту оставаться пустым, если совпадение не удается.Если совпадение выполнено успешно, 1 + match - это строка, а 2 - столбец B. Мы создаем его адрес и находим его по этому адресу.

...