はじめに
Excelでのデータ分析において、複数の条件を満たすデータのみを集計したい場面はよくあります。 そのような場合に活躍するのが、SUMIFS 関数や COUNTIFS 関数です。 では、Tableauで同様の処理を行うにはどうすればよいのでしょうか?
本稿では、Excelの SUMIFS や COUNTIFS に相当する処理をTableauで実現する方法について詳しく説明します。 IF 文と集計関数(SUM, COUNT, COUNTD)を組み合わせたテクニックを紹介し、具体例を通してその処理手順を明確にします。 Tableauにおける行レベル計算と集計計算の違いを理解し、条件付き集計をマスターしましょう。
ExcelのSUMIFS, COUNTIFS
まず、Excelにおける SUMIFS と COUNTIFS の使い方を確認しておきましょう。
SUMIFS
SUMIFS 関数は、複数の条件を満たすデータの合計値を計算します。 例えば、「商品カテゴリが『家電』かつ地域が『関東』の売上合計」を計算する場合、以下のような式になります。
=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
=SUMIFS(C:C, E:E, "家電", F:F, "関東")COUNTIFS
COUNTIFS 関数は、複数の条件を満たすデータの件数をカウントします。 例えば、「商品カテゴリが『飲料』かつ地域が『関西』の件数」を計算する場合、以下のような式になります。
=COUNTIFS(条件範囲1, 条件1, 条件範囲2, 条件2, ...)
=COUNTIFS(E:E, "飲料", F:F, "関西")TableauでSUMIFS, COUNTIFSを実現する
それでは、本題である SUMIFS や COUNTIFS に相当する処理をTableauでどのように実現するかを見ていきましょう。
SUMIFSに相当する処理
Tableauで SUMIFS と同様の処理を行うには、IF 文を集計関数(SUM)と組み合わせます。
// 家電カテゴリかつ関東地域の売上合計
SUM(IF [商品カテゴリ] = "家電" AND [地域] = "関東" THEN [売上] END)Tableauにおける集計処理の詳細
以下の表を用いて具体的に説明します。
| 商品ID | 商品名 | 売上 | 数量 | 商品カテゴリ | 地域 |
|---|---|---|---|---|---|
| 1 | コーヒー | 300 | 3 | 飲料 | 関東 |
| 2 | 珈琲 | 350 | 7 | 飲料 | 関西 |
| 3 | 紅茶 | 400 | 4 | 飲料 | 関東 |
| 4 | 緑茶 | 380 | 2 | 飲料 | 関西 |
| 5 | コーヒー牛乳 | 150 | 1 | 飲料 | 関東 |
| 6 | ノート | 200 | 5 | 文房具 | 関東 |
| 7 | ペン | 100 | 10 | 文房具 | 関西 |
| 8 | ハサミ | 300 | 3 | 文房具 | 関東 |
| 9 | テレビ | 50000 | 1 | 家電 | 関西 |
| 10 | 冷蔵庫 | 30000 | 2 | 家電 | 関東 |
| 11 | 洗濯機 | 25000 | 1 | 家電 | 関東 |
| 12 | パソコン | 60000 | 2 | 家電 | 関西 |
Tableauでは、上記の計算フィールドは以下のような手順で処理されます。
1. IF文による条件判定(行レベル)
まず、各行に対して IF 文の条件判定が行われます。 この段階では、まだ集計は行われません。 中間表として、以下のようなイメージになります。
| 商品ID | 商品カテゴリ | 地域 | 売上 | IF文の結果 |
|---|---|---|---|---|
| 1 | 飲料 | 関東 | 300 | |
| 2 | 飲料 | 関西 | 350 | |
| 3 | 飲料 | 関東 | 400 | |
| 4 | 飲料 | 関西 | 380 | |
| 5 | 飲料 | 関東 | 150 | |
| 6 | 文房具 | 関東 | 200 | |
| 7 | 文房具 | 関西 | 100 | |
| 8 | 文房具 | 関東 | 300 | |
| 9 | 家電 | 関西 | 50000 | |
| 10 | 家電 | 関東 | 30000 | 30000 |
| 11 | 家電 | 関東 | 25000 | 25000 |
| 12 | 家電 | 関西 | 60000 |
「商品カテゴリが『家電』かつ地域が『関東』」という条件を満たす行(商品IDが10と11)のIF文の結果列に、その業の売上が格納されています。
2. SUM関数による集計
次に、SUM()関数によって、IF文の結果(つまり、条件を満たす行の売上)が集計されます。 SUM()関数は、NULL値は無視して合計を計算します。
| 集計対象 | 値 |
|---|---|
| 商品ID 10のIF文の結果 | 30000 |
| 商品ID 11のIF文の結果 | 25000 |
| 合計 | 55000 |
その結果、「商品カテゴリが『家電』かつ地域が『関東』」の売上合計である 55000 が得られます。
COUNTIFSに相当する処理
Tableauで COUNTIFS と同様の処理を行うには、IF 文を集計関数(COUNT/COUNTD)と組み合わせます。
// 飲料カテゴリかつ関西地域の件数
COUNT(IF [商品カテゴリ] = "飲料" AND [地域] = "関西" THEN [商品ID] END)Tableauにおける集計処理の詳細
Tableauでは、上記の計算フィールドは以下のような手順で処理されます。
1. IF文による条件判定(行レベル)
まず、各行に対して IF 文の条件判定が行われます。 中間表として、以下のようなイメージになります。
| 商品ID | 商品カテゴリ | 地域 | IF文の結果 |
|---|---|---|---|
| 1 | 飲料 | 関東 | |
| 2 | 飲料 | 関西 | 2 |
| 3 | 飲料 | 関東 | |
| 4 | 飲料 | 関西 | 4 |
| 5 | 飲料 | 関東 | |
| 6 | 文房具 | 関東 | |
| 7 | 文房具 | 関西 | |
| 8 | 文房具 | 関東 | |
| 9 | 家電 | 関西 | |
| 10 | 家電 | 関東 | |
| 11 | 家電 | 関東 | |
| 12 | 家電 | 関西 |
「商品カテゴリが『飲料』かつ地域が『関西』」という条件を満たす行(商品IDが2と4)のIF文の結果列に、その業の商品ID(なんのフィールドでも良い)が格納されています。
2. COUNT関数による集計
次に、COUNT()関数によって、IF文の結果(つまり、条件を満たす行の商品ID)の件数がカウントされます。 COUNT()関数は、NULL値は無視して件数を計算します。
| 集計対象 | 値 |
|---|---|
| 商品ID 2のIF文の結果 | 2 |
| 商品ID 4のIF文の結果 | 4 |
| 件数 | 2 |
その結果、「商品カテゴリが『飲料』かつ地域が『関西』」の件数である 2 が得られます。 もし、商品IDに重複があるなどで、ユニークな数値をカウントしたい場合は、COUNTDを使用します。
その他の集計関数との組み合わせ (AVERAGEIFS, MAXIFS, MINIFSなど)
これまで、SUMIFS, COUNTIFSに相当する処理として、SUM()、COUNT()、COUNTD() と IF 文の組み合わせを紹介してきました。
Tableauでは、他の集計関数 ( AVG, MAX, MIN, MEDIAN など) と IF 文を組み合わせることで、Excelの AVERAGEIFS, MAXIFS, MINIFS, MEDIANIFS に相当する処理も実現できます。
AVERAGEIFS に相当する処理
例えば、「商品カテゴリが『飲料』かつ地域が『関西』の売上の平均値」を計算したい場合、以下のような計算式になります。
// 飲料カテゴリかつ関西地域の平均売上
AVG(IF [商品カテゴリ] = "飲料" AND [地域] = "関西" THEN [売上] END)これは、「商品カテゴリが『飲料』かつ地域が『関西』」という条件を満たす行の売上を対象に、AVG()関数で平均値を計算する処理です。
MAXIFS に相当する処理
「商品カテゴリが『家電』かつ地域が『関東』の売上の最大値」を計算したい場合は、以下のようになります。
// 家電カテゴリかつ関東地域の最大売上
MAX(IF [商品カテゴリ] = "家電" AND [地域] = "関東" THEN [売上] END)MINIFS に相当する処理
「商品カテゴリが『文房具』かつ地域が『関西』の売上の最小値」を計算したい場合は、以下のように記述します。
// 文房具カテゴリかつ関西地域の最小売上
MIN(IF [商品カテゴリ] = "文房具" AND [地域] = "関西" THEN [売上] END)
MEDIANIFS に相当する処理
「商品カテゴリが『飲料』かつ地域が『関東』の売上の中央値」を計算したい場合は、以下のように記述します。
// 飲料カテゴリかつ関東地域の中央値
MEDIAN(IF [商品カテゴリ] = "飲料" AND [地域] = "関東" THEN [売上] END)このように、IF 文と様々な集計関数を組み合わせることで、多様な条件付き集計を実現できます。
LOD表現との比較 (より高度な集計)
本稿で紹介してきた IF 文と集計関数を組み合わせた条件付き集計は、多くの場合に有効です。しかし、より複雑な集計や、パフォーマンスが重要な場面では、LOD (Level of Detail) 表現 が役立つことがあります。
LOD表現とは
LOD表現は、Tableauの強力な機能の一つで、ビューの詳細レベルとは異なる粒度で集計を行うことを可能にします。FIXED, INCLUDE, EXCLUDE の3種類のLOD表現があり、それぞれ異なる方法で集計の粒度を指定します。
LOD表現を用いた条件付き集計
例えば、先ほどの「商品カテゴリが『家電』かつ地域が『関東』の売上合計」を、FIXED を使ったLOD表現で計算すると、以下のようになります。
// LOD表現版: 家電カテゴリかつ関東地域の売上合計
{ FIXED : SUM(IF [商品カテゴリ] = "家電" AND [地域] = "関東" THEN [売上] END) }FIXEDで商品カテゴリと地域を事前に結合する事で、IF文をシンプルにする例は下記になります。
// LOD表現版: 家電カテゴリかつ関東地域の売上合計
{ FIXED [商品カテゴリ], [地域] : SUM([売上]) }
//条件を後から指定する。
SUM(IF [商品カテゴリ] = "家電" AND [地域] = "関東" THEN [家電カテゴリかつ関東地域の売上合計] END)この計算フィールドは、ビューの詳細レベルに関係なく、「商品カテゴリが『家電』かつ地域が『関東』」という条件で固定された売上合計を計算します。
IF文と集計関数の組み合わせ vs. LOD表現
どちらの方法が優れているかは、状況によります。
- IF文と集計関数の組み合わせ:
- 比較的シンプルで理解しやすい。
- ビューの詳細レベルに依存した集計を行う。
- 複雑な条件や、異なる粒度での集計を組み合わせる場合は、計算式が煩雑になる可能性がある。
- LOD表現:
- ビューの詳細レベルに依存しない、固定された粒度での集計ができる。
- より複雑な条件付き集計を簡潔に記述できる場合がある。
- パフォーマンス面で有利な場合がある(特に、データの粒度が粗い場合)。
- 使いこなすには、LOD表現の概念を理解する必要がある。
使い分けの指針 (初心者向け)
初心者の方は、まず IF 文と集計関数の組み合わせから始めるのが良いでしょう。この方法で多くの条件付き集計を実現できます。そして、より複雑な集計やパフォーマンスの最適化が必要になった際に、LOD表現の学習を検討してみてください。
LOD表現は強力な機能ですが、理解するにはある程度の慣れが必要です。まずは、IF 文と集計関数を組み合わせた方法をマスターし、その後、必要に応じてLOD表現に挑戦することをお勧めします。
まとめ
本稿では、TableauでExcelの SUMIFS や COUNTIFS 関数のように、複数の条件を満たすデータを集計する方法を詳細に解説しました。以下のポイントを理解することが重要です。
IF文と集計関数の組み合わせ:SUMIFSに相当する処理:IF文で条件に合致する行の値を抽出し、SUM関数で合計します。- 例:
SUM(IF [商品カテゴリ] = "家電" AND [地域] = "関東" THEN [売上] END)
- 例:
COUNTIFSに相当する処理:IF文で条件に合致する行を特定し、COUNTまたはCOUNTD関数で件数をカウントします。- 例:
COUNT(IF [商品カテゴリ] = "飲料" AND [地域] = "関西" THEN [商品ID] END)
- 例:
- その他の集計関数:
AVG,MAX,MIN,MEDIANなどと組み合わせることで、AVERAGEIFS,MAXIFS,MINIFS,MEDIANIFSに相当する処理も実現できます。
- Tableauにおける処理の流れ:
- 行レベルの条件判定: まず、
IF文によって各行に対して条件判定が行われます。 - 集計: 次に、
SUM,COUNT,AVGなどの集計関数によって、条件を満たす行の値が集計されます。 - 中間表のイメージ: 処理の過程を理解するために、条件判定の結果を示す中間表をイメージすることが有効です。
- 行レベルの条件判定: まず、
- LOD表現との比較 (発展):
- LOD表現は、ビューの詳細レベルとは異なる粒度で集計を行う強力な機能です。
IF文と集計関数の組み合わせは、多くの場合に有効で理解しやすい方法です。- より複雑な集計やパフォーマンスが重要な場面では、LOD表現が役立つ場合があります。
- 初心者の方は、まず
IF文と集計関数の組み合わせ をマスターし、その後、必要に応じて LOD表現 の学習を検討すると良いでしょう。
Tableauにおける条件付き集計は、Excelとは異なるアプローチが求められますが、本稿で解説したテクニックを理解することで、多様なデータ分析のニーズに対応できるようになります。
データ分析の幅を広げ、Tableauのスキル向上に繋げてください。
