COUNTIF関数(2) - 実践的活用例 [Excel関数リファレンス]

[書式] COUNTIF(<対象範囲>,<条件>)

 

[機能] <対象範囲> のセルのうち、<条件> に一致するセルの個数をカウントします。

 

<対象範囲>  カウントしたいセル範囲を指定します。
<条件>  条件を、数値、文字列、式のいずれかで指定します。
[引数]

 


 

●●● 実践は、シンプルじゃない ●●●

 

「実践」というのは、書籍やマニュアルに書かれた知識をふまえつつも、そこから

  「少し、はみ出していく」

過程だと、私は思っています。

 

このはみ出していく過程というのは、同時に

  「複雑化」

の過程でもあります。

 

現実の業務にいざ活用しようとすると、前回の例題のようなシンプルなやり方「だけ」では、十分

に満足のいく結果が得られなかったりするのです。

 

たとえば、次のようなデータを各問ごとに集計することをイメージしてみましょう。

counif関数2_1.jpg 

 

こんな単純な表でも、配慮しなければならない点がいくつも思い浮かんできます。

 

  (1) データを変更したら、集計結果がリアルタイムに変わってほしい

  (2) ブランクをどのような方法で未回答として集計するか

  (3) データの行が追加された時、楽にメンテナンスしたい

  (4) 集計項目の列が追加された時、楽にメンテナンスしたい

  (5) できるだけシンプルにやりたい

  (6) 素早く完成させたい 

 

などなど・・・。

 

こうしたニーズのどこに力点を置くかで、やり方が変わってきます。たとえば、(6)を重視するな

ら、ピボットテーブルが簡単かもしれません。でもそうすると、(1)が実現できません。 

ワークシート作りというのは、そんな相反するニーズのバランスを取りつつ、

 

  ・安全性

  ・拡張性

  ・効率性

 

の落としどころを探る作業と言ってもいいかもしれません。

 

 

ということで、ためしに今回は、私流のやり方で上図のシートを集計してみたいと思います。

 

やり方の中で、「何でわざわざそんな面倒なことを・・・」と感じることもあるかもしれません。でも

いずれも、(1)~(6)のニーズのいずれかに配慮した、「わたくしなりの落としどころ」です。

 

なお、ほかにもいろいろな良い方法があるかと思いますので、あくまで一例として参考にしていた

だくのがよいかと思います。

 

 

 

●●● 入力データを、ワンクッション加工する ●●●

 

私は、入力されたデータをそのまま集計することはしません。たいていの場合、間にシートを1枚

かめて、そこでデータを加工してから集計するようにしています。

たとえば、次のようなやり方です。

 

counif関数2_2.jpg

  (1) 集計したいデータが入力されているブックに、新規シートを作成する。

  (2) 新しく作成したシートのシート名を 「集計元データ」 にする。

  (3) 「集計元データ」シート の セルA1 に、次の計算式を入力する。

     =IF(ISBLANK(入力データ!A1),"未",入力データ!A1)

  (4) セルA1 の計算式を セルA1~K21 の範囲にコピーする。

 

このような空白セルへの対処以外にも、

  ・数値/文字列の変換

  ・文字列の置換

  ・前後に文字列を加える

など、集計対象のデータ状況に応じた加工を、あらかじめここでおこなっておくと便利です。

 

 

 

●●● 集計元の各列に名前をつける ●●●

 

次に、問1~問6の各列に、名前(範囲名)をつけておきます。

 

counif関数2_3.jpg

  (1) B~K列 を選択する。

  (2) メニューから [挿入]-[名前]-[作成] を実行する。

  (3) [上端行]のみオンにして、[OK]をクリック。

 

 

●●● あっけない集計 ●●●

 

ここまで準備ができたら、いよいよ集計にかかります。

 

counif関数2_4.jpg 

  (1) 新規シートを作成する。

  (2) 新しく作成したシートのシート名を 「集計」 にする。

  (3) セルB1~B5 に 「問1」~「問5」 の文字列を入力。

  (4) セルA2~A7 に 1~5 の数値と、「未」というの文字列を入力。

  (5) 「集計」シート の セルB2  に、次の計算式を入力する。

     =COUNTIF(INDIRECT(B$1),$A2)

  (6) セルB2 の計算式を セルB2~F7 の範囲にコピーする。

 

これまでの準備のおかげで、ひとつの計算式だけで、問1~問5のすべての集計ができます。

 

この例題は、やり方と手順の紹介にとどめます。INDIRECT関数 や計算式の解説を始めると、

どんどん横道に逸れそうですので。

 

 

ということで今回は、わたくしの個人的な集計テクニックの一部を紹介いたしました。