QlikSense

QlikSenseでテーブルチャートを作ってエクスポートしたら数値が文字扱いになった件

QlikSense-テーブルチャート
記事内に商品プロモーションを含む場合があります

QlikSenseでテーブルチャートを作り、データエクスポートしたら数字が文字列扱いになってしまいました。

ちょっと困ったので今回の事象と回避方法をご紹介します。

今回の現象

今回QlikSenseで以下のようなテーブルチャートを作りました。

体重チャート

それぞれの値は以下のようになっています。

初回体重 ロードスクリプトで取得
現在体重 ロードスクリプトで取得
現在までの体重増減 軸(計算式) 現在体重ー初回体重
現在までの体重増減率 軸(計算式) (現在体重ー初回体重)/初回体重

現在までの体重増減と増減率はプラスになった時のみ背景色を変更するよう以下の式をセットしています。

IF(現在体重>初回体重, yellow, white)

画面上は正しく表示されていましたが、このチャートをエクセルにエクスポート(チャートを右クリックしてエクスポート)すると、エクセル上で計算式の値が文字列扱いになってしまうという現象になりました。

数字なのに文字列扱いになると、数値をフィルターで条件指定できない点が一番のデメリットです。左寄せに表示されるのも見づらいです。

このような状態だと一旦数値に変換し、保存し直す手間が発生します。

QlikSenseの仕様と回避方法

結論から言うと、計算式をメジャーとして登録すると数値として出力することが分かりました。

今回、集計などが不要だったため、テーブルチャートで実装し、全項目を「軸」として設定していました。

私の認識では、軸とメジャーの関係を以下のように解釈していました。

軸   :データ分析を行う単位や切り口
メジャー:集計値(SumやAvgなどの集計関数によって取得)

今回は集計する訳ではないので全部軸で良いと思ったのです。

画面上、軸だろうとメジャーだろうと正しく表示はできていたのですが、エクスポートデータに影響があるならメジャーで登録し直します。

初回体重 ロードスクリプトで取得
現在体重 ロードスクリプトで取得
現在までの体重増減 メジャー(計算式) 現在体重ー初回体重
現在までの体重増減率 メジャー(計算式) (現在体重ー初回体重)/初回体重

この変更の結果、エクスポートすると、全項目を数値で出力するようになりました。

ちょっとしたことですが、今後は気をつけたいと思った次第です。

軸であれば列の表示順を変更すると、エクスポートしたエクセルシートの項目もその順に配置されますが、メジャーはその特性上軸より前に出力することはできないようです。QlikSense公式サイト参照

Qlik Senseからテーブルをエクスポートすると、結果の.xlsxファイルには、
Qlik Senseテーブルのビジュアライゼーションでの順序に関係なく、
メジャーの前に軸が取り込まれます

ABOUT ME
アズビーパートナーズ
プログラマー→社内SE→SIerのお仕事をしています。 メーカー勤務を経て、中小企業の社内SE、フリーランスなど様々な形態で働いてきました。 業務上生まれた困った…を解決してきたTipsを備忘録も兼ねて公開しています。 困っている誰かのお役に立てれば幸いです。