Использование числа в ячейке для создания ссылки на ячейку
То, что я хочу сделать, может быть лучше достигнуто с помощью базы данных, однако у меня очень ограниченный опыт работы с ними, и мне приходится часто менять информацию.
У меня есть лист, в котором каждая строка содержит 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