テーブルチャートで集計を行うとき、下の画像のように、既に作成済みのメジャーの数式を利用して新たにメジャーを作成することがあると思います。
※画像では「Sum([売上])」と「Sum([原価])」という数式を利用し、「Sum([売上]) - Sum([原価])」というメジャーを作成しています。
しかし、画像の例のような単純な数式のメジャーなら良いのですが、実務などで作成するメジャーはIF文やSET文を使用した、長く複雑な数式の場合が多々あり、その場合、数式の転記ミスやメンテナンスの手間が発生したりします。
上記のミスや手間をなくすために、Column()関数を利用することは有効な手段の一つと言えます。
Qlik Viewでの作業経験のある方に関しては、同じテーブル内であれば、作成したメジャーにラベルを設定すると、そのラベルを指定して別のメジャー作成時に利用が出来ていたと思いますが、その感覚に近い動作と思っていただけると幸いです。
実際にColumn()関数を使用したメジャーの作成方法をご紹介します。
最初にColumn()関数の基本的な構文を説明します。
Column([列番号])
この[列番号]は、参照したいメジャーの番号を示します。
※メジャーの番号は、テーブルに作成されたメジャーの順番になります。
Column関数では、列番号を使って特定の列を参照します。列番号は1から始まり、1は最初の列を示します。列番号を正確に指定することが重要です。
※Column()関数はあくまでも既に存在するメジャーを参照する関数であるため、再帰呼び出しには、NULL を返します。(呼び出すColumn()関数のメジャーが、他のメジャーを参照している場合はその参照された列を返します。)
例えば、Sum([売上])とSum([原価])がすでに作成されている場合、
テーブルチャートのプロパティを開くと、下記画像のようにSum([売上])→Sum([原価])の順でメジャーがセットされています。
これは上から順に「1」「2」という列番号となります。
例えばこの2つのメジャーを引き算する場合、次のようにColumn()関数を使用できます。
Column(1)-Column(2)
これにより、「Sum([売上]) - Sum([原価])」という計算がされます。
Column()関数はあくまでも指定した番号のメジャーを参照するという点です。
上の画像から分かるように、参照するということは、列内の実際の値をそのまま使用することを意味するのではなく、列で使用されている式を参照することを意味します。つまり、Column()関数を使用した列では式が再計算されます。
そのため、画像のように、Rand()関数を使用しているメジャーを対象にColumn()関数を使用すると、その列の結果を参照するのではなく、数式を参照するため、列の結果が異なります。
Column()関数は比較的取り入れやすい関数なので、皆さんもぜひ活用してみてください!