
以下のようなシートがあります。ワークブック B のすべての数式をワークブック B への参照なしで A にコピーしたいです。
今それを実行すると、すべての数式にワークブック 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"))
ワークブック A シート a:
ワークブックBシートB
数式バーに移動して、ワークブック B から実際の数式を A にコピーすると、期待どおりの結果が得られますが、これらすべての数式を見るとわかるように、面倒な作業になることがあります。
答え1
Excel 2010でテスト済み
表の任意の部分を A から B にコピーすると、A を参照することになります。表全体をコピーすると (ヘッダーを含める必要があります)、数式に別の表または別のシートへの参照がない限り、A を参照することはありません。表の外部にあるが同じシート上の範囲を参照する表内の数式は、B を適切に参照します。
解決策 (あまり良い方法ではありませんが) は、テーブルを B にコピーする前に、別のテーブルまたはシートを参照する数式がテーブルに含まれていないことを確認することです。これは、A のデータを同じシートに移行することで実行できます。
コメントで述べたように、Ctrl H
シートへのすべての参照を検索し、null 文字列に置き換えることは、貼り付け後に問題を解決する簡単な方法です。
コメントには、名前付き範囲が A を指している可能性については触れられていませんが、リンクが壊れている可能性が非常に高いです。ワークシート スコープ (ワークブックではなく) を使用することで、この問題を軽減することはできますが、B に貼り付けた後、名前マネージャーで編集/削除する必要がある可能性が高くなります。
私は VBA に興味があり、最善の解決策は A で元のレポートを生成するコードを記述することだと考えています。これにより、A から B にコピーする必要がなくなり、必要に応じてプログラムを実行するだけで新しいレポートを生成できます。
答え2
あまりエレガントではありませんが、参照をコピーできるようにしてから、編集/置換を使用してすべて削除するのはどうでしょうか?