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

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

У меня есть лист, как показано ниже. Я хочу скопировать все формулы из книги B в A, но без ссылки на книгу B.

когда я делаю это сейчас, я получаю ссылку во всех моих формулах на рабочую книгу B. Но мне нужны только формулы, но привязанные к моей текущей рабочей книге (рабочая книга A)

Если я копирую простую формулу суммы, она работает, но когда формула включает таблицу, ссылка ведёт на книгу B.

вот пример формулы,

=IF(Start!$D$8="Weekly",0.000001*SUMIFS(tbl_database[Value],tbl_database[Node],H$2,tbl_database[Type],$A14,tbl_database[Accounting],$C$1,tbl_database[Filter],"No"),0.000001*SUMIFS(tbl_database[Value],tbl_database[Node],H$2,tbl_database[Type],$A14,tbl_database[Accounting],$C$1,tbl_database[Source],"<>stack",tbl_database[Source],"<>overflow"))

рабочая тетрадь А Лист а:

введите описание изображения здесь

рабочая тетрадь B лист B

введите описание изображения здесь

Если я перейду к строке формул и скопирую реальную формулу из книги B в A, я получу ожидаемый результат, но, как вы видите со всеми этими формулами, это может быть утомительно.

решение1

Протестировано в Excel 2010

Копирование любой части таблицы из A в B будет ссылаться обратно на A. Копирование всей таблицы (должно включать заголовки!) не ссылается обратно на A - если только формула не ссылается на другую таблицу или другой лист. Формулы в таблице, которые ссылаются на диапазон вне таблицы, но на том же листе, будут правильно ссылаться на B.

Решение (хотя и не очень хорошее) — убедиться, что в таблице нет формул, ссылающихся на другую таблицу или лист, перед копированием в B. Это можно сделать, перенеся данные из A на тот же лист.

Как упоминалось в комментариях, Ctrl Hбыстрый способ решения проблемы после вставки — найти все ссылки на лист и заменить их на нулевую строку.

В комментариях не упоминается возможность именованных диапазонов, указывающих обратно на A, что, скорее всего, связано с неработающими ссылками. Вы можете попытаться смягчить это, используя область действия рабочего листа (в отличие от рабочей книги), но, скорее всего, вам все равно придется редактировать/удалять их в менеджере имен после вставки в B.

Я увлекаюсь VBA и считаю, что лучшим решением будет написать код, который генерирует исходный отчет на языке A. Это устранит необходимость копирования из A в B, просто запустите программу для генерации нового отчета по мере необходимости.

решение2

Не очень элегантно, но... почему бы не разрешить копировать ссылки, а затем не использовать функцию редактирования/замены, чтобы удалить их все?

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