EXCELについて教えてください。

クライアントPCにあるファイルより、ネットワーク上のファイルを、VLOOKUP関数で参照していました。
が、ネットワーク上のファイルが消失してしまいました。
しかしながら、VLOOKUP関数において、期待通りの値が得られています。

参照する側のEXCELが、どこかに参照先のテーブルを保持しているのでしょうか?
その場合、テーブルの復元は可能でしょうか?

クライアントPC WinXP
サーバー WinNT4.0
ネットワークデータ ネットワーク接続可能なHDD
です。
お教えいただく際に、その他環境が必要でしたら、コメント欄で
お申し付けくださいませ。よろしくお願いいたします。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2006/12/17 17:20:33
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:ardarim No.4

回答回数897ベストアンサー獲得回数145

ポイント100pt

Microsoft Excel File Format(Openoffice.orgが解析したもの)によれば、外部ファイル参照の場合は、参照範囲のセル内容がローカルxlsファイル内にキャッシュされるようです。

もちろんすべて読破したわけではないので流し読みですが、

5.10 Internal and External References

に参照に関しての仕様が書かれているようです。外部ファイル参照に関しては、参照ファイル情報(EXTERNSHEET)とともに、キャッシュされた行数(XCT)、キャッシュされたセル内容(CRN;行単位でキャッシュされる)が含まれます。


つまり、テーブルの内容はすべてローカルxlsファイル(VLOOKUP.file)内に保存されているはずですが、それを意図的に取り出す手段は用意されていないのではないかと思います。


上記仕様書にしたがってxlsファイルを手動で解析すれば、テーブルを復元することは不可能ではないでしょうが、途方もない作業ですね...

id:taisin0212

ardarim様、ありがとうございます。

『VLOOKUP.fileを開く際、リンク元の更新を行わない』を試し、新たにVLOOKUP関数を記述してみましたが、『値の更新』を要求されました。

キャッシュされた内容を参照するのにも、制限がかかっているのかもしれません。

(VLOOKUPで指定されたColumnのみキャッシュされている等)

2006/12/17 12:39:08

その他の回答4件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント20pt

どのうよな数式を記述しているのでしょうか?

また、手動計算等には なっていないでしょうか?

値を変えてもそれにあう値が取得されるということでしょうか?

VLOOKUP関数で、範囲を指定しますがその範囲の値は、取得できるのでしょうか?

たとえば

VLOOKUP(1,A:D,・・・・

とあった場合、

=A1

とやって表示されるのかなど 確認したらいいでしょう。

id:taisin0212

taknt様、ありがとうございます。

VLOOKUP関数を使うファイル(以降、VLOOKUP.fileと略します)を開くと、リンク先となるネットワーク上のファイル(以降、TBL.fileと略します)が存在しないので、リンクの編集を要求されます。

そこで、リンク先の変更等をせず、『閉じる』ボタンをクリックすることで終了しております。


又、ご指摘をいただいたように、新たにVLOOKUP.file上で、TABLE.fileをVOOKUP関数で参照しようとすると、『値の更新』なるウィンドウが開き、(本来のリンク先であるべき)TABLE.fileを設定するよう要求されます。


しかしながら、既存のVLOOKUP関数が記述されたセルに限り、望んでいる結果が表示されるのです。

VLOOKUP.file内部で、TABLE.fileを保存しておき、TABLE.fileが変更・更新された場合は、VLOOKUP.file内部が更新されるのでは?

という、非常に都合のいい事を望んでおります。

そうであるのならば、内部で保存されているTABLE.fileを抽出できれば・・と考えました。

2006/12/16 20:06:07
id:enasu No.2

回答回数14ベストアンサー獲得回数0

ポイント15pt

>しかしながら、既存のVLOOKUP関数が記述されたセルに限り、望んでいる結果が表示されるのです。


同一pc内で参照テーブルを消すと計算結果も消えてしまいますよね。

既存のVLOOKUP関数が記述されているセルで検索値を変更するとTable設定のメッセージが出るのではないでしょうか。書かれている状況は、ネットワークの設定か何かでトラフィックジャムを緩和するために、既に計算しているセルの計算結果は自動更新しないようになっているのが原因ではないかと推測します。恐らくどこかに参照データが残っている可能性は低いと考えます。

むしろネットワーク上のデータを何処かがバックアップしていないかを調べたほうが良いのではないでしょうか。

id:taisin0212

enasu様、ありがとうございます。

VLOOKUP関数は、次のように使っております。

セルA1:使用者がKEYとなる4桁の数字を入力

セルA2:vlookup(A1,Table.file上のマスター,2,FALSE)

セルA1の内容については、200種以上をテストいたしました。

その際、Table.fileのあるHDDの電源は入っておりません。

(HDDそのものにクラッシュの恐れがあります)

2006/12/16 22:57:24
id:enasu No.3

回答回数14ベストアンサー獲得回数0

ポイント5pt

taisin0212様

失礼しました。この状況では何処かにあるテーブルを参照していると考えるのが当然ですね。

うーん。

id:taisin0212

enasu様、ありがとうございます。

からくりがはっきりせずモヤモヤしているのですが、

TABLE.fileの一部でも復旧できるのでは?

という甘い期待をしてしまうのです。

(同じテーブルを一から作るのは、まず無理なので)

2006/12/16 23:31:05
id:ardarim No.4

回答回数897ベストアンサー獲得回数145ここでベストアンサー

ポイント100pt

Microsoft Excel File Format(Openoffice.orgが解析したもの)によれば、外部ファイル参照の場合は、参照範囲のセル内容がローカルxlsファイル内にキャッシュされるようです。

もちろんすべて読破したわけではないので流し読みですが、

5.10 Internal and External References

に参照に関しての仕様が書かれているようです。外部ファイル参照に関しては、参照ファイル情報(EXTERNSHEET)とともに、キャッシュされた行数(XCT)、キャッシュされたセル内容(CRN;行単位でキャッシュされる)が含まれます。


つまり、テーブルの内容はすべてローカルxlsファイル(VLOOKUP.file)内に保存されているはずですが、それを意図的に取り出す手段は用意されていないのではないかと思います。


上記仕様書にしたがってxlsファイルを手動で解析すれば、テーブルを復元することは不可能ではないでしょうが、途方もない作業ですね...

id:taisin0212

ardarim様、ありがとうございます。

『VLOOKUP.fileを開く際、リンク元の更新を行わない』を試し、新たにVLOOKUP関数を記述してみましたが、『値の更新』を要求されました。

キャッシュされた内容を参照するのにも、制限がかかっているのかもしれません。

(VLOOKUPで指定されたColumnのみキャッシュされている等)

2006/12/17 12:39:08
id:ardarim No.5

回答回数897ベストアンサー獲得回数145

ポイント100pt

新しいVLOOKUP関数は、既に入力済みのVLOOKUP関数が入っているシートと同じシートに入力しましたでしょうか?


仕様を見る限りでは、外部参照ファイルのデータは、シートごとにキャッシュされます。既に外部参照データがキャッシュされているシート内でならキャッシュを流用できる可能性があります。(ただし、入力済みの数式で使われている外部参照範囲と完全に一致している必要があるでしょう)


たとえば、Sheet1に

=SUM([example.xls]ExtSheet1!A1:B2)

と入力されているとすると、Sheet1に関連付けられたリンクテーブルには以下のような情報が一緒に保存されます。

EXTERNSHEET 1 Name = “<01H>[example.xls]ExtSheet1”(参照ファイル、シート名)
 XCT Number of CRN = 2(キャッシュされている行数=2)
  CRN 0 セル範囲 = A1:B1, データ = 1.11, 2.22(行1の参照データA1:B1がキャッシュされる)
  CRN 1 セル範囲 = A2:B2, データ = 3.33, 4.44(行2の参照データA2:B2がキャッシュされる)

ただ、Excelの仕様として新しい数式を入力したときは必ずキャッシュを更新しようとするのかもしれません。その場合は既存の入力済みの数式からしかキャッシュされたデータは利用できないことになります。


また大事なテーブルであるなら、HDD復旧サービス等でデータを取り出すなどしたほうが確実かと思います。お金はかかりますけど。

id:taisin0212

ardarim様、ありがとうございます。

VLOOKUP関数の引数における、参照先テーブルの[column]指定の引数を変えただけでも、ダメでした。


復旧サービス等で検討いたします。

(他にも大事なデータがございますので)

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

2006/12/17 17:17:02
  • id:enasu
    すみませんコメントで送ったつもりだったのに回答になっていたようですご容赦ください。
  • id:taisin0212
    taknt様、enasu様、ardarim様。この度はありがとうございます。

    キャッシュ内のテーブル(27~28 columns)における、3列については、値の参照ができそうです。
    修理/復旧までは、キャッシュから復元できたデータを使う予定です。
    キャッシュを持っていたのは意外でした。(妥当かもしれませんが)

    私の住む地域における、電子機器への100%依存があやうくはかないものであることを、再認識させられました。
    (RAID5で安心しきっていました)

この質問への反応(ブックマークコメント)

トラックバック

  • 話題のソフトにも対応どんなソフトでも無限に起動させる方法 情報販売のインフォカート・・・SOHO・起業家を成功に導く電子書籍販売ツール 2006-12-17 07:21:32
    こんなことありませんかもし同じソフトを複数起動できたら? 普通は複数起動するには別のpcを買わないといけませんが ある方法により同じpcで複数起動ができます メールアドレス
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません