Когда я застревают в вложенной функции ад, как этот, я хотел разбить формулу с некоторое пустое пространство. Это делает очень легко пятнистость вопросов:
=if(
B2=1,
VLOOKUP(G2,'[Jan_Agent Hierarchy.xls]Sheet1'!$L$1:$U$4236,10,FALSE),
if(
B2=2,
VLOOKUP(G2,'[feb_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$2:$U$4214,10,FALSE),
if(
B2=3,
vlookup(G2,'[mar_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE),
if(
B2=4,
VLOOKUP(G2,'[apr_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE),
if(
B2=5,
'[may_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4234,10,FALSE),
if(
B2=6,
VLOOKUP(G2,'[jun_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4310,10,FALSE),
if(
B2=7,
VLOOKUP(G2,'[jul_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4322,10,FALSE),
if(
B2=8,
VLOOKUP(G2,'[aug_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4288,10,FALSE)
)
)
)
)
Как я уже говорил в комментариях, вам не хватает 3 закрывающих скобок и ваш B2=5
if
заявления отсутствует ВПР во втором «значение, если оно истинен» аргумент.
Попробуйте вместо этого:
=if(
B2=1,
VLOOKUP(G2,'[Jan_Agent Hierarchy.xls]Sheet1'!$L$1:$U$4236,10,FALSE),
if(
B2=2,
VLOOKUP(G2,'[feb_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$2:$U$4214,10,FALSE),
if(
B2=3,
vlookup(G2,'[mar_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE),
if(
B2=4,
VLOOKUP(G2,'[apr_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE),
if(
B2=5,
Vlookup('[may_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4234,10,FALSE),
if(
B2=6,
VLOOKUP(G2,'[jun_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4310,10,FALSE),
if(
B2=7,
VLOOKUP(G2,'[jul_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4322,10,FALSE),
if(
B2=8,
VLOOKUP(G2,'[aug_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4288,10,FALSE)
)
)
)
)
)
)
)
Или:
=if(B2=1,VLOOKUP(G2,'[Jan_Agent Hierarchy.xls]Sheet1'!$L$1:$U$4236,10,FALSE),if(B2=2,VLOOKUP(G2,'[feb_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$2:$U$4214,10,FALSE), if(B2=3,vlookup(G2,'[mar_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE), if(B2=4,VLOOKUP(G2,'[apr_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE),if(B2=5,Vlookup('[may_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4234,10,FALSE),if(B2=6,VLOOKUP(G2,'[jun_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4310,10,FALSE),if(B2=7,VLOOKUP(G2,'[jul_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4322,10,FALSE),if(B2=8,VLOOKUP(G2,'[aug_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4288,10,FALSE))))))))
Наконец, вы можете рассмотреть вопрос о переходе на INDIRECT()
вместо вложенных МСФ. Вся ваша формула может быть уменьшена до:
=vlookup(G2, INDIRECT("[" & TEXT(DATE(2000,B2,1),"mmm")) & "_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$5000"), 10, False)
Который является уродливым в своем собственном праве, но получает вас из вложенной if()
ад. Indirect()
изменяет строку на диапазон. Мы используем номер в B2
, чтобы определить аббревиатуру месяца, затем используйте это для ссылки на лист и диапазон внутри Indirect()
. Затем выполните vlookup в этом диапазоне.
Одно из предостережений с этим изменением заключается в том, что вы заходите в свой файл Jan и меняете имя вкладки Sheet1 равным Agent Hierarchy Details
, как и у других файлов месяца. Одна из приятных вещей об этом изменении заключается в том, что с добавлением новых месяцев книги формула автоматически захватывает их.