Как получить данные из одной ячейки, чтобы изменить функцию других ячеек

289
user197060

У меня есть 10+ рабочих листов с одинаковыми макетами, которые содержат данные из разных дней. Я пытаюсь создать "SimpleSheet", который извлекает только определенные данные из однодневного листа в хорошем макете. Пока я делаю это вручную:

A1 | ='DaySheet1'.A1 A2 | ='DaySheet1'.A2 

То, что я хотел бы сделать, это изменить функции вместо того, чтобы там, где написано, что DaySheet говорит «вытащить лист, который я определил в ячейке SimpleSheet B1»

B1 | *whatever sheet* A1 | ='B1'.A1 A2 | ='B1'.A2 
0

1 ответ на вопрос

2
mcalex

Используйте Indirect.

Indirectпозволяет использовать строку в качестве ссылки на местоположение листа. Таким образом, если для содержимого ячейки A1 задано «DaySheet», вы можете использовать формулу =Indirect(A1)! B1, и результатом будет то, что находится в ячейке B1 на листе DaySheet.

Со страницы поддержки :

Вы можете ссылаться на каждый атрибут ссылки (имя рабочей книги, имя рабочей таблицы и ссылка на ячейку) по отдельности, используя функцию INDIRECT, чтобы создать пользовательскую динамическую ссылку с ссылками на ячейки рабочей таблицы в качестве входных данных.

РЕДАКТИРОВАТЬ: Может потребоваться упоминание о том, как справиться с ссылкой на текущую ячейку.

Чтобы перейти от листа к ячейке, вы можете либо использовать строковую ссылку (например, «A1») concatenated для косвенной ссылки, либо использовать addressфункцию, чтобы сделать это динамически. Ниже приведен пример обоих:

Строка:

= INDIRECT (CONCATENATE ($ A $ 1, "!", "B1"))

Динамический:

= НЕПРЯМОЙ (СОГЛАСОВАТЬ ($ A $ 1, "!", АДРЕС (ROW (), COLUMN (), 4)))

Первый самый простой, когда вы не копируете слишком много ячеек. Более чем несколько, и я бы выбрал второй вариант.

MS справка по функции адреса .

Небольшое замечание: ссылки на другие рабочие книги, основанные на `INDIRECT`, будут работать ** только ** в случае открытия рабочей книги. Подробнее: http://stackoverflow.com/a/14788167/2043977 Peter L. 11 лет назад 0
A1 установлен на «DaySheet». B1 = непрямой (A1) Ошибка разбора. B1 = косвенный ("a1") возвращает DaySheet. B1 = косвенный («A1»)! B1 Ошибка разбора. = косвенный ("'DaySheet'! B1") Возвращает правильную ячейку. = косвенный ("DaySheet")! B1 Ошибка разбора. user197060 11 лет назад 0
@ user197060 отредактировано mcalex 11 лет назад 0

Похожие вопросы