Excelにリンクされたデータ式は、ブックを開くと#REFに変わります


9

これは何度も私に起こりました(ただし常にではありません)。それは非常にイライラさせられ、なぜこれを行うのか私にはわかりません。

A.xlsには、B.xls Sheet1にリンクする数式が含まれています。私はA.xlsに取り組んでいます。B.xlsを開くことにしました。一度実行すると、Sheet1へのすべての参照が#REFに変わります。

すなわち。

='C:\..\[B.xls]!Sheet1'!A1

になる

='C:\..\[B.xls]!#REF'!A1

そして当然ながら、以前は正しかったすべての値が#REFを返すようになりました。

最後に保存したバージョンのA.xlsを再度開かないと元に戻せないので、これは絶対にイライラします。A.xlsはB.xlsのいくつかの異なるワークシートを参照しているため、検索と置換も理想的ではありません。

何かアイデアはありますか?:( Excel 2010を実行しています。

回答:


2

同じ問題が発生しました。私はOffice 2010です。Excelファイルは共有ドライブ(NAS)に保存されました。

解決策:ファイル>オプション>セキュリティセンターに移動します。右側にある[セキュリティセンターの設定]をクリックします。セキュリティセンターウィンドウの左側で、[保護されたビュー]をクリックし、右側で、インターネットからのファイルに対して[保護されたビューを有効にする]をオフにします。

今私の#REF!問題が解決しました。


2

この問題を回避する1つの方法:テキストで参照されるファイル名とシート名に
使用INDIRECT()します。

例:
Z1を'C:\..\[B.xls]!Sheet1' (引用符で?テストされていません)にします。
次に=INDIRECT(Z1&"!A1")、そのシートのセルA1を参照する必要がある場所を使用します。

このINDIRECT機能は、セカンダリExcelファイルを開いている場合にのみ機能します。閉じられると、それらのINDIRECT参照はすべて#REFになります。


INDIRECTは、オープン
ワークブックで

ただし、「#REF」にはなりません。
Hannu

はい、他のワークブックを閉じたら、自分で試してください
PeterH

おそらく「#REF」を表示しますが、リンク付きの式はOPの説明どおりに変更されません。
Hannu

1
Excelには多くの特異性があります。
Hannu

0

Excelのほとんどの数式は、閉じたブックを参照している場合、数式を更新しません。これで、数式が参照するワークブックを開くと、Excelはすぐに更新しようとします。

あなたの問題は、B.xlsが変更され、B.xlsを開いたときにA.xlsの数式が数式を更新しようとしていることだと思います。A.xlsの数式が最後に計算されてから(シートの名前が変更された、または明示的に削除されたなど)、B.xlsに変更があったため、A.xlsの数式は前の参照を見つけることができないため、を返し#REF!ます。

これを回避するには2つの方法があると思います。

  1. 値をコピー/貼り付けして、A.xlsの数式を削除します。これにより、A.xlsの更新が、シート内のB.xlsおよびその他の数式の変更から保護されます。ただし、これ自体が欠点です。
  2. B.xlsへの変更が、A.xlsの数式を提供するもののシートの削除、名前の変更、または行/列の削除を含まないことを確認してください。

応答をありがとう、ジェリー。参照されたシートはまだ存在しています。また、私の参照のほとんどは、算術演算ほどの値ではなく、単に値に対するものでした。Excelは、B.xlsを閉じていても値を取得できました。ありがたいことにそれはほとんどの場合発生しません-しかし、私がそれをしている時があったとしても、しばらくの間ワークブックを保存していませんでした。
csg 2013

0

ジェリーのコメントを助けるため。A.xlsを閉じると、式の値が記憶されます。次に、ブック名やシート名などのB.xlsを変更すると、A.xlsが新しいデータで自身を更新しようとしたときに、参照名が変更されているため、A.xlsが見つかりません。

たとえば、数式が= '[B.xls] Sheet3'! B.xlsの値を持っています。データ保存2013年8月9日を開くとすぐに、A.xlsはデータが存在しないことを認識し、データを失います。

この問題を回避するには、式のリンクを更新してください。これですべて解決するはずです。


私の場合、リンクを更新した後に発生しました。参照をB.xlsからC.xlsに変更しました-同じ構造のワークブックは異なる値です。
csg 2013

リンクを更新したときに、シート名も更新しましたか?これは少々軽蔑的に聞こえるかもしれませんが、お願いします。
Bmize729 2013

0

解決策は、リンクを指定したファイルを開いて、に移動することData > Edit Links > Open Sourceです。これにより、#refエラーを発生させることなくソースが開きます。

もう1つの方法は、リンクありとリンクなしの2つのバージョン保持することです。リンクなしのバージョンはで作成できますData > Edit Links > Break Link

シート名を作るのはExcelのバグだと思います#ref


0

問題は、トラストセンターにあります。ネットワークドライブで作業する場合は、「信頼できる場所への接続を許可する」をチェックする必要があります。これにより、リンクが失われるのを防ぎます。


0

リンクが#REFに変更されたようです。ターゲットスプレッドシート(​​B.xls)は信頼されていないためです。FILE-> Options-> Trust Center-> Trust Center Settings-Trusted Locationsに移動し、B.xlsを含むフォルダーを追加することで、問題の発生を止めることができました。おそらく「信頼済みドキュメント」にB.xlsを追加して同じ結果を得ることができますが、私はそのテストを実行していません。


答えが正しかったuser524256のおかげで、私は正しい道に進みました。
Greg B

0

セルのフォーマットを数値に変更します。セルのフォーマットのリストにリストされているテキストやその他のものを使用できます。これは、Excelでセルまたは選択したセルを右クリックして実行できます。


0

私の場合、Excelを開くたびに数式が壊れるという同様の問題がありました。数式が同じExcelファイルの別のシートのテーブルを参照しています。

数式が参照されているテーブルの列名の前のスペースを削除すると、問題が解決しました。

問題があなたの問題と同じであるかどうかはわかりませんが、おそらく役立つでしょう。


0

上記から有用なポインタをピックアップすると、これは私たちのネットワーク上のリンクされたファイルが開かれたときに参照エラーのあるファイルに対して私にとってうまくいきました:

[オプション]> [セキュリティセンター]> [セキュリティセンターの設定]> [信頼できる場所]> [ネットワークで信頼できる場所を許可する(推奨されません)]の横のボックスをオンにします。

信頼エラーが修正されました!

ありがとうございました。


0

[ネットワーク上の信頼できる場所を許可する(推奨されません)]設定とは別に、Excelファイルの種類がどちらも新しいファイルの種類である.xlsxであることを確認します。「.xlsx」スプレッドシートを検索すると、「。xls」スプレッドシートが#REF問題を取得していたという問題がありました。


-1

解決策は、[ファイル]> [オプション]> [式]に移動し、[ テーブルに入力されたデータが無効です] チェックボックスをオフにすることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.