- Qlik Cloud
- Qlik Sense
- 開発者
- 可視化・分析
Layout container を使って映えるダッシュボードを作成しよう!
「Layout container」を使えば、最新のQlikビジュアライゼーションでカスタマイズ性が高く、細やかなデザインの画面が作れます!
|
皆さんはQlik Senseのチャートの値に「-」が入っているのを、見つけたことはありませんか?
これはNULL、つまり「値が無い」ことを表しています。Qlik Senseではこのように、NULLのデータも「-」として可視化できる、という強みがあります。
ただし、このNULLを表す「-」は、実態として値が無いという理由から、他のデータのように画面上から選択することができません。
NULLに関連するデータを確認する場合や、なぜNULLが入っているのか原因追求する場合は、このNULLを選択できると便利ですよね。このページでは、Qlik SenseでNULLを選択するにはどのようにすればよいか、お伝えします。
※本記事は バージョン「May 2021」の[SaaS]で作成しています。
「NULL」とは、そのレコードに値が無いことを表す特殊な値のことです。
Qlik SenseでNULLlが発生するパターンは大きく3つあります。
<パターン1>
最もよくあるのが、複数データの「関連付け」によって、欠損値が発生する場合です。
例えば、以下のようなケースが挙げられます。
売上テーブルには、得意先ID「B001」~「B012」の売上データが入っています。
■売上
|
ただしもう1つのデータ、得意先マスタには、得意先IDが「B001」~「B008」までしか用意されていません。
■得意先マスタ
|
これらのデータを取り込むと、共通の項目である「得意先ID」で関連付けが行われます。
|
このとき、編集画面上でテーブル間の項目を組み合わせたチャートを作成すると、得意先マスタには、売上に含まれる得意先ID「B009」~「B012」のデータが存在しないため、NULLが発生します。
|
上記のように、Qlik SenseではNULLのデータを「-」で表示するため、Nullのデータが存在していることを直感的に発見することができます。これがNULLの可視化です。
<パターン2>
続いては、JOINやConcatenateプレフィックスなどによる「テーブル連結」によって、欠損値が発生する場合です。
パターン1との違いは、テーブル間を「関連付ける」のではなく、1つのテーブルに「連結する」という点です。パターン1の例と同じ売上と得意先マスタのテーブルを、JOINプレフィックスで連結しQlik Senseに取り込むと、テーブルビューアーには1つのテーブルとして表示されます。この時点で、得意先マスタに用意されていなかった得意先ID「B009」~「B012」の「得意先名」や「地域」はNULLとして「-」で表示されます。
|
もちろんデータモデルビューアだけではなく、編集画面上のチャート内でも同じようにNULLは「-」で表示されます。
|
<パターン3>
最後のパターンは、以下の赤枠部分のように、そもそも取り込むデータに空欄が含まれている場合です。
|
空欄のデータはQlik SenseにNULLとして取り込まれます。
|
上記3つのパターンによって発生したNULLは、「-」で表されることにより、NULLが存在することを「確認する」ことはできますが、他の値のように「選択する」ことはできません。
NULLのデータを可視化できるだけでも十分Qlik Senseの素晴らしい特長ですが、さらにそのデータを選択し、関連データを確認できるようにするにはどうすればいいか、次の章でお伝えします。
NULLが選択できない理由は「実態として値が無いから」であるため、
選択したい場合は、NULLを別の値(文字列)に置き換えます。
NULLが発生するパターンそれぞれで、置き換える方法が少し異なります。
<パターン1の場合>
売上・得意先マスタ、それぞれのデータにNULLが存在しているわけではなく、テーブルの関連付けによってNULLが発生しているため、「Aggr関数」を使用してまずはNULLのレコードにフラグを立てます。
---------------------------------------------------------------------------------
■Aggr関数
Aggr関数とは、指定した軸項目ごとに値を集計する関数です。
Aggr(数式, 軸項目名)
例)地区名ごとに売上金額を集計し、その結果(の配列)を返します。
Aggr(Sum(売上金額),地区名)
---------------------------------------------------------------------------------
※Aggr関数について、もっと詳しく知りたい方はこちら!↓
Qlik Training ブログ ー Aggr関数再入門(Aggr関数の詳細と使用例)ー
https://www.ashisuto.co.jp/qlik-training_blog/article/aggr-function.html
今回はパターン1の例で、テーブルの軸に「Aggr(Count(地域),得意先ID)」を設定してみます。
※「得意先ID」ごとに「地域」の数を返します。
すると、得意先ID「B009」~「B012」は地域がNULLのため、得意先IDごとの地域のカウント数は「0」となります。
|
このようにAggr関数を使うことで、「地域」項目に値が入っているレコードには「1」、NULLのレコードには「0」と、フラグを立てることができるため、あとはIf関数を組み合わせて数式を記述します。
---------------------------------------------------------------------------------
例)「地域」ごとに「得意先ID」の数を数えたときに
「0」になる場合は、「該当なし」という文字列に置き換えます
If(Aggr(Count(地域),得意先ID)='0','該当なし',地域)
---------------------------------------------------------------------------------
|
このように、NULLを別の値に置き換えることによって、選択できるようになります。
棒チャートでも同様に上記数式を設定すると、棒の選択が可能となります。
|
<パターン2,3の場合>
パターン2,3の場合は、どちらも1つのテーブルの中にNULLの項目があるとQlik Senseが認識しています。この場合は、IsNull関数を用いて、対象項目のNULLを任意の値に置き換えます。
---------------------------------------------------------------------------------
■IsNull関数
IsNull関数とは、Nullかどうかを判定する関数です
IsNull(項目名)
例)「部署名」がNullの場合は「新設部署」という文字列に置き換えます
If(IsNull(部署名),'新設部署',部署名)
---------------------------------------------------------------------------------
今回はパターン3の例で、NULLが表示されていた棒チャートの[データ]タブ「部署名」の [項目]に、上記数式を入力します。
|
すると、チャート上の「-」が「新設部署」という別の値に置き換わっていること、またチャート上の棒が選択できるようになっていることが確認できます。
|
・NULLとは、レコードに値が無いことを表す
・Qlik SenseではNULLを「可視化」できるのでデータが無いことを知ることができる
・ただし、NULLを選択するには、NULLを別の値に置き換える必要がある
・NULLが生じるパターンは大きく3つあり、それぞれで置き換える方法が異なる
NULLについてご理解いただけましたでしょうか?
Qlik SenseにはNULLのデータも可視化できるという強みがありますが、
NULLを別の値に置き換えることで、さらにNULLを選択することも可能になります。
データを取り込んだ後、チャート内に「-」を見つけた際は、ぜひ上記方法で値を置き換え、選択し、NULLデータの探索をしてみてください。
NULLになっている原因や、集計結果が合わない原因などが見つかるかもしれません。
「Layout container」を使えば、最新のQlikビジュアライゼーションでカスタマイズ性が高く、細やかなデザインの画面が作れます!
Qlik Senseのアプリ内で同一の軸やメジャーを使い回したり、複数のチャートのメジャーを任意の色に揃えたいことはありませんか? 「マスター アイテム」の機能を使えば、これらを効率的に行えます! 今回はマスター アイテムに「メジャー」を登録して活用する方法を紹介します。
【皆さんは、Qlikが提供している認定試験をご存知でしょうか。複数ある認定試験の中でも、Qlik Sense ビジネスアナリスト認定試験は日本語で受験可能です。今回は、Qlik Sense ビジネスアナリスト認定試験の受験者向けに、実際に試験を受験し合格した体験を報告します。