はじめに
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のスキル向上に繋げてください。
コメント