
ちょっと必要に迫られて、エクセルで以下のような条件の集計をしたので、備忘録を残します。
- 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(関数の挿入)を使って、ウィザードで式を入れる例が多かったので、あえて数式ベタ書きのやり方にしてみました。(プログラマー向け?)
速度や効率を意識するなら別のやり方がいいかもしれませんが、誰かのお役に立てればと思います。
速度・効率を求めるなら脱エクセル!