VLOOKUP () для таблицы на другом листе с ошибкой # N / A

437
Nao

У меня 2 таблицы, ежедневный вход

daily entry

и резюме

summary

Моя формула в BQ20сводной таблице в настоящее время:

=IF(VLOOKUP(BQ5,Table11[DATE],1,FALSE),VLOOKUP('SUMMARY (NEW)'!B20,'DAILY ENTRY'!A:H,8,FALSE),"") 

Table11[DATE]это просто столбец Aв таблице ежедневных записей.

Я пытаюсь подобрать COSTи QTYзначения из таблицы ежедневного ввода в сводной таблице. Однако, когда я использую приведенную выше формулу, я получаю #N/Aошибку.

Пытаюсь сделать эту работу уже неделю. Я использую неправильную формулу?

2

1 ответ на вопрос

0
robinCTS

VLOOKUP()работает, ища свой первый аргумент в первом столбце диапазона, указанного во втором аргументе.

Первый столбец вашего второго аргумента должен быть ITEMстолбцом, а не первым столбцом таблицы.

Исправленная формула для BQ20:

=IF(VLOOKUP(BQ5,Table11[DATE],1,FALSE),VLOOKUP('SUMMARY (NEW)'!B20,Table11[[ITEM]:[COST]],5,FALSE),"") 


Однако эта формула все еще в корне ошибочна. Он не подберет правильный предмет на основе даты, поскольку между ними нет и не может быть ссылки VLOOKUP(). (Попытка сделать это - то, что привело к #N/Aошибке.)

Одно решение для этого использует массивы и SUMPRODUCT()функцию:

=SUMPRODUCT(Table11[COST]*(Table11[DATE]=$BQ$5)*(Table11[ITEM]=$B20)) 

Предостережения:

  • Эта простая формула работает правильно, только если значения, которые необходимо найти, являются числами.

  • Это работает правильно, только если элементы уникальны для каждой даты.

Оба эти ограничения можно преодолеть с помощью более сложных версий формулы.

РЕДАКТИРОВАТЬ:

Как обнаружил OP, есть формула, эквивалентная приведенной выше, которая использует SUMIFS()вместо SUMPRODUCT():

=SUMIFS(Table11[COST],Table11[DATE],$BQ$5,Table11[ITEM],$B20) 

Те же предостережения применимы и к этой формуле.



Существует альтернативное решение, которое делает использование VLOOKUP(), но это требует вспомогательного столбца.

Добавьте вспомогательный столбец в таблицу ежедневных записей:

Worksheet Screenshot

Введите следующую формулу во все ячейки Helperстолбца:

=Table11[[#This Row],[DATE]]&Table11[[#This Row],[ITEM]] 

Введите следующую формулу в BQ20:

=VLOOKUP($BQ$5&$B20,Table11[[Helper]:[COST]],9,FALSE) 

Обратите внимание, что эта формула корректно работает с нечисловыми значениями и неуникальными элементами, как есть.

Спасибо за все предложения. Я попытался с помощью вспомогательного столбца, но, похоже, возникла ошибка. Несколько парней на работе и я играли с этим, и мы в итоге получили формулу, которая сработала '= SUMIFS (' DAILY ENTRY '! $ H: $ H,' DAILY ENTRY '! $ A: $ A,' ' РЕЗЮМЕ (НОВОЕ) '! LR $ 5: LS $ 5,' ЕЖЕДНЕВНЫЙ ВХОД '! $ D: $ D,' РЕЗЮМЕ (НОВОЕ) '! $ B20)' Nao 5 лет назад 0
@ Нао Да. По сути, это та же формула, что и в версии SUMPRODUCT (), которую я предоставил. Я добавил в ответ вариант `SUMIFS ()` (конечно, используя более простые для понимания структурированные ссылки). Я удивлен, что вы не смогли заставить работать формулу `SUMPRODUCT ()`. (Я также удивлен, что вы не смогли заставить работать версию вспомогательного столбца ¯ \\ _ (ツ) _ / ¯). Небольшое замечание - кроме использования структурированных ссылок, ваша формула может быть улучшена путем удаления ненужных текущих ссылки на листы и `LS $ 5`:` = SUMIFS («ЕЖЕДНЕВНЫЙ ВХОД»! $ H: $ H, «ЕЖЕДНЕВНЫЙ ВХОД»! $ A: $ A, LR $ 5, «ЕЖЕДНЕВНЫЙ ВХОД»! $ D: $ D, $ B20 ) `. robinCTS 5 лет назад 0

Похожие вопросы