2

Я хочу иметь VLOOKUP, где таблица, которую я использую, определяется динамически .... например:

If I have tables named Rnd_1, Rnd_2, Rnd_3...

Я хочу иметь возможность выбирать, какую таблицу будет использовать VLOOKUP, основываясь на числе ...

I have tried =VLOOKUP("value",CONCATENATE("Rnd_"+A1),2,FALSE) where A1 has a valid numeric value.
Это не будет работать.

I also tried =VLOOKUP("value",INDIRECT(CONCATENATE("Rnd_"+A1)),2,FALSE)
Это также не будет работать.

Как имя таблицы для использования может быть определено динамически?

Спасибо!

1 ответ1

1

И инженер Тост, и Байрон Уолл дали вам правильный ответ. Функция concatenate() будет concatenate("Rnd_", $A$1) или вы можете просто сделать этот аргумент "Rnd_"&$A$1

Я бы добавил одну вещь. Если вы оставите A1 как есть, он будет обрабатываться как относительная ссылка. Это означает, что когда вы копируете и вставляете формулу, она будет ссылаться на ячейку в новой позиции относительно того, где она была в старой позиции. Чтобы сохранить точку формулы в A1 вам нужно использовать $, поэтому $A$1 . Вы также можете назвать ячейку, в которой вы хотите выбрать значение и сделать это "Rnd_"&ValName , чтобы ссылка всегда указывала на эту одну ячейку ... Это если вы не хотите, чтобы это было относительно.

Последний совет. Если у вас очень большие наборы данных, вы хотите, чтобы все было как можно проще, поскольку это снизит накладные расходы. Создайте ячейку конкатенации рядом с вашей динамической ячейкой, скажем, B1 и сделайте ее ="Rnd_"&$A$1 а затем укажите аргумент vlookup на B1 , в противном случае вы можете в итоге вызвать функцию конкатенации в Excel несколько раз, если Не нужно, замедляя выполнение ваших расчетов.

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