新たに定義した軸で分析-ValueList
はじめに
今回は以下のようなKPI表の作成を例にとってValueList()関数の使い方をご紹介したいと思います。
この表では「売上高」、「売上原価」、「売上総利益」、「売上総利益率」といった軸が値が利用されていますが、これらの値はソースデータのどの項目にも含まれていません。そのような場合には他の方法で上記の様な表現のテーブルを作成することが難しいのですが、ValueList()関数を使って新たな軸の値と集計方法を定義し、このようなテーブルを作成することができます。
ValueListの使い方
では、実際にValueListを使って表を作成してみたいと思います。ここでは以下のサンプルデータを利用しますのでファイルをダウンロードし、新たなアプリを作成してこのデータの取り込みを行ってください。
データを取り込んだ後、シートを開いてテーブルを配置します。
「軸を追加」をクリックし、「数式エディタを開く」のアイコンをクリックします。
以下の数式を入力し、「適用」を選択します。ここでは軸の値として定義する4つの値をValueListの引数に指定しています。
=ValueList('売上高','売上原価','売上総利益','売上総利益率')
右側のプロパティパネル上で、追加した軸のラベルを「KPI」に変更します。
「列の追加」>「メジャー」を選択し、「数式エディタを開く」のアイコンをクリックします。
以下の数式を入力し、「適用」を選択します。ここでは、「売上高」、「売上原価」、「売上総利益」、「売上総利益率」それぞれの軸の値に適用する数式を、IF文をネストして指定しています。
If( ValueList('売上高','売上原価','売上総利益','売上総利益率') = '売上高', Sum([売上]),
If( ValueList('売上高','売上原価','売上総利益','売上総利益率') = '売上原価',Sum([原価]),
If( ValueList('売上高','売上原価','売上総利益','売上総利益率') = '売上総利益', Sum([売上]) - Sum([原価]),
If( ValueList('売上高','売上原価','売上総利益','売上総利益率') = '売上総利益率', ( Sum([売上]) - Sum([原価]) )/ Sum([売上]),
)
)
)
)
追加したメジャーのラベルと数値書式を以下の形に変更します。
「スタイル」>「プレゼンテーション」のタブを開き、「合計」の表示をOFFにします。
以下の表が完成したことを確認します。
尚、上記の表では全ての値に数値の書式を適用していますが、それぞれの値に異なる書式を適用したい場合には、以下のような形でNum()関数を数式に追加して書式を適用することができます。
If( ValueList('売上高','売上原価','売上総利益','売上総利益率') = '売上高',Num(Sum([売上]),'¥#,##0;-¥#,##0'),
If( ValueList('売上高','売上原価','売上総利益','売上総利益率') = '売上原価',Num(Sum([原価]),'¥#,##0;-¥#,##0'),
If( ValueList('売上高','売上原価','売上総利益','売上総利益率') = '売上総利益', Num(Sum([売上]) - Sum([原価]),'¥#,##0;-¥#,##0'),
If( ValueList('売上高','売上原価','売上総利益','売上総利益率') = '売上総利益率', Num(( Sum([売上]) - Sum([原価]) )/ Sum([売上]),'0.0%'),
)
)
)
)
ここでは「ValueList(‘売上高’,’売上原価’,’売上総利益’,’売上総利益率’)」の値をそのまま数式で利用しましたが、冗長さを避けるためにこの値を変数に格納し、数式ではこの変数を利用することで数式をよりシンプルにすることができます。また、「思い通りのチャート集計を実現–Qlik SenseのSET分析」でご紹介しているSET分析と組み合わせることで、より多様な集計方法をそれぞれの軸の数式に適用することができます。
まとめ
以上ここではValueList関数の使い方をご説明しました。