2013-11-12 3 views
1

Я пытаюсь написать формулу в Excel 2003.Excel 2003: значение Match в колонке А с колонки B, а затем извлекать данные из столбца B

Ситуация:

Столбец А соответствует колонке B . Колонка C соответствует колонке D. есть несколько строк в колонке А, которые соответствуют одной строке в колонке С.

 Column A Column B   Column C  Column D 
    1 1247  ≥ 98.5%  1247   ≥ 98.5% 
    2 1250  ≥ 99.9%  1250   ≥ 99.9% 
    3 1258  ≥ 99.9%  1258   ≥ 99.9% 
    4 1341  ≥ 99%   1341   ≥ 98% 
    5 1341  ≥ 99%   1349   ≥ 99% 
    6 1349  ≥ 60%   1376   ≥ 99% 
    7 1349  ≥ 60%   1644   ≥ 60% 

Проблема

мне нужно значения из столбца D, чтобы заменить значения в столбце B.

Попытка

  1. Выберите значение в столбце А
  2. матч этого значения в столбце C
  3. Основываясь на значении в столбце C, скопируйте данные из D.
  4. Вставить данные в колонку B.

    =IF(ISERROR(MATCH(A1,$C$1:$C$,)),ERROR,VLOOKUP(A1,$C$1:$D$7,2)) 
    

Когда я использую этот код неправильные значения из столбца D вытягиваются. B4 и B5 должны были вытащить значение только из D4. B6 и B7 только от D5.

Любые предложения?

+0

Вы нашли что-нибудь полезное? –

ответ

0

Я проверил вашу формулу, и она работает. Я только заменил $C$1:$C$, на $C$1:$C$7, (это выглядит хорошо для вас?)

enter image description here

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

Если это предположение верно и ошибка находится где-то в другом месте, можете ли вы указать, какие неправильные значения из столбца D вытягиваются?

0

Это не похоже на то, что это вызывает проблемы в вашем примере, но вы можете указать, что на поисковых запросах требуются точные. Вы делаете это, добавляя «, 0» к формулам MATCH и VLOOKUP. Как это:

=IF(ISERROR(MATCH(A1,$C$1:$C$7,0)),"ERROR",VLOOKUP(A1,$C$1:$D$7,2,0)) 

EDIT: Кроме того, я думаю, «ERROR» должно быть в кавычках, так как кажется, вы хотите формулу, чтобы распечатать это как сообщение. (Обратите внимание, что без требования точного соответствия, исходная формула не будет возвращать эту ошибку, она найдет следующий ближайший результат.)

1

Есть три проблемы в вашей формуле:

  1. Первый диапазон перекодировки неполное $C$1:$C$ и должно быть $C$1:$C$7.
  2. Вы не используете тип соответствия, а дополнительная запятая оставит ошибку.
  3. Вы не указали, является ли поиск точным совпадением или приблизительным совпадением. По умолчанию VLOOKUP использует приблизительное соответствие, поэтому вы получаете неправильные результаты.

Следующие должны работать, как вы хотели его:

=IF(ISERROR(MATCH(A1,$C$1:$C$7,0)),ERROR,VLOOKUP(A1,$C$1:$D$7,2,0)) 

Однако, вы можете сократить формулу с IFERROR:

=IFERROR(VLOOKUP(A1, $C:$D, 2, 0), "Error") 

Если вы должны смотреть через большое количество значения, это займет много времени в любом случае, поэтому я удалил пределы строк. IFERROR попытается оценить сначала VLOOKUP, и если он вернется #N/A, вместо этого будет IFERROR"Error". В противном случае он вернет значение, которое вы ищете, из VLOOKUP.

Это также должно ускорить процесс, поскольку Excel не должен сначала проверять на MATCH, а затем оценить VLOOKUP.

 Смежные вопросы

  • Нет связанных вопросов^_^