Я хочу иметь 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)
Это также не будет работать.
Как имя таблицы для использования может быть определено динамически?
Спасибо!
microsoft-excel
Джордж
источник
источник
"Rnd_"+A1
которая должна быть"Rnd_",A1
&
и нет+
. Так же"Rnd_" & A1
будет производить вашу строку.Ответы:
И инженер Тост, и Байрон Уолл дали вам правильный ответ.
concatenate()
Функция будетconcatenate("Rnd_", $A$1)
или вы могли бы просто сделать этот аргумент"Rnd_"&$A$1
Я бы добавил одну вещь. Если вы оставите
A1
как есть, он будет обрабатываться как относительная ссылка. Это означает, что когда вы копируете и вставляете формулу, она будет ссылаться на ячейку в новой позиции относительно того, где она была в старой позиции. Для того, чтобы сохранить точку формулы уA1
вас нужно использовать $, поэтому$A$1
. Можно также назвать ячейку, в которой вы хотите выбрать значение и сделать это"Rnd_"&ValName
, чтобы ссылка всегда указывала на эту одну ячейку ... То есть, если вы не хотите, чтобы она была относительной.Последний совет. Если у вас очень большие наборы данных, вы хотите, чтобы все было как можно проще, так как это снизит накладные расходы. Создайте ячейку конкатенации рядом с вашей динамической ячейкой, произнесите
B1
и сделайте ее,="Rnd_"&$A$1
а затемvlookup
укажите аргументB1
, в противном случае вы можете в конечном итоге вызывать функцию конкатенации в Excel тысячи раз, когда в этом нет необходимости, что замедляет выполнение вашего запроса. расчеты.источник