QlikViewナレッジ - INSIGHT LAB

QlikViewのDual値【文字列でも数値でもあるデータ】

作成者: Deck|2020年1月13日

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に読み込ませると便利に集計が行えますね!