
Microsoft Excelユーザーの多くは、条件付きで項目をカウントできるMicrosoft ExcelのCOUNTIF()関数をよくご存知でしょう。例えば、過去1年以内に入社した従業員の数を知りたい場合や、担当クラスに合格していない生徒のリストが欲しい場合などです。
Microsoft Power BI をツールボックスに追加した場合、メジャーで同じことを行う方法がわからないかもしれません。このチュートリアルでは、Power BI の 2 つのカウントメジャーを使用して COUNTIF ロジックを適用する方法を説明します。
参照: Google Workspace vs. Microsoft 365: チェックリスト付き比較分析 (TechRepublic Premium)
Windows 10 64ビットシステムでPower BIを使用しています。デモ用の.pbixファイル「AdventureWork Sales」はGitHubからダウンロードできます。ダウンロードしたら、.pbixファイルをダブルクリックしてPower BIで開き、手順に従ってください。
1 Zohoアナリティクス
企業規模
企業規模ごとの従業員数
マイクロ(0~49)、スモール(50~249)、ミディアム(250~999)、ラージ(1,000~4,999)、エンタープライズ(5,000以上)
あらゆる規模の企業 あらゆる規模の企業
特徴
アドホック分析、コラボレーションツール、ダッシュボードなど
Power BI の COUNTIF とは何ですか?
「Power BIのCOUNTIFとは何ですか?」という質問に対する技術的な答えは「ありません」です。Power BIにはCOUNTIFメジャーはありません。Power BIのメジャーは、Microsoft Excelの関数に似た計算式です。
ExcelのCOUNTIF()関数は、特定の条件に基づいて範囲内の値を数える論理関数です。Power BIでも同じロジックを適用できますが、COUNTIFメジャーがないため、ご自身で計算する必要があります。
良いニュースは、それが可能だということです。悪いニュースは、Power BIでCOUNTIFロジックを適用するには、Excelよりも手間がかかるということです。
COUNTIF ロジックを適用する場合は、2 つの Power BI メジャーを使用してモデルまたは明示的なメジャーを作成します。
- COUNTA: このメジャーは列内の値の数をカウントしますが、NULL 値または空白値は評価しません。
- COUNTROWS: このメジャーは、列内の行数をカウントします。
モデルメジャーは、ユーザーが作成する、つまり明示的に定義されたメジャーです。何が不足しているかがわかったところで、COUNTAとCOUNTROWSを使ってPower BIでCOUNTIFロジックを適用してみましょう。
Power BIでCOUNTIFロジックを適用する方法
AdventureWorksデータベースを使って、特定の郵便番号エリアの顧客数を数えたいとしましょう。今回はテーブルを1つだけ扱うので簡単です。多くの場合、2つ以上のテーブルを扱うことになります。
Power BI Desktop で、左ペインのデータアイコンをクリックし、フィールドペインで Customer テーブルを展開します。Customer テーブルが開いたら、新しいメジャーを作成する準備が整います。計算グループの [新しいメジャー] をクリックします。
図 Aに示すように、デフォルトのメジャー名を次の式で上書きします。
Customer Measure = COUNTROWS(Customer)
図A

このメジャーはCustomerテーブルの行数を返します。次に、COUNTA関数を使ってPostal Codeテーブルの値の数を返してみましょう。そのためには、次の式を使って2つ目のメジャーを追加します。
Postal Measure = COUNTA(Customer[Postal Code])
図Bに示すように、このメジャーはCustomerテーブル内の郵便番号の値の数を返します。一意の値ではなく、単に値を返します。1つのテーブルしか扱っていないので、2つのメジャーは同じ数を返すはずだとお考えなら、その通りです。
図B

どちらのメジャーも、Customerテーブルノードの「フィールド」ペインに表示されます。いつでもアクセスして変更または削除できます。
では、2つのメジャーを適用しましょう。レポートアイコンをクリックします。日付テーブルが表示されている場合は削除してください。
「視覚化」ペインでは、表形式の方が分かりやすいため、「マトリックス」をクリックします。マトリックス視覚化にデータを入力するには、「フィールド」ペインから「郵便番号」フィールドを「視覚化」オプションの「行」リストにドラッグします。次に、「顧客」メジャーと「郵便」メジャーを「値」リストにドラッグします。
図Cは、結果として得られたマトリックスの視覚化を示しています。この場合、顧客行の数は郵便番号の値の数と同じです。実際には、顧客メジャーは不要です。私のように、「フォーカスモード」をクリックして値を拡大表示することもできます。
図C

郵便番号の値は18,485件あることは分かっていますが、これはCOUNTIFロジックではありません。郵便番号列の値を単純に数えるだけです。マトリックスには各メジャーの名前が表示されます。メジャーを作成する際は、メジャー名がヘッダーとして意味を持つように、この点に注意してください。
図 Cに示す結果のテーブルは、郵便番号メジャーが郵便番号ごとに条件付きカウントを返すため、COUNTIF ロジックを適用したものです。
さらに、フィールドペインから「顧客」をドラッグし、「行」リストの「郵便番号」フィールドの下にドロップします。図Dに結果を示します。各郵便番号の左側にプラス記号が表示されます。いずれかの郵便番号をクリックすると、その郵便番号に属するすべての顧客が表示されます。この機能は公開されれば、エンドユーザーが利用できるようになります。
図D

多くのエンドユーザーは、利益、損失、傾向などを明らかにするために、カウントメジャーに大きく依存しています。Power BI には COUNTIF() メジャーはありませんが、COUNTA メジャーと COUNTROWS メジャーを使用して同じロジックを適用できます。