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です。

サンプルファイルの購入
ブログが動画で紹介した内容のサンプルファイルを
購入できます。月額3,000円です。
練習用ファイルもダウンロードできます。
PayPal経由でお支払いでます。
ダウンロード回数に制限はありません。
スポンサーリンク

Twitterでフォローしよう

おすすめの記事