はじめに

私たちデータストラテジー第1事業部では、BI利活用促進やDWHの構築などを通して、スピード感のあるDX推進をご支援するために様々な業務を行っています。

中でも私は米Tableau Software社(https://www.tableau.com/ja-jp )が提供するセルフBIツールであるTableauを用いた分析支援を担当し、今年で6年ほどになります。

主にTableauのViz(ダッシュボード)要件定義や開発に携わり、最近ではお客様のTableau開発における技術問い合わせ対応や簡単な技術研修なども実施させて頂いております。

ここではこれまで私が受け持ってきたViz作成業務の中で困った際の解決方法や、技術検証の結果等を備忘的に書いていく予定です。

必ずしも「この方法が正しい」と喧伝するものではなく、あくまで「私はこう解決しました」という体験記事になります。その点ご承知おき頂いたうえでお目通しください。


目次

1.概要
2.どんな要望があって、何が問題だったの? 
3.では、どうする?
4.さいごに


1.概要

Vizを作成してほしいと依頼を頂く際によく必要な要素としてテーマに上がる、年度単位での集計についての記事になります。

年(1月開始)単位ではなく、会計年度の開始となる4月開始にした年度単位での集計方法についての記事です。

Tableauに触れ始めた方に接する中でよく尋ねられる事柄です。Tableauの忘れられがちな制約も含めて書いてみます。


2.どんな要望があって、何が問題だったの?

要望:クイックフィルターで選択した各月売上の年度売上に占める割合を見たい。

Tableauでの会計年度の設定方法や、会計年度設定後の1年ずれる問題については割愛させて頂きます。(検索するとすぐ出てきます)

既に作り慣れている方であれば、表計算から「合計に対する割合」を選択する事で表示自体は対応可能であると看破されるかと思います。

ただ今回はクイックフィルターで年月を選択した際に影響が出ないものを作成したいと云うご要望でした。

なので今回はLOD(FIXED)を用いて年度単位の集計を行う際の手順を書いていきます。


・作ってみよう

計算フィールド上でFIXEDで粒度を年単位に指定して終わり!




……で終われば良いけど、そう上手くはいかない。

計算結果を見てみましょう。

計算フィールドで作成した年度ごとの売上の値を見ると、どうやら1月~12月までの年単位で集計してしまっていることが分かります。

会計年度に設定した4月始まり3月終わりの期間単位で集計したいのに……。


・どうしてこうなる?

公式ページの記載を見てみましょう(使い慣れてる人でも意外と知らない人がいるように感じる気がします)

 注: 日付関数は、構成された会計年度の開始を考慮しません。日付関数を参照してください。

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

……

これを今の状況に当てはめると、

「下記の計算フィールド内でDATEPARTを指定していたけど、会計年度の設定は無視するよ。だから年度(4月始まり)じゃなく年(1月始まり)単位で集計するよ」

ということになります。

{ FIXED DATEPART(‘year’, [オーダー日(年度設定)]) : SUM([売上])}

それ故、作成した計算フィールドでは4月開始ではなく1月開始の集計がされていました。


3.では、どうする?

これもまたこの記事を読んて頂いた各人それぞれ対応方策があるかと思います。

冒頭でも記載しましたが、私の書く記事では「これが絶対唯一の解決策ですよ」と云うものではなく「あくまで私はこう解決してますよ」という体験記事です。

対応の方策もいくつかあるうちの一例として読んで頂ければと思います。

私はこういう年度単位の集計にはカスタム日付を使用しています。

もちろん例えばFIXEDで下記のように計算式内で年度単位のFROM,TOを使用するという方法でも対応は可能です。

{FIXED XXX,YYY : SUM(IF [年度開始日] <= [オーダー日] AND [オーダー日] <= [年度終了日] THEN [売上] END) }

ただ、そのためには年度の開始日、終了日を計算フィールドで作成する必要があり――と、必要な項目が増えてしまいます。

それが面倒で私はカスタム日付を使用しています。
とはいえ手順としては本当に大したものでもありません。

会計年度を指定し、-12か月(会計年度のずれ対応)した日付ディメンションを右クリックし、作成からカスタム日付を選択します。

作成ダイアログで詳細に「年」を指定。

作成したカスタム日付を使用して新たに下記のような計算フィールドを作成します。

作成した計算フィールドをビュー上に配置すると1月始まりではなく4月開始の年度単位で集計が出来ました。

これで年度比も計算できます。

単月で絞り込んでも表計算を使用していないので年度比はそのままです。


4.さいごに

会計年度の設定自体は知っていても、日付関数では会計年度の設定が無視されるという事を知らない人も多いのかなと感じ、この記事を書きました。

冒頭で触れましたように最近は業務で技術的なQA対応もさせて頂く中で、何度かこのご質問を頂くことがあります。

仕様を知ってしまえば対応できるのですが、知らないとハマったり、バグでは?と勘違いしてしまうことも多いかと思い、まとめてみました。

読んでいただきありがとうございました!