Tableau

Tableau : IF文の「集計」「非集計」の混在を解決

こんにちは、エクスチュア渡部です。これから定期的にTableauやGoogleDataStudioのTipsを分かりやすくお伝えできればと考えています。

第1回目は、IF文における「集計」「非集計」についてです。

IF関数で計算結果を条件分岐させようとした際、「関数の集計および非集計の引数を混在させることはできません」と言うエラー文に悩まされている方は少なくないと思います。実はこれ、仕組みを理解すればとてもシンプルに解決することが出来ます。

その仕組みとは以下の通りです。

—–

IF [条件式]
THEN [結果1]
ELSE  [結果2]
END

において、
① [条件式]が集計なら、[結果1][結果2]も集計。
② [条件式]が非集計なら、[結果1][結果2]も非集計。

ただし以下は注意
(1) NULL及び、数値と文字列( 0,100,’合格’など )は、集計・非集計どちらとしても扱える。
(2) 表計算は「集計」、LOD式は「非集計」として扱われる。※詳細は本記事最下部

—–

集計とは「集計関数を用いた」状態、
非集計とは「集計関数を用いていない」状態(集計関数以外の関数や四則演算などはOK)です。
集計関数は主にSUM,AVG,MAX,MINなどの関数がメインです。
集計関数一覧(Tableauヘルプ)

つまり、
・[条件式]で集計関数を使うなら、[結果1][結果2]も集計関数を使う。
・[条件式]で集計関数を使わないなら、[結果1][結果2]も集計関数は使わない。
ということになります。

また、当然[条件式][結果1][結果2]に使用しているメジャーが、
計算フィールドによって作られた指標である場合、その計算フィールドが集計なら集計、非集計なら非集計として扱われます。

・「集計」「非集計」が混在出来ない理由

では、「集計」と「非集計」はなぜ共存出来ないのでしょうか?
それは集計関数を使った計算と、それ以外の計算の仕方の違いをみれば理解できます。

集計関数は、データソースの該当列の「全ての行」を用いて計算します。
一方で集計関数以外の関数は、全ての行を使用するというようなことはせず、
与えられた引数を処理するのみの関数です。

イメージを用意してみました。


※ROUND関数…指定された桁数に値を丸める関数。

このように計算の仕方が全く違うため、うまく条件分岐が行えなくなってしまうのです。
※「集計」「非集計」について理解を深めたい方は、TableauJapan社による記事をご参照ください。

「集計」「非集計」は最初はなかなか理解しづらい課題ですが、Tableauを使いこなす上での肝となる仕組みです。
仕組みを正確に理解できると、複雑な計算フィールドもスラスラかけたり、LOD式の理解が早まったりと良いことばかりです。

エクスチュアは国内では希少なTableau Certified Professionalも在籍するTableauのパートナー企業です。
また、Google Cloud Platform、Adobe Marketing Cloudといったマーケティングテクノロジーに精通した経験豊富なスタッフが、御社のビッグデータ分析をサポートします。

お問い合わせはこちらから

———

LOD式・表計算の補足

・LOD式
LOD式は、{FIXED [dimension] : SUM([measure])}のひと固まりを非集計として扱います。
補足)LOD式を集計として扱いたい場合は、MAX{FIXED[dimension]:SUM(measure)}と言ったように、LOD式全体を集計関数で囲います。

・表計算
表計算は、「WINDOW_SUM(SUM[measure])」や「index()」といった式全体を集計として扱います。

———-

ブログへの記事リクエストはこちらまで

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Tableau

    TableauでTreasure Data上のデータへ接続する方法(2019/10/02時点)

    ※こちらの記事は過去の手順です。新しい手順についてはこちらの記事を参…

  2. Tableau

    Tableau:分かりやすいLOD-FIXED編

    こんにちは、エクスチュアの渡部です。LODブログ第二弾です。今回は…

  3. Google BigQuery

    Tableau : BigQueryでLOD計算が使えない場合の対処法

    こんにちは、エクスチュアの渡部です。Tableau×BigQu…

  4. Tableau

    【TC19ブログ】セッション紹介:DataRobot×TableauでAIを民主化する

    こんにちは。エクスチュアインターン生の酒井です。11/12(火…

  5. Tableau

    Tableau:抽出を含んだワークブックを10.4以下にダウングレードする

    こんにちは、エクスチュアの渡部です。Tableauの小ネタです。…

  6. Tableau

    最年少DATA Saberになって感じたこと〜Tableau〜

    【目次】・自己紹介・DATA Saberとは・DATA Sabe…

最近の記事

  1. VPC Service Controlsで「NO_MATCH…
  2. モダンデータスタックなワークフローオーケストレーションツール…
  3. Streamlit in Snowflakeによるダッシュボ…
  4. Streamlit in SnowflakeによるStrea…
  5. Streamlitを使った簡単なデータアプリケーション作成ガ…
  1. Databricks

    Databricksを始める前に覚えておきたいScalaプログラミングの基本
  2. Python

    【完全版】MacでSeleniumを環境構築から実行まで 〜Python&…
  3. ヒートマップ

    Mouseflowの新機能:ライブヒートマップで動的なヒートマップ分析が可能に!…
  4. セッションリプレイ

    セッション・リプレイの機能強化
  5. Application Integration

    Google Cloud iPaaS 「Application Integrat…
PAGE TOP