Qlikの日付処理のベストプラクティス〜第6回 2つの時間軸を1つのチャートに収める〜

こんにちは!Yokoです。
昨日まで、札幌オフィス勤務でしたが、オフィスの周りはこんな感じに雪が積もっており…
昔は、これくらいは積もっていたとは思うんですが、これは近年にないドカ雪です😄
そして、危ないなあとは思ってはいたんですが、油断した隙に初滑りをしてしまいました😂
東京に戻る日だったので、冬靴ではないから仕方ないですね。
あ、そうそう、北海道では革靴であっても冬靴という底がギザギザになっている靴があり、冬はこのタイプしか店頭にないんです。
あのREGALでさえ、冬用の靴があるんですよ。

さて、日付処理ベストプラクティスの第6回目となりました。
今回は2つの時間軸を1つのチャートで使う方法をご紹介します。

目次

時間軸が複数あって困ってしまうケース

ECサイトのように、受注日と売上日のように2つの時間軸がある場合、皆さんはどうしていますか?
・受注日と売上日のチャートを2種類作る
・受注日と売上日を軸切り替え表示する
どちらも正解ですが、「受注と売上を両方表示してよ」って上司に言われたら?
こんな時、時間軸をUNIONできたらどれだけいいかって思いますよね。
僕が知る限り、そういう機能強化は聞いたことないので、多分できないと思う。

ではどうするか…
UNIONして、外部テーブル化するんです。
UNIONできないよね? 外部テーブル?
実は超簡単なんですよ。
ではその方法を解説していきます。

データモデルで外部テーブルを作成

以下のようなデータモデルがあります。
受注売上テーブルには、受注日売上日があり、会員IDで顧客テーブルと結合されています。
この状態のままでは、時間軸は受注日と売上日は別々の日付項目ですので、チャート上の軸はいずれか一つしか設定できません。

受注日と売上日を軸に折れ線チャートを作ってみると、上のようになります。
非常に近似していて違いがわかりませんよね。でも、重ね合わせてみれば、差異ははっきりするはずです。

重ね合わせるために外部テーブル化するには、受注売上テーブルから以下の手順で作成します。

  1. 受注売上テーブルに受注日-売上日で日付KEYを作成
  2. 外部テーブル(日付テーブル)にユニークな組み合わせを抽出
  3. CrossTableでアンピボット

ロードスクリプトは以下のようになります。

会員:
LOAD
    会員ID,
    入会日
FROM [$(vDataPath)/customers.csv]
(txt, utf8, embedded labels, delimiter is ',', msq);

受注売上:
LOAD
    会員ID,
    受注日,
    売上日,
    受注日 & '-' & 売上日 as 日付KEY, //日付KEYを追加
    伝票番号,
    商品コード,
    数量,
    金額
FROM [$(vDataPath)/order_sales.csv]
(txt, utf8, embedded labels, delimiter is ',', msq);

//日付KEYをキーにしてアンピボット
年月日:
CrossTable('区分','年月日',1)
Load 
	Distinct
	日付KEY,
	受注日 as 受注,
	売上日 as 売上
Resident 受注売上;

データモデルはこんな風になります。
[日付]という外部テーブルに、受注日と売上日が[年月日]という新しい日付項目として追加されました。
[区分]には、受注または売上が入ります。
あとは、Auto Calendarにも[年月日]を追加し、派生項目を発生させます。
Auto Calendarについては、こちらの記事を参考にして下さい。

統合した時間軸でチャートに実装

今回は折れ線チャート(エリア表示)に受注と売上を同時に表示させるよう設定してみます。
設定は以下のとおりです。

設定項目設定内容
データ > 軸 > グループ年月日.fiscal.YearMonth
エリア区分
メジャーSum(金額)

設定が終わったら表示してみましょう。
受注と売上が同時に表示できるようになりましたね。

まとめ

複数の時間軸を統合して、1つのチャート上で表示する方法の一つとして、外部テーブルでUNION化する方法をご紹介しました。
「なあ〜んだ」って感じですよね😄
何か限界にぶち当たったら、ロードスクリプトをちょこっと修正してデータモデルを工夫してみる
これが簡単にできるのもQlikの魅力の一つです。

次回は複数のテーブルにまたがる時間軸を同時に表示する方法を解説したいと思います。
ではまた!

関連記事はこちら
Qlikの日付処理のベストプラクティス〜第1回 Auto Calendar〜
Qlikの日付処理のベストプラクティス〜第2回 カレンダーの切り替え〜
Qlikの日付処理のベストプラクティス〜第3回 前年比較の表現〜
Qlikの日付処理のベストプラクティス〜第4回 日付ピッカー(Date Picker)の最適設定〜

Qlikの日付処理のベストプラクティス〜第5回 SCD(IntervalMatch)を使用した組織改編への対応

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次