Использование числа в ячейке для создания ссылки на ячейку

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

У меня есть лист, в котором каждая строка содержит 8 ячеек соответствующих данных.

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

Например, в Sheet1 у меня могло бы быть следующее (рис. 1):

     |  A  |  B  |  C  |  D  |  E  |  F  |  G  |  H
-----+-----+-----+-----+-----+-----+-----+-----+-----
 101 | Dep | 700 | Sta | 100 | Sta | 300 | Dep | 900

То, что я хочу достичь на листе 2, набрав номер строки в 1 ячейку, состоит в том, чтобы иметь данные в этих 8 ячейках, скопированных ниже, например (рис. 2):

     |  A  |  B  |  C  |  D  |
-----+-----+-----+-----+-----+
  1  | "Row Number"          |
-----+-----+-----+-----+-----+
  2  | =A# | =B# | =D# | =C# |
-----+-----+-----+-----+-----+
  3  | =E# | =F# | =H# | =G# |
-----+-----+-----+-----+-----+

И да, я знаю, что эти формулы выше не ссылаются на другой лист - это было для экономии места.

Что, если использовать примерную строку выше, должно выглядеть так (рис. 3):

     |  A  |  B  |  C  |  D  |
-----+-----+-----+-----+-----+
  1  | 101                   |
-----+-----+-----+-----+-----+
  2  | Dep | 700 | 100 | Sta |
-----+-----+-----+-----+-----+
  3  | Sta | 300 | 900 | Dep |
-----+-----+-----+-----+-----+

Итак, в этом примере выше (рис. 3), что мне нужно добавить в формулу в ячейках A2-D2 и A3-D3, чтобы автоматически использовать номер в A1 как часть ссылки на ячейку для печати данных с другого листа.

Это имеет смысл? Надеюсь, потому что у меня более 300 строк, чтобы войти в мой 1-й лист и еще 70 строк x 7 блоков столбцов на втором листе.

Наконец, я просто хочу сказать, что хочу избегать языков программирования, таких как VBA, где это возможно.

Ответ 1

Проверьте функцию INDIRECT().

Для ячейки A2 в вашем примере на втором листе введите:

=INDIRECT("Sheet1!"&"A"&$A$1)

Разверните эту формулу для применения к другим целевым ячейкам, изменив часть "&" A для ссылки на столбцы B, C, D и т.д. из Sheet1 по мере необходимости в вашей сетке в следующем примере:

=INDIRECT("Sheet1!"&"B"&$A$1)
=INDIRECT("Sheet1!"&"C"&$A$1)
=INDIRECT("Sheet1!"&"D"&$A$1)

Эти формулы будут ссылаться на выбранный вами номер строки в ячейке A1 и вытаскивать связанные данные из Sheet1 в Sheet2.

Ответ 2

Вы можете сделать это, используя функцию INDIRECT

Returns the reference specified by a text string. 
References are immediately evaluated to display their contents. 
Use INDIRECT when you want to change the reference to a cell within a 
formula without changing the formula itself.

http://office.microsoft.com/en-gb/excel-help/indirect-HP005209139.aspx