• ベストアンサー

エクセル2007 ブックのリンクにおける値更新

エクセル2007で、Book1にてSUMIFS関数を使い、Book2を参照しています。 Book2を参照するパスはフルパスにしていますが、Book2を閉じると、#VALUE!が返されます。 Book2を再び開けば、正常に値が返されます。 「フルパスなら参照先を閉じたままでも正常に値が更新される」という記事を見かけますが、 なぜ#VALUE!が返さてしまうのでしょうか。 Book2を閉じたまま、正常に値を更新させるにはどうしたらよいでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>今回私が入力した式は、どうも間違っているらしく、VALUEが返されます。 おそらくF列に数字以外の文字列データ(項目名など)が入力されているためと思われます。 F列の部分だけ「*」ではなく「,」にすれば文字列を無視した計算ができますが、SUMPRODUCT関数のデータ範囲を列全体にするとパーフォーマンスが低下する可能性がありますので、以下のように各列ともデータ範囲を指定(実際のデータより少し大きめに設定)するようにしてください。 '[A.xlsm]年間集計'!F:F → '[A.xlsm]年間集計'!F$2:F$1000

feefog01
質問者

お礼

ありがとうございました。 全て、解決いたしました。 本当に助かりました。

その他の回答 (1)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

以下のページに該当するものと思われます。 http://support.microsoft.com/kb/260415/ja 再計算に時間がかかるなどのパーフォーマンスは低下しますが、数式を以下のような配列数式に変更してみてください。 =SUMPRODUCT((条件1の範囲=条件1)*(条件2の範囲=条件2)*集計範囲)

feefog01
質問者

補足

ありがとうございます。 仕様だという事が分かりました。 残念です。 今回教えて頂きましたSUMPRODUCTについて質問させて下さい。 =SUMPRODUCT(('[A.xlsm]年間集計'!$C:$C=MONTH($A$1))* [1] ('[A.xlsm]年間集計'!$D:$D=$C3)* [2] ('[A.xlsm]年間集計'!$E:$E=$D3)* [3] ('[A.xlsm]年間集計'!F:F)) [4] [1]:年間集計の C:C には月が入力されています。例)1,2,3,4,5... 入力シートのA1に集計したい月が入力されています。 [2]:年間集計の D:D には部門が入力されています。例)A部門,B部門... 入力シートのC列には集計したい部門が入力されています。 [3]:年間集計の E:E には品名が入力されています。例)商品A,商品B... 入力シートのD列には集計したい商品が入力されています。 [4]:年間集計の F:F には金額が入っています。 つまり年間集計シートが有る複数のブックから月別集計表を作る為に、 入力シートのあるBookからそれぞれの年間集計シート(上記はBookA)を参照したいわけですが、 今回私が入力した式は、どうも間違っているらしく、VALUEが返されます。 どこが間違っているのでしょうか......