COUNTIFS関数をVBAで実行

こんにちは。伊川(@naonaoke)です。


以前、上の記事で、COUNTIF関数をVBAで実行しました。

今回は、COUNTIFS関数をワークシート関数と、VBAで実行してみます。

ループを2回使うだけです。

問題提起

 

(株)IKAWAの柄久 瀬瑠子(エク セルコ)は、下記のような依頼を上司から受けました
複数の条件で、データをカウントする方法を教えてほしい。
上司に、どのようにして説明すればいいだろうか?

解決策

 

回答
sesuo2.jpg
COUNTIFS関数は、複数条件でカウントすることを紹介する

COUNTIFSをワークシート関数で実行

作業手順その1 データベースを確認


上の図のようなデータベースがあるとします。

札幌にモーツアルトが何人いるか確認します。

最初に、ワークシート関数で実行します。


最初に上の図のようなクロス集計の表を作成しおきます。

作業手順その2 数式を仕込む


セルB2を選択して、関数のダイアログを表示させて、COUNTIFSを選択します。


ここは、名というシートのA列です。


上の図のように、ダーっと選択します。


可愛く選択する場所は、クロス集計表の、地名を1個だけ選択します。


このCOUNTIFS関数のポイントは、クロス集計表の、縦列(名前)がずれると、数式が反応しません。

必ず、アルファベットの向かって右側に$マークをつけてください。



地名を選択しましたので、次は名前を選択します。

ダーっ選択して、可愛く選択します。


ダイアログの完成形です。これで出来上がりです。


表示されました。

あとは、セルB2をクロス集計表に全部コピーします。


COUNTIFSをVBAで実行

作業手順その1 VBAのコードを仕込む

コード自体は簡単なのですが、ループを2つ使います。


結果は同じになりました。

ここがポイント

 

ここがポイント
Function8.png
集計業務に関しては、このCOUNTIFSではなく

maxRow2 = Cells(Rows.Count, “A”).End(xlUp).Row

maxColumns = Cells(1, Columns.Count).End(xlToLeft).Column

一番端までという書き方が理解できれば、縦横無尽の集計が可能になります。

 

スポンサーリンク

まとめ

今回のまとめ
sesuko3.jpg
今回は、ループを2回使って、COUNTIFSを実行しました。VBAの最初の壁は、ループで挫折します。何度も、ループのコードをコピペして練習しましょう。

今回のサンプルファイルは、No65です。

サンプルファイル
VBAを勉強中の悩みを解決
  • なんで動かないの?
  • もうやだ!
  • どこにも情報がない!
スポンサーリンク

Twitterでフォローしよう

おすすめの記事