Использование структурированных ссылок с таблицами Excel

Надеюсь, название моей проблемы правильное. Попробую привести пример. Допустим, у меня есть 2 таблицы («table1», «table2»), они идентичны по структуре (скажем, 3 столбца «FirstName», «LastName», «Age»).

Если я хочу получить данные в определенной таблице (возраст человека в таблице 1), я знаю, что могу сделать что-то вроде vlookup или index (match ()). но теперь я перехожу к сложной части, я хочу, чтобы имя таблицы было указано в ячейке, чтобы при перетаскивании формулы имя таблицы изменилось:

Age LastName    FirstName
18  Lname1      Fname1
18  Lname2      Fname2
20  Lname3      Fname3


Age LastName    FirstName
22  Lname4       Fname1
22  Lname5      Fname2
21  Lname6      Fname3

so, if I want to get the age of Fname2 from Table1 I would do something like this:

= ИНДЕКС (Таблица1 [Возраст], ПОИСКПОЗ ("Имя2", Таблица1 [Имя], 0))

НО, я хочу, чтобы имя таблицы находилось в другой ячейке, чтобы я мог перетащить формулу. введите имя таблицы в ячейку C3, например, и выполните что-то вроде:

= ИНДЕКС (C3 [Возраст]; ПОИСКПОЗ ("Fname2"; C3 [FirstName]; 0))

Это явно не работает, но есть ли способ сделать это?

Заранее спасибо, Ними


person Nimi    schedule 28.06.2015    source источник
comment
Вы имеете в виду, что хотите иметь возможность воспроизвести формулу, относящуюся к Table1 (например, =INDEX(Table1[Age],MATCH("Fname2",Table1[FirstName],0))), чтобы воспроизведенная версия ссылалась на другую таблицу, такую ​​как Table2? И вы хотите указать, что имя другой таблицы было введено как бит текста в ячейку C3?   -  person DMM    schedule 28.06.2015
comment
да, в моем примере c3 имеет текст table1, а c4 будет table2.   -  person Nimi    schedule 28.06.2015


Ответы (1)


Я предполагаю, что существует несколько таблиц с идентичной структурой, и вам нужна формула общего назначения, которая будет работать с любой таблицей, указанной по имени в ячейке C3.

  1. C3[Age] бессмысленно. Вы хотите объединить содержимое C3 с текстовой строкой "[AGE]" - это дает вам значимую текстовую строку для работы.
  2. Затем узнайте о функции INDIRECT. Это позволяет вам указать часть рабочего листа, такую ​​как ячейка, диапазон и т. Д., В виде текстовой строки, но обрабатывает ее как саму ячейку, диапазон и т. Д.
  3. Next, find about array formulae. This is because, if you have successfully navigated steps 1. and 2. above, you'll find that INDIRECT doesn't work when its argument (the thing in brackets) is trying to deliver a range of cells (rather than just a single cell). In this case it needs to be specified as an array formula instead of just being a simple formula (which is the default for Excel formulae)
    1. Once you have done all this, you will have the tools to know what you should be using instead of C3[Age] and C3[FirstName] in the formula you stated in your question.

Вы можете достаточно легко узнать обо всех перечисленных выше терминах и функциях из справочной системы Excel и / или из онлайн-поиска. Я мог бы, конечно, просто дать вам подходящую формулу, но что тогда вы узнали бы? Под лежачий камень вода на течет.

person DMM    schedule 28.06.2015