Я создаю рабочую книгу (электронную таблицу), в которой рабочие листы помечены по месяцам; например, «Январь-12», «Дек-12» и так далее. Мне нужен VLOOKUP, чтобы иметь возможность изменять то, где он выглядит, основываясь на названии любого заданного листа, без необходимости каждый раз менять формулу. Я нашел этот ответ, и он отлично работает для VLOOKUP, которые есть в разных рабочих книгах, которые есть у меня, но я не могу заставить его работать в той же книге.

=VLOOKUP(A1, INDIRECT(CONCATENATE("'[Datafile.xlsx]",B1,"'!$A1:F500")), 3, False)

1 ответ1

1

Прежде всего,

CONCATENATE( вещь 1 , вещь 2 , вещь 3 )

может быть сокращено

                      вещь 1 & вещь 2 & вещь 3

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

Ваш вопрос кажется немного расплывчатым - вы не сказали, когда хотите сослаться на одну и ту же книгу, а когда хотите получить доступ к другой.  Так что заполните бланк.  И поскольку у вас, похоже, работает часть VLOOKUP , вопрос сводится к ссылочной части.  Другими словами, как адаптировать

INDIRECT(CONCATENATE("'[Datafile.xlsx]", B1, "'!$A1:F500"))

который мы можем сократить до

INDIRECT("'[Datafile.xlsx]" & B1 & "'!$A1:F500")

Так что постарайтесь

INDIRECT("'" & IF( условие , "", "[Datafile.xlsx]") & B1 & "'!$A1:F500")

где условие - это условие, при котором вы хотите использовать текущий файл.  Словом, объединить одну кавычку ('), условно имя рабочей книги (в скобках) или нет, затем имя листа (я полагаю, это то, что в B1), вторую кавычку, восклицательный знак и диапазон ячеек.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .