[エクセル]項目の集計を取りたい[COUNTIF, SUMIF]

ちょっと必要に迫られて、エクセルで以下のような条件の集計をしたので、備忘録を残します。

  • Name が同じ項目ごとの項目数集計
  • Filename, Name が同じ項目ごとの項目数集計

Name が同じ項目ごとの項目数集計

COUNTIF を使います。B2~B12の範囲で、名前がE2(A太郎)の総数を計算します。

=COUNTIF($B$2:$B$12,E2)

範囲 B2~B12$B$2:$B$12 と記述します。
$ をつけているのは、範囲を固定するためのおまじないです。
つける必要があるかないかは、その時々によって違ってくるのですが、例えば E2 に $ がついていないのは、この後で項目をドラッグ複製する必要があるからです。

この理屈を理解できるかどうかで使い勝手が数倍~数十倍違ってくるので、きちんと理解しておきましょう。

正しければ、A太郎の項目数(4)が表示されます。
次に、COUNTIF で書いた書式を B男、C郎にも複製しましょう。

F2 を選択してから、右下の■を下方向にドラッグ。
マウスが苦手であれば、あらかじめ3セルを選択状態にしてから CTRL+D でも構いません。

「複製」といいましたが、厳密に言うと3つの計算式は異なります。
それぞれ違う名前を参照するので、以下のように変化させないといけません。

=COUNTIF($B$2:$B$12,E2)
=COUNTIF($B$2:$B$12,E3)
=COUNTIF($B$2:$B$12,E4)

このために、E2 に $ をつけなかった、というわけです。
複製で変化させたい項目には $ をつけない、と覚えておいてください。

この例でいくと、E -> $E にしても構いません。(Eは変化しないため)

Filename, Name が同じ項目ごとの項目数集計

COUNTIFS は複数の条件を満たす項目の総数を計算します。
B2~B12の範囲で名前がG1(A.txt)B2~B12の範囲で、名前がE2(A太郎)の総数を計算します。

=COUNTIFS($A$2:$A$12,G$1,$B$2:$B$12,$E2)

最初と違い、E2 -> $E2 に変更したのは地味だけど大きなポイントです。G$1 も同様。
これがないと、後の複製が上手くいかなくなってしまいます。

正しければ「A太郎」かつ「A.txt」の項目数(3)が表示されます。

残りの8つは2回に分けて複製します。
まず右に複製、次に下へ複製します。(逆でも可)

おまけ:Filename, Name が同じ項目ごとの金額集計

ついでに、実際の仕事でよくありそうな金額集計も。
以下の表で経費科目:名前ごとの集計を行います。

SUMIFS

さきほどは COUNTIFS でしたが今度は SUMIFS。

=SUMIFS($C$2:$C$12,$A$2:$A$12,F$1,$B$2:$B$12,$E2)
金額のセル範囲,経費科目のセル範囲,集計する経費科目,名前のセル範囲,集計する名前

複製の仕方も先ほどと同じです。
条件が1つでよければ SUMIFS -> SUMIF を使いましょう。

まとめ

fx(関数の挿入)を使って、ウィザードで式を入れる例が多かったので、あえて数式ベタ書きのやり方にしてみました。(プログラマー向け?)

速度や効率を意識するなら別のやり方がいいかもしれませんが、誰かのお役に立てればと思います。

速度・効率を求めるなら脱エクセル!


返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA