Power BIで「特定の値」をカウントする方法
Power BIを使ってデータを分析するとき、「特定の値を持つ行が何件あるのか知りたい」「特定の条件を満たすレコード数をカウントしたい」といったニーズは非常に多いです。たとえば、売上テーブルの中で「商品A」の購入が何件あったのか、顧客データの中から「契約ステータス=有効」の件数がどのくらいあるのかなど、データの状況把握にカウント系の数値は欠かせません。
本記事では、Power BI(特にDAX)を用いて「特定の値」をカウントする方法をわかりやすく解説します。

1. 基本の考え方:COUNT系関数とCALCULATEの組み合わせ
Power BIでは、DAX(Data Analysis Expressions)という数式言語を使ってメジャー(Measure)を作成することで、動的な集計やカウントを行います。
一方、CALCULATE関数は“集計にフィルター条件をかける”ときに使います。
たとえば、テーブル全体から特定の商品に関する行数だけを数える、といったときに利用します。
2. 最もシンプルな例:列に対する条件付きカウント
2-1. COUNTROWS + CALCULATEでの例
シナリオ
テーブル名「Sales」、列名「ProductName」には商品名が入っているとします。その中で、商品名が「Product A」の行だけをカウントしたい場合。
DAXの例
このメジャーを作成すると、ビジュアル上で「CountOfProductA」を参照した際に「Product A」の行のみをカウントした値が表示されます。
2-2. COUNT + CALCULATEでの例
COUNTROWSは“行数”を数えますが、COUNTは“列における非空白の値の件数”を数えます。以下のように、対象列を指定する場合もあります。
こちらも同じように「ProductName」が”Product A”の行だけをフィルターしたうえで、ProductName列の非BLANK値をカウントしています。厳密にはCOUNTの場合、列がBLANK(空)のレコードがあれば除外される点に注意が必要です。
3. 複数条件がある場合
複数の条件でカウントしたいときは、CALCULATE関数に複数のフィルターを指定します。
シナリオ
DAXの例
ここでは、同時に2つのフィルターがかかり「ProductName = ‘Product A’ AND Region = ‘East’」を満たすデータ行数が返されます。
4. DISTINCTCOUNTを使う場合
同じ商品名のレコードが複数ある場合、「ユニークな商品名が何種類あるか」などを知りたいケースもあります。そのときはDISTINCTCOUNTを利用すると便利です。
シナリオ
DAXの例
これで、Salesテーブルの中に存在する重複を除いた「Category」の種類数をカウントします。
フィルターを組み合わせる場合
「特定の値」のユニーク数を知りたい場合は、CALCULATEと組み合わせられます。
5. 条件によって0を返したい場合の工夫
DAXのカウント系関数では、フィルター結果が0件になるとBLANKになる場合があります。
ビジュアル上で明確に「0」と表示したい場合は、COALESCE関数やIF関数を組み合わせることで回避できます。
COALESCE(式, 0) は、式の結果がBLANKまたはNULLの場合に0を返すようにします。
こうすることで「特定の値を持つ行が存在しないとき」でも、空白ではなく明示的に0を表示させられます。
6. カラムを追加してカウントを表示する方法
メジャーではなく列を追加してレコード単位でフラグを持たせる方法もあります。例えば、
のような計算列(Calculated Column)を作成し、その合計をメジャーで算出する方法です。
計算列の例
メジャーの例
計算列IsProductAが1のレコードを合計すれば、”Product A”の行数になります。ただし、計算列は行数が多い巨大テーブルの場合、モデル容量が増えるなどパフォーマンスの面で注意が必要です。
推奨: まずはCALCULATE + カウント関数でメジャーを作る方が柔軟です。
7. クイックメジャー(Quick Measures)を活用する方法
DAXがあまり得意ではない方は、Power BIの「クイックメジャー」機能も検討してみましょう。
-
レポートビューで右クリック → [新しいクイック メジャー]
-
数式の種類から「フィルターされた値の合計」や「条件に基づく計算」を選択
-
対象列やフィルターの条件をGUIで指定
これにより、自動的にDAX式が生成されます。DAXを自力で書かなくても、簡易的に特定条件のカウント(や合計、平均など)が作成できます。ただし、複雑な条件がある場合は自分でDAXを組んだほうがスムーズなこともあります。
8. よくあるトラブルシューティング
8-1. 欲しい値ではなく合計行数が常に表示される
8-2. BLANKになってしまう
8-3. フィルターが他のビジュアルにも影響して意図しない数値になる
9. まとめ
Power BIで「特定の値をカウント」したいときは、DAXの基本であるCALCULATEとカウント系関数(COUNTROWS, COUNT, DISTINCTCOUNTなど)を組み合わせるのが王道です。必要に応じて複数の条件を付与したり、結果がBLANKにならないように工夫したりすることで、分析レポートを充実させられます。
-
シンプルな例:
CALCULATE(COUNTROWS(Table), Table[列] = "値")
-
複数条件:
CALCULATE(COUNTROWS(Table), Table[列1] = "値1", Table[列2] = "値2")
-
Distinctなカウント:
CALCULATE(DISTINCTCOUNT(Table[列]), <条件>)
-
BLANK対策:
COALESCE( CALCULATE(...), 0 )
ぜひこれらのポイントを参考に、Power BIでのデータ集計・可視化をさらに強化してみてください。特定条件の行数を正確に把握できるようになると、レポートの訴求力がぐっと高まります。社内の意思決定の場でも「どの条件でいくつのデータがあるのか」を即座に示せるようになり、データドリブンな分析に大きく役立つでしょう。
本記事をきっかけに、Power BIでの特定の値のカウントがスムーズに進むよう、ぜひ試行錯誤してみてください!
もし困り事があるなら、まずは無料相談を
「Power BI で箱ひげ図を使って詳細分析をしたいが、データモデルやDAX設計が複雑でわからない…」「Power Automate を併用してデータ更新フローを自動化したいが、どこから手を付ければいいのかわからない」といったお悩みをお持ちの方も多いのではないでしょうか。
私たちは、Power BIやPower AutomateなどのMicrosoft製品の導入・運用支援、およびデータ活用コンサルティングを行っています。
-
具体的な設定や開発代行
-
社内教育のための伴走型支援
-
有料プランへの移行タイミングやROIの判断支援
など、さまざまなニーズに合わせたサービスをご用意しています。まずはお気軽に「無料相談」へお申し込みください。下記のリンクからお問い合わせいただけます。
👉 無料相談はこちらから
7. セミナーで学ぶ!DAX 関数の実践スキル
箱ひげ図をはじめ、Power BIを使いこなすうえで欠かせないのがDAX関数の知識です。DAXをしっかり学ぶことで、データの前処理から複雑な指標の算出までスムーズにこなせるようになります。そんなDAXとデータモデル設計を効率よく学習できるハンズオンセミナーを開催しています。
🔰 Power BIハンズオンセミナー初級編
-
短時間でデータモデリングの基礎を身につける
-
実務にすぐ活かせるレポート作成を実践形式で学ぶ
-
少人数制なので、つまずきポイントを都度フォロー
👉 セミナー詳細を今すぐチェック
🚀 Power BIハンズオンセミナー中級編
👉 詳細はこちら
DAXをしっかりマスターすると、箱ひげ図のような高度な可視化においても、必要なデータを柔軟に加工・集計できるようになります。結果的に、組織全体のデータドリブン化をリードできる存在となり、キャリアアップにも大いに役立ちます。
コメント