Редактировать ячейки, на которые есть ссылки, в главном рабочем листе из производного рабочего листа в Excel

Редактировать ячейки, на которые есть ссылки, в главном рабочем листе из производного рабочего листа в Excel

Я использую Excel 2010 и у меня есть два рабочих листа. Лист A содержит столбец уникального идентификатора и другие столбцы со значениями. Лист B содержит список идентификаторов и других полей, для которых я использую формулу VLOOKUPдля заполнения из значений в Листе A.

В идеале я хотел бы редактировать значения на листе B и обновлять их на листе A, но это не представляется возможным - когда я пытаюсь это сделать, я просто перезаписываю свою =VLOOKUPформулу необработанными данными. Я прав, что нет способа сделать это?

Или есть ли способ щелкнуть или как-то автоматически перейти из ячейки, содержащей VLOOKUPформулу на листе B, в исходную ячейку на листе A?

Моя общая цель — хранить все необработанные значения на листе A и ссылаться на них только с листа B, не выполняя ручной поиск на листе A для обновления данных.

решение1

Для реализации вашего альтернативного запроса вы можете использовать функцию HYPERLINKсовместно сVLOOKUP

Предполагая, что Sheet Aсодержит идентификаторы в столбце A и значения в столбце B, замените VLOOKUPна

=HYPERLINK("#'Sheet A'!B"&MATCH(A2,'Sheet A'!$A:$A,0),VLOOKUP(A2,'Sheet A'!$A:$B,2,0))

Это не только отобразит VLOOKUPрезультат, как раньше, но и создаст гиперссылку на найденное значение на листе A при щелчке по ячейке.

решение2

Основная проблема, с которой вы сейчас сталкиваетесь, — это циклические ссылки.

VLOOKUP — это не A = Bсвязь, а скорее if A then Bсвязь (где A и B — массивы значений, как в вашем случае). Другими словами, она однонаправленная, и A не зависит от B. Из того, что я вижу, я не думаю, что Excel имеет прямой способ обработки циклической ссылки исключительно с использованием пользовательского интерфейса, поскольку формула не может быть сохранена в бэкэнде (если только вы не используете макрос).

Один из способов — иметь относительные значения в A и B, а также третий лист (или несколько дополнительных столбцов) для некоторых условных ячеек, например, лист A содержит относительное значение (которое может быть новым обновленным значением в B или исходным значением в C), лист C содержит исходные значения, а лист B содержит ячейки для отражения значений И обновленных значений.

На листе B создайте новый столбец для каждого ссылаемого столбца. Это будет столбец значений обновления. На листе C сохраните исходные значения. На листе A используйте условие, которое говорит «если поле значений обновления на листе B имеет значение, используйте его, иначе обратитесь к листу C». Столбец отраженных значений на листе B по-прежнему будет ссылаться на лист A, поэтому он будет динамически изменяться, если столбец обновления будет иметь новые значения. Обратите внимание, что это на самом деле не решает проблему циклической ссылки, а просто обходит ее.

Однако если вам нужно, чтобы на листе А были фиксированные значения, а не относительные, вам придется либо скопировать, paste as valueлибо использовать что-то вроде:

ActiveSheet.Range("A1:D1000").Value = ActiveSheet.Range("A1:D1000").Value

в VB для преобразования относительных значений (с формулами) в фиксированные значения.

Связанный контент