COUNTIF関数で別ファイルを開かず参照しカウントする方法
ここでは、エクセルの「COUNTIF関数で別ファイルを開かずに参照しカウントする方法」を解説します。
そのまま使うと#VALUE!エラーになってしまうのを防ぐ方法の説明です。
1.別ファイルの参照は#VALUE!エラーになる
始めに、COUNTIF関数で「別ファイルの参照がエラーになる」例から確認してみましょう。
上は、テストを行った結果を〇、△、×で記載した、Book1のシート1にある表です。
続いて上は、Book1の〇、△、×の数をカウント結果を表示させるためのBook2ののシート1にある表です。
そして、Book1の表を範囲としてBook2にCOUNTIF関数を使ってカウント結果を表示させようとすると、数式を入れた直後は次のようになります。
Book1の表の〇の数のカウント結果が、正しくBook2のセルB3に表示されていることが分かると思います。
しかし、この後この値が#VALUE!エラーになるのです。具体的には「Book1、Book2を保存して閉じる」→「Book2を開く」ことでエラーになり、次の通りです。
原因は「COUNTIF関数が開いていないブックのデータを参照できない」ためで、このエラーはBook1を開くと解消しますが、毎回参照元のファイルを開くのは正直めんどうですよね。
COUNTIF関数はこのような「別ファイルを参照できない」ことが、とても残念なポイントとなっています。
2.別ファイルを開かなくてもカウントできる方法
しかし、参照元のブックを開かなくてもカウントできる方法はあります。2つあるので順に見てみましょう。
2-1.別の関数「SUMPRODUCT関数」を使う
一つ目は「SUMPRODUCT関数を使う」ことです。
SUMPRODUCT関数は条件に合うセルの数をカウントできる、COUNTIF関数に似た関数ですが、COUNTIF関数と違って閉じたブックの値を参照でき、エラーを起こさずカウントできます。
SUMPRODUCT関数の数式の形は、条件が一つの場合が、
=SUMPRODUCT((範囲=条件値)*1)
で、二つの場合が、
=SUMPRODUCT((範囲1=条件値1)*(範囲2=条件値2))
で、三つの場合が、
=SUMPRODUCT((範囲1=条件値1)*(範囲2=条件値2)*(範囲3=条件値3))
となります。
これで、参照元のファイルを開かなくてもカウントが可能になります。
しかし、この方法のネックは「SUMPRODUCT関数の知名度が低い」ことで、一般的にはCOUNTIF関数のことは知っていてもSUMPRODUCT関数のことは知らない、という人が多く、数式を見たときに意味を読み取れないケースが出てくる可能性があります。
2-2.ブック内のシートにデータを転記し参照元にする
二つ目は「ブック内のシートにデータを転記し参照元にする」方法です。
カウントにはCOUNTIF関数を使いますが、結果を表示させたいファイルにシートを1つ作り、そのシートにカウントしたい別ファイルのデータを、「=」を使ってまるまるコピーして、そのデータを参照してカウントするのです。
以下手順です。
(1)Book2にシートを新規作成する
(2)罫線など様式を整えながら、「=」を使ってBoo1の表をコピーする
(3)作成したシートを参照元にしてCOUNTIF関数を使った数式を入力すれば完了
補足すると(2)の「Book1の表をコピーする」とは、「Book2に『=Book1!セル番号』という数式を入れて、Book1とリンクしたシートを作る」ということです。
ちなみにこの方法は、例えば両方のファイルを閉じた後、Book1のセルの値を更新し保存・閉じた後Book2を開いても、更新後の正しい結果を取得できます。
この方法のデメリットは「作業用のシートが必要になること」ですが、そこまで大きな問題点にはならないでしょう。
以上、参考になれば幸いです。
【口コミ・評判のいいExcel本の紹介】
COUNTIF関数に関連したページは、次の通りです。
- COUNTIF関数 使いこなすためのポイントはこちら