Skip to main content

はじめまて。栗原と申します。

お恥ずかしながら、下記の操作に手こずっており、ご協力いただけますと幸いです。

時系列データの平均値算出についてお伺いしたいです。

​貿易統計のような月次データを年次表示したグラフにおいて、2020年のみ1~6月の合計値が表示されている状態です。

2020年1~6月の合計値を年率換算するために、以下の方法を検討しているがうまくいかないので、その方法を教示いただきたいです。

<現状>

・すべての年(2014年~2020年)の平均値を求める

・上記平均値に12を乗じる

・おそらくは、平均値算出の段階で2020年1~6月の合計値が12で割られているため、上記で12を乗じた時に、元の1~6月期の合計値に戻ってしまう

7 comentários
  1. 10 de ago. de 2020, 14:27

    なるほど、7/1以降は、値が存在しないわけではなく、0という値が存在していて日付も存在している、というお話ですね。

     

     その場合は、おっしゃる通り、​元の式ですと、月数のカウントが6ではなく12と数えてしまいます。

    理由は、前回記載しました下記の式は、単純に、年内の月数をカウントしていることが理由です。

    • { INCLUDE DATEPART('year', [オーダー日]):COUNTD(DATEPART('month', [オーダー日]))}​

    なので、7/1以降も日付の値が存在している場合は、「売上が0より多い場合のみ月数をカウントする​という条件を追加すれば丈夫だと思います。

    具体的には、下記の式になります。

    SUM( [売上]  / { INCLUDE DATEPART('year', [オーダー日]):COUNTD( IF [売上]>0 THEN DATEPART('month', [オーダー日]) END)} * 12)

    なるほど、7/1以降は、値が存在しないわけではなく、0という値が存在していて日付も存在している、というお話ですね。 その場合は、おっしゃる通り、​元の式ですと、月数のカウントが6ではなく12と数えてしまいます。​理由は、前回記載しました下記の式は、単純に、年内の月数をカウントしていることが理由です。{ INCLUDE DATEPART('year', [オーダー日]):COUNTD(DATEPAR

    ​​

    ​変更したのは、sum内の分母に当たる下記の部分の中の、​

    ​ { INCLUDE DATEPART('year', [オーダー日]):COUNTD( IF [売上]>0 THEN DATEPART('month', [オーダー日]) END)}

    下記の、太字下線斜体の部分になります。

    • COUNTD( IF [売上]>0 THEN DATEPART('month', [オーダー日]) END)}

    作成したフィールドをワークシートで見ると、下記の状態になります。

    年換算の売上(クロス集計)

    • 「年ごとの月数(変更前)」が、前回と同じ形で月数をカウントしていて12になっています。
    • 「年ごとの月数」が、「売上が0より大きい場合のみ月数をカウント」という条件を加えているため、6とカウントしています。

     

    作成したワークブックをTableauPublicにアップしましたので、併せてご確認頂ければと思います。

    https://public.tableau.com/profile/.88185021#!/vizhome/28075/1

    こちらでご要望の値が計算されるか、ご確認頂ければ幸いです。

    なお、今回のように、

    • 参照しているデータの状態
    • ディメンションの状態や配置
    • 表現するグラフの内容

    等によって、同じ計算式でも結果が変わってくる可能性がありますので、もし、今回もごご要望通りの値が表示されない場合は、

    • ダミーデータで作成されたtwbxファイル
    • (可能であれば)実現したい理想形のスクショ、もしくは、理想形が具体的に分かる何か

    等を併せて添付していただけると、​より具体的にご要望に沿った返答ができるかもしれません。

    データの形式さえ同じであれば、中身の数字はダミーで大丈夫ですので、お手数ですが、もし、今回もご要望の形になっていなければ、ご検討いただければ幸いです。

    以上になります。

     

    ご不明点等ありましたら、コメント下さいませ。​

0/9000