Skip to main content

お世話になります。

添付の様なグラフを用いて、生産状況の進捗を

管理しています。

列は日付です。​

計画数、実績数、差異は、簡易表計算の累計を

使って折れ線グラフを作成しました。

​月の途中で進捗を確認する場合、添付でいう1/17以降の実績数、差異は線グラフの部分を見えないようにしたいです。

そのようなことは可能でしょうか?

どなたかアドバイスをよろしくお願いいたします。

(説明不足の部分もあるかと思いますが、ご容赦願います)

답변 7개
  1. 2021년 1월 23일 오전 7:49

    まず、NULLとゼロの区別を明確につけてください。NULLはデータが存在しないことを表し、ゼロはゼロという数値データが存在することを表します。私が先に挙げた式は条件に合わない(1月17日よりも後の日付)箇所のデータをNULLにしていますが、Iwamotoさんが記述した式だと条件に沿わない箇所はゼロとしていますので、Y軸上のゼロの位置にマークが追加されてしまいます。

    まず、NULLとゼロの区別を明確につけてください。NULLはデータが存在しないことを表し、ゼロはゼロという数値データが存在することを表します。私が先に挙げた式は条件に合わない(1月17日よりも後の日付)箇所のデータをNULLにしていますが、Iwamotoさんが記述した式だと条件に沿わない箇所はゼロとしていますので、Y軸上のゼロの位置にマークが追加されてしまいます。​ここで仮に「ELSE 0」を式中

    ここで仮に「ELSE 0」を式中から除外すると次のようになりますが、これはおそらく求めているものではないと思います。

    キャプチャ

    こうなってしまう理由が、データの集計と非集計という概念、そしてATTR関数の使い所と関係します。ATTR関数は「ビュー内の粒度で集計したときに、データが1種類であればそれを、2種類以上であれば * を返す」という集計関数です。

    https://help.tableau.com/current/pro/desktop/ja-jp/calculations_calculatedfields_aggregate_create.htm

    先ほどの図にはマークが2つしかありませんが、これは「ATTR([Status]) = '実績'」に該当するものが2つしかないということの現れです。他の日付は後半の条件を満たさないためNULLになります。

    キャプチャ

    このサンプルの場合、[Status] が実績であるかどうかを判定するのは日毎に集計した値で考えるのではなく、レコードレベル(非集計)の値で考えるべきなので、ATTR関数を使って集計してはいけません。[Status] は、すべての集計の前段階で判定する必要があります。これを加味して式を作り変えると、おそらく期待しているようなグラフになっていると思います。

    キャプチャ

    Tableauを扱う上で個人的に重要な基礎概念と考えているものは

     ・ディメンションとメジャー

     ・連続と不連続

     ・集計と非集計

    です。​今回は一番下の集計と非集計の理解を深めることで問題を解消することができます。(これらの概念の他に、すべての計算の根拠となるクエリパイプライン/Order of Operationsというルールがあります。) 

    集計と非集計については公式ヘルプ内にもあまり実用的な記載がないように思う(※個人の感想です)ので、今回のようにフォーラムで質問していただくか、ユーザー会のような場で詳しい人に教えてもらったり、あるいは書籍​を参考にしてみたりしてはいかがでしょうか。書籍はAmazonで検索をかければ、日本語のものが複数出てきます。

0/9000