図の [参加履歴] テーブルには、いつ、どのコースに、誰が参加したのかの履歴がまとめられています。

このテーブルのデータをもとにピボットテーブルでコースごとの参加者数を求めると、Aコースが 20 名、B コース が 30名、C コースが 10 名となっています。

■[参加履歴] テーブル

しかし実は、同じコースに複数回参加している人がいるようです。たとえば S01 という ID の人は全部で 3 回、参加しています。

ここでは重複しない個数をカウントしたいと考えているので、最終的に図のようなピボットテーブルでの集計をしたいと思っています。

しかし先ほど作成した単一テーブルをデータ ソースとしたピボットテーブルのままでは、値フィールドの設定から集計方法として [重複しない値の数] は選ぶことができないので、元データにユニーク カウントをするための列を用意する必要があります。

今回は別の方法を使って対応してみたいと考えています。

データ モデルへの追加

  1. [参加履歴] テーブルを選択して、リボンの [Power Pivot] タブの [テーブル] グループの [データ モデルに追加] をクリックします。
     
     このタイミングで、別ウィンドウで Power Pivot for Excel が起動します。


  2. 追加したテーブルが Power Pivot for Excel のデータ ビューで確認できます。


  3. Power Pivot for Excel のリボンの [ホーム] タブの [外部データの取り込み] グループの [ピボットテーブル] をクリックします。


  4. [ピボットテーブルの作成] ダイアログ ボックスで作成先を選択して [OK] をクリックします。


  5. 新しいピボットテーブルが作成され、フィールド リストにデータ モデルに追加したテーブルのフィールドが表示されます。


  6. フィールド リストで [参加履歴] テーブルの [参加者] を [値] エリアへ、[コース] を [行] エリアへドラッグして、ピボットテーブルのフィールドを作成します。


  7. [参加者] の値の個数が算出されます。この時点ではユニーク カウントにはなっていません。
    [値フィールドの設定] ダイアログ ボックスを表示します。

  8. データ モデルに追加したことによって、[値フィールドの設定] ダイアログ ボックスの [集計方法] で [重複しない値の数] を選べるようになっています。
    [重複しない値の数] を選択して [OK] をクリックします。

  9. 値フィールドの集計方法が変更され、ユニーク カウント数が算出されます。

データ モデルとは、ワークシートとは別の場所であり、格納されている分析用のデータやリレーションシップのことです。データ モデルの確認やモデリングの際に使用するのが Power Pivot for Excel というツール、ということですね。

ユニーク カウントを求めるために、元データに列を追加して工夫するのも 1 つの方法であり、間違いではありません。ただ、最近の Excel には別の選択肢も用意されているよ、ということです。

石田 かのこ