【Excel VBA】COUNTIFS関数の使い方!

【Excel VBA】COUNTIFS関数の使い方!

ExcelのCOUNTIFS関数は、複数の条件を満たすセルの数を数える非常に便利な機能です。

特に、データ分析や管理で役立ち、特に複数の条件が存在する場合に有効です。

本記事では、COUNTIFS関数の基本的な使い方、VBAでの応用例、よくあるトラブルシューティングについて
詳しく解説します。

COUNTIFS関数の基本

COUNTIFS関数は、複数の条件を基にセルの数をカウントします。

構文

構文は以下の通りです。

COUNTIFS(範囲1, 条件1, [範囲2, 条件2], …)

範囲1: 条件1に適用されるセル範囲。
条件1: 範囲1に適用する条件。例えば、”>10″や”=赤”など。
範囲2, 条件2: 任意の追加条件。最大127組の条件を指定可能。

使用例

例えば、売上データにおいて、特定の商品カテゴリと特定の販売員による売上数を数えたい場合、
以下のようにCOUNTIFS関数を使用できます。

=COUNTIFS(A2:A100, "電子機器", B2:B100, "田中")

この例では、A列の「電子機器」というカテゴリに一致し、
B列の「田中」という販売員の売上件数を数えます。

VBAでCOUNTIFS関数を使用する

VBAでCOUNTIFS関数を使うことで、自動化や条件を動的に変更することが可能です。

以下に、VBAでのCOUNTIFS関数の使い方を示します。

VBAコード

VBAコードでは「商品カテゴリが電子機器であり、販売員が田中である」行の数をCOUNTIFS関数を使って数えます。

Sub CountIFSMacro()
    Dim ws As Worksheet
    Dim countResult As Long

    ' シートをセット
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' COUNTIFS関数の結果を取得
    countResult = Application.WorksheetFunction.CountIfs(ws.Range("A2:A100"), "電子機器", ws.Range("B2:B100"), "田中")
    
    ' 結果をメッセージボックスで表示
    MsgBox "電子機器カテゴリの田中さんの売上件数は " & countResult & " 件です。"
End Sub

このマクロは、Sheet1のA列とB列を対象にして、COUNTIFS関数を使用し、その結果をメッセージボックスで表示します。

サンプル表

ExcelのSheet1に配置されていると仮定します。

A列(商品カテゴリ) B列(販売員)
電子機器 田中
家具 鈴木
電子機器 田中
電子機器 佐藤
家具 田中
電子機器 田中
書籍 田中
電子機器 山田
家具 鈴木
書籍 佐藤

この表のデータを基にして、
VBAコードでは「商品カテゴリが電子機器であり、販売員が田中である」行の数をCOUNTIFS関数を使って数えていきます。

VBAを実行する

VBAを実行してみましょう。

この例では、該当する行数は3行になりますので、
「電子機器カテゴリの田中さんの売上件数は3件です。」
とメッセージが表示されます。

トラブルシューティング

COUNTIFS関数を使用する際に遭遇しがちな問題とその解決策を以下に示します。

正しい結果が得られない

条件の記述ミスが原因である可能性があります。
例えば、数値を比較する際に、ダブルクォーテーションで囲んでいない場合、正しい結果が得られません。

範囲の不一致

COUNTIFS関数の各範囲のセル数が一致していることを確認してください。
範囲が一致しない場合、エラーが発生します。

さいごに

いかがでしょうか。

今回は、

・COUNTIFS関数の基本的な使い方、VBAでの応用例、よくあるトラブルシューティング

についてまとめました。

COUNTIFS関数は、複数の条件に基づいてデータを集計するための強力なツールで、また
VBAを活用することで、さらに柔軟な操作や自動化が可能になります。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。







コメントを残す

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

CAPTCHA ImageChange Image