Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Qliksenseで以下のようなデータを取り込んで、月末在庫を基点に
入出庫データを「rangesum」を使って累計計算し、ピボットテーブルで在庫推移を表現したいのですが、
日付の欠損箇所に前日と同数の在庫数を表現したい場合、「入出庫」の”0”データを事前に
生成して、データに含めるしか方法がないでしょうか?
計算式を下記へ変更して、チャートのプロパティーの「プレゼンテーション」タブの'0値を隠す'にチェックを入れると大丈夫だと思います。
RangeSum(Before(TOTAL SUM(数量),0,ColumnNo(TOTAL)))+SUM({1}0)
すみません、上記だと、日付絞るとダメですね
データアイランドを使用する方法とスクリプトで製品+日付のデータを生成する方法の2種類あります。
添付ファイルを参照してください。
上のピボットテーブルは製品+日付のデータを生成した作成したもので、下のピボットテーブルは
データアイランドを使用して作成したものになります。
どちらも抜けている日付データは必要なので、元データより日付データを生成しています。
元データに紐づけるか、紐づけないかでUIの軸と数式の設定と記述が変わります。
データモデルビューアを見ると紐づいていない日付データと紐づいている製品+日付データが存在するのがわかります。
紐づけた方がパフォーマンスは良いです。
合成キーがありますが、これをなくす処理をスクリプトで行うとデータモデルは綺麗になります。
'0値を隠す’のチェックを外して、計算式を
RangeSum(Before(TOTAL SUM(IF(ISNULL(数量),' ',数量)),0,ColumnNo(TOTAL)))+SUM({1<日付={"$(='>='&MIN({<製品名=>}日付)&'<='&MAX({<製品名=>}日付))"}>}0)
とすると、データが無い日も表示は出来ましたが、添付画像のように製品名にNULLの行が出来てしまいますね。
ご連絡ありがとうございます。
'0値を隠す’のチェック 自体が見当たらないのですが
これはQlikviewだけに存在するものですかね?
それともQliksenseのバージョンが違う(我々が古い)のか?
ご連絡いただいた計算式でも表示できなかったので、
もう少し考えてみます。
rangesum()の話でしたね。
こちらで出来ます。
事前に何かしら処理する場合の方法になりますが。
そもそもなのですが、元データからだけだと7/2などデータないの日付は表示されないと思うのですが、
現状データのない日付は表示されていますか?
色々とご連絡ありがとうございます。
まだいただいた内容で検証ができていませんので、
この後検証してみます。
事例としてあげたデータが情報不足でした。
製品名にBとかC...など複数ありまして、それぞれに入出庫のデータが
日付バラバラであるため(在庫だけは全製品前月末データがある)
結果として全製品を並べると、日付は全期間揃っていて
製品別に見た時に所々に欠損が発生するという状態となります。
Qlik Senseでは計算で表示される欠損値は値として扱えないので、データアイランドか
製品名+日付のマスタを作成する形になります。
0値を隠すはQlikViewの機能でQlik Senseには存在しません。