
- Qlik Cloud
- Qlik Sense
- 開発者
- データロード
- 可視化・分析
Qlik Senseで前年同月のデータを求めてみよう!
Qlik Senseで分析を行う際、前年同月のデータを使って比較をしたいと思ったことはありませんか?
|
アンケートなどで複数選択の項目があった場合、回答を集計すると1行に複数の選択肢が入ってくることがあります。
例)Aさんの回答…選択肢1
Bさんの回答…選択肢1,選択肢2,選択肢5
このようなデータをQlik Senseに取り込み、分析する際のポイントをご紹介します。
※本記事は「2022年02月時点のSaaS」で作成しています。
以下のようなアンケート結果のデータがあります。
▼アンケート結果(元データ)
会員番号 | 回答 |
00001 | A |
00002 | B,C |
00003 | B,C,D |
このままロードすると、以下のような表示になり、Bなどが単体で選択できません。
この状態では正しく分析できません。
▼「回答」のフィルターパネル(元データの場合)
|
データを以下のような持ち方に変更できれば、正しく分析できるようになります。
こんな時に便利なのが、SubField関数です!
▼元データの持ち方を変更したデータ
会員番号 | 回答 |
00001 | A |
00002 | B |
00002 | C |
00003 | B |
00003 | C |
00003 | D |
▼「回答」のフィルターパネル(変更後のデータの場合)
|
SubField関数は、特定の文字ごとに文字列を区切って取得できます。
なお、データマネージャーではSubField関数が使用できません。
<基本的な構文>
------------------------------------------
SubField(値,'区切り文字',取得位置)
------------------------------------------
今回のアンケート結果を例に、以下のように記述すると、B・C・Dの値を1つずつ取得できます。
▼例
数式 | 戻り値 |
SubField('B,C,D',',',1) | B |
SubField('B,C,D',',',2) | C |
SubField('B,C,D',',',3) | D |
3つ目の引数を省略すると、特定の文字ごとに行を分けることができます。
以下の形式は、データロードエディタでのみ使用できます。
------------------------------------------
SubField(値,'区切り文字')
------------------------------------------
スクリプトを記述して、結果を見てみましょう。
--------------------------------------------------------------------
LOAD
会員番号,
SubField(回答,',') as 回答
FROM [lib://DataFiles/アンケート.xlsx]
(ooxml, embedded labels, table is Sheet1);
--------------------------------------------------------------------
▼ロード結果
会員番号 | 回答 |
00001 | A |
00002 | B |
00002 | C |
00003 | B |
00003 | C |
00003 | D |
▼「回答」のフィルターパネル
|
データの持ち方が変わり、正しく分析できる状態になりました。
各値が単体で選択できるようになり、選択した際の絞り込み結果も想定どおりです。
▼テーブルの絞り込み結果
|
今回、SubField関数で以下内容が可能なことをご紹介しました。
・特定の文字ごとに文字列を区切って取得可能
・特定の文字ごとに行を分けることが可能
(元データの持ち方を変更するため、データロードエディタでのみ可能)
▼場所別の使用可否
データマネージャー | データロードエディタ | チャート | |
SubField(値,'区切り文字',取得位置) | 使用× | 使用○ | 使用○ |
SubField(値,'区切り文字') | 使用× | 使用○ | 使用× |
SubField関数のように、チャート/スクリプトのどちらでも使用できる関数があります。
今回のように元データの持ち方を変更したり加工して扱いたい場合は、スクリプトで使用して、ロード時に処理を済ませておきましょう。
一般的に、ロード時に処理した方が、アプリ操作時のパフォーマンスが良くなるためです。
チャートの軸やメジャーは、アプリの画面が描画される度に処理されます。
選択肢を変えるだけでも画面は描画されますので、集計処理が複雑だったり、データ量が多かったりすると、その分パフォーマンスに影響が出ることになります。
おおまかですが、以下のように覚えておくと良いですね。
・元データの加工…ロード時に済ませておく
・データの計算……チャートで行う
Qlik Senseで分析を行う際、前年同月のデータを使って比較をしたいと思ったことはありませんか?
先行ロードの機能を使用すると、すぐ下に記載されたLOAD文の結果をデータソースとして、上のLOAD文で使用することができます。
テーブルに表示する列や行を、ユーザーが選択できるようにする方法をご紹介します!