- ベストアンサー
Excel2003、COUNTIFのエラー
COUNTIF関数を使用し、開かれていないブックから参照した数式を作成するとエラーが出たので調べてみました。 すると下記URLのとおり、COUNTIF関数を含む数式が、開かれていないブック内のセルを参照する場合にエラーが発生するというので、回避策をためしてみました。 http://support.microsoft.com/kb/260415/ja?spid=2512&sid=1043 ファイルBOOK1のA列1~8行目までの3つのセルにaを入力します。 BOOK2のファイルに関数を使用して数式を作成しました。 ・COUNTIF関数 =COUNTIF([Book1.xls]Sheet1!$A$1:$A$8,"a")←ファイルを開いている状態、値は"3" =COUNTIF('C:\Documents and Settings\1\デスクトップ\[Book1.xls]Sheet1'!$A$1:$A$8,"a")ファイルを閉じている状態。値を更新すると"#VALUE!" ・回避策にあったSUMとIFの組み合わせ =SUM(IF('C:\Documents and Settings\1\デスクトップ\[Book1.xls]Sheet1'!$A$1:$A$8="a",1,0))←ファイルを閉じている状態 ファイルを開いていても、閉じていても、値は"0" といった具合で、回避策を試してもできない場合どのようにすればいいでしょうか? ※参照元ファイルを閉じていてもCOUNTIF関数と同じように計算がしたい。 ※数字は常に変更されるので、値の更新はできなければならない。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
配列数式になっていないので0を返しているのではありませんか? 自分のPCで試したところ正しく動きましたよ。 掲載されているURLには >Microsoft Excel for Windows で数式を配列数式として入力するには、Ctrl + Shift + Enter キーを押します。 と書かれていますが、配列数式になっていますか? 配列数式になっている場合は数式バーで {=SUM(IF('C:\Documents and Settings\1\デスクトップ\[Book1.xls]Sheet1'!$A$1:$A$8="a",1,0))} と式が { } で囲まれているはずです なお余談ですがIF文を使わずに {=SUM(('C:\Documents and Settings\1\デスクトップ\[Book1.xls]Sheet1'!$A$1:$A$8="a")*1)} でもいけますし、配列数式にしたくないなら =SUMPRODUCT(('C:\Documents and Settings\1\デスクトップ\[Book1.xls]Sheet1'!$A$1:$A$8="a")*1) でもよいです。
その他の回答 (3)
- nobu555
- ベストアンサー率45% (158/345)
URLの回避策は、配列数式ですので、 入力終了時には、Ctrl + Shift + Enter キーを押します。 すると、 {=SUM(IF())} このように、{}でくくられた数式になります。 見当違いの指摘でしたらスミマセン。
お礼
回答ありがとうございました。 配列数式にしていませんでした。配列数式にすると質問の計算はできました。 ただ、実際にしたい数式はCOUNT-COUNTIFの組み合わせでした。 配列数式では出来ないようで、SUMPRODUCT関数を使いました。
- mu2011
- ベストアンサー率38% (1910/4994)
因みに回避策の数式は配列数式として入力されましたでしょうか。 配列数式は、入力完了時にshift+ctrl+enterキーを同時押下です。
お礼
回答ありがとうございました。 配列数式にしていませんでした。配列数式にすると質問の計算はできました。 ただ、実際にしたい数式はCOUNT-COUNTIFの組み合わせでした。 配列数式では出来ないようで、SUMPRODUCT関数を使いました。
- onlyrom
- ベストアンサー率59% (228/384)
提示のサイトには、式は配列数式と書いてありますが、配列数式にしましたか? 式を確定するときに、Enterではなくて、Shift + Ctrl + Enter で確定です。 試してみたところちゃんと動作しましたので、 配列数式にしても0が返ってくるのであれば、 データ範囲指定がおかしいか、該当データが無いのでしょう。 外しましたらご容赦願います。
お礼
回答ありがとうございました。 配列数式にしていませんでした。配列数式にすると質問の計算はできました。 ただ、実際にしたい数式はCOUNT-COUNTIFの組み合わせでした。 配列数式では出来ないようで、SUMPRODUCT関数を使いました。
お礼
回答ありがとうございました。 配列数式にしていませんでした。配列数式にすると質問の計算はできました。 ただ、実際にしたい数式はCOUNT-COUNTIFの組み合わせでした。 配列数式では出来ないようで、SUMPRODUCT関数を使いました。