■目次
Qlik senseのDual値:文字列なのにSumで集計できる!?
こんにちは。Deckです。
今回はQlikViewの特徴的な機能であるDualを解説します。
Dualとは「画面上では文字列だけど、数値としても計算できる」データのことです。
一見しただけではわかりにくいかもしれませんが、使いこなせると非常に便利な機能です。
サンプルを参考に、Dualとはどんなものか見てみましょう。
Qlik SenseでDualを使う方法はこちらの記事をどうぞ
まず、以下のような生活習慣のアンケートデータを考えます。
朝食を食べる頻度はどのくらいですか?
数値回答1
1 | 毎朝食べる |
2 | ときどき食べる |
3 | ほとんど食べない |
1食にどのくらいの量を食べますか?
数値回答2
1 | 腹八分目まで食べる |
2 | 満腹になるまで食べる |
週にどのくらい運動をしますか?
数値回答3
1 | 週に数回以上 |
2 | 週に1~2回 |
3 | ほとんど運動しない |
ここでは回答1~3を足し合わせて肥満リスクを計算するとしましょう。
たとえば、「朝はほとんど食べない(3)」+「1食は腹八分目まで食べる(1)」+「週に1~2回運動する(2)」という人は3 + 1 + 2 = 肥満リスク6 のように計算します。
Dualには「文字列だけど、数値として計算もできる」性質があるので上のようなデータもとてもわかりやすく集計できますよ!
サンプルデータ
今回使用するサンプルデータはこちらからダウンロードできます。
zipファイルには「アンケートデータ」+「アンケートの回答と数値の対応データ」が入っています。
アンケートデータの集計
ロードスクリプト編集画面からファイルを読み込みます。
「テーブル ファイル..」をクリックします。
対応表1・対応表2・対応表3・アンケートデータの順で追加を行ってください。
データの追加を繰り返して回答と数値の対応表、アンケートデータのスクリプトを追加します。
数値と回答を変換するため、対応表をマッピングテーブルとして取り込みます。
スクリプトを以下のように編集します。
- テーブル名を「朝食を食べる頻度_Mapping」「一食の量_Mapping」「運動_Mapping」に設定
- LOAD文の前にMappingを追加
アンケートデータの読み込みスクリプトを以下のように編集します。
LOAD
回答者,
Dual(ApplyMap('朝食を食べる頻度_Mapping',回答1),回答1) as 回答1,
Dual(ApplyMap('一食の量_Mapping',回答2),回答2) as 回答2,
Dual(ApplyMap('運動_Mapping',回答3),回答3) as 回答3
以上でスクリプトの準備が完了しました。
データをロードし、シートの編集画面に移りましょう。
集計テーブルの作成
シートの編集画面からテーブルを作成します。
軸に「回答者」、「回答1」、「回答2」、「回答3」を追加します。
メジャーとして「肥満リスク」を追加します。
数式は「Sum(回答1+回答2+回答3)」とし、ラベルは「肥満リスク」とします。
合計モードは「合計なし」に設定します。
完成
アンケートデータの集計テーブルが完成しました。
「回答1~3」は文字列として表示され、「肥満リスク」は数値として集計されています!
このように、「数値と文字列の両方の性質を持つ」データはDualを使ってQlikViewに読み込ませると便利に集計が行えますね!