[[20080425184522]] 『一部のファイルのみリンク更新エラー』(まだまだ勉強中) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『一部のファイルのみリンク更新エラー』(まだまだ勉強中)
 まず最初にファイルA、Bがあり
A⇔Bのファイル間のリンクが設定してありました。
(この時点でシート保護とパスワードが設定されており、以下の作業は保護のかかっていない部分で進行)
その時はAまたはBのどちらかのファイルだけを開いても互いの値は更新されていたのですが、
今回ファイルCを作成し、A⇔C間のリンクも設定しました。
すると、ファイルCだけを単独で開いたときにはAとのリンク部分があるセルに#value!が表示されてしまい、
同時にファイルAを開くと数値が更新されるという現象が起きました。
数値が更新された状態でファイルAを閉じてもファイルCの値はそのままなのですが、
保存・終了し、再度ファイルを単独で開くと同じエラーが表示されます。
ちなみにファイルCのセルに入れてあるリンク(同時に開いたときに表示されるもの)は
=IF(COUNTIF('[ファイルAのシート名.xls]1日・2日'!$B$10:$F$22,$A4)>0,VLOOKUP($A4,'[ファイルAのシート名.xls]1日・2日'!$B$10:$M$22,6,FALSE),0)
です。
この作業中のどこに問題があるのかまったくお手上げになってしまったのでどなたかお力をお貸しください。

Excel2002、Windows2000の環境です


 COUNTIF関数は、開いているブックでのみ計算出来ます。
 IF関数の条件として、ISERROR関数等を使うのが良いのではないでしょうか。

 >数値が更新された状態でファイルAを閉じてもファイルCの値はそのままなのですが、
 [ F9 ]で強制的に再計算を行うと、再びVALUEエラーになると思います。

 >A⇔Bのファイル間のリンクが設定してありました。
 こちらのブックでも、COUNTIF関数を使っていますか?

 (HANA)

(HANA)さん

 早速の返信ありがとうございます。
 
まず、A⇔B間ではCOUNTIF関数は使われていません、それで最初は問題なかったのですね。

 ある程度具体的に表現すると(最初の問い合わせ内容での関数にあるセルは忘れてください)

 ファイルC(商品の1日の売り上げ個数を記入する表)が

  A      B   C  D

1商品名  大 中 小

2 

3

4

ファイルA(各商品(大中小)の日ごとの売り上げを一月分集計した表)が

 A    B   C  D   E   F

1        1日 2日 3日 4日

2商品@ 大

3商品@ 中

4商品@ 小

という風にあります。(商品@はセルA2:4を結合したひとつのセルに入っているものとします)

ここで、ファイルCのセルA2に商品@、B2:D2に該当する数値を入れた場合、

ファイルAのC2:4に数値がリンクして表示されるようにしたかったので最初のような関数を組ん
だのですが、

この場合どのような関数を組めばよろしいでしょうか?

(HANA)さんの回答からはこの二つのファイルを一つにまとめてやればできるようにも見受けられるのですが、

可能ならば別のファイルで仕事を進めたいため再度お知恵をお願いいたします。


 ・・・ですから
 >IF関数の条件として、ISERROR関数等を使うのが良いのではないでしょうか。
 と書いているのですが・・・・。

 現在、検索値が無いときにVLOOKUP関数を実行させると
 エラーに成るので、COUNTIF関数で検索値が有るかどうか確認し
 有った場合に、VLOOKUP関数を実行するようにしてあるのですよね?

 この時の、確認する為のCOUNTIF関数がエラーになっている
(本質のVLOOKUP関数がエラーに成っている訳ではない)ので

 その式を、VLOOKUP関数の結果がエラーだったら、「""」とし
 それ以外の時に、VLOOKUP関数の結果を表示する という物に変更。
=IF(ISERROR(VLOOKUPの式),"",VLOOKUPの式)
 の様にして、うまく行きませんかね?

 後は、[ファイルAのシート名.xls]の中に一つシートを増やして
 ファイルCに表示したい表を一度作っておき(これならCOUNTIF関数が使えますので)
 そのシートの範囲を、ファイルCに「=」等で参照するのが簡単かと思います。
(なお、ファイル名等は、最初に御質問で使って居られる物を使っています。)

 (HANA)


NANAさん、ISERRORの件すいませんでした。

最初、関数のヘルプで見てもISERRORの関数の組み立て方がわからず、NANAさんがすべてを理解した上で解答していただいているのもまったく気づかず再度質問してしまいすいませんでした。
おかげさまで

=IF(ISERROR(VLOOKUPの式),"",VLOOKUPの式)

を利用してすべてうまくいきました。
遅くまでお付き合いありがとうございました、また勉強になりました
しかし、まだまだ勉強中ですのでまたいろいろと教えてください


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.