Qlik Community

Qlik Japan

Qlik Communityの日本語のグループです。 Qlik製品に関する日本語資料のダウンロードや質問を日本語で投稿することができます。質問に関する回答は基本的に日本語で行われます。 日本語資料はグループにJoinしなくてもダウンロード可能ですが、 質問を投稿したい場合は、CommunityへのログインをしてグループにJoin Requestを行って下さい。 承認を受けた後に質問を投稿することが可能になります。 ログインはQlikIDを登録してください。

hmapgo03032006
New Contributor II

QlikView ストレートテーブルの行数のカウントについて

QlikViewのストレートテーブルの行数のカウント方法について

何かいいものがあれば教えてください。

 

軸は変数により表示・非表示を切り替えられるようにしております。

現状下記でカウントしておりますが軸項目が数十項目あるため

このカウントが非常に重くなっております。

=count(distinct
if(v_変数1=1,項目1,'')
&if(v_変数2=1,項目2,'')
&if(v_変数3=1,項目3,'')
&if(v_変数4=1,項目4,'')
&if(v_変数5=1,項目5,'')

 

チャートを選択するとステータスバーに行数が表示されるので

この数字を取得できる方法があればうれしいのですが

他に簡単にカウントできる方法があればご教示ください。

 

何卒、宜しくお願い致します。

Tags (1)
6 Replies
Highlighted
kentaroWakamatsu
Contributor

Re: QlikView ストレートテーブルの行数のカウントについて

Pick関数の方が、早いかもしれません。

また、変数もドキュメント内には少なく保持する方が、全体のパフォーマンスも良いので'v_変数'だけにして、変数の値によって切り分ける用にしてはどうでしょうか?

添付のサンプル1のチャートがこれにあたり、入力ボックスで値を変更すると軸と計算結果が切り替わります。

サンプル2は、変数も使用していません。かわりに軸CDと軸名のテーブルを用意して、リストボックスの「軸」で選択した結果が反映されます。

一度ためしてみて下さい。

Highlighted
kentaroWakamatsu
Contributor

Re: QlikView ストレートテーブルの行数のカウントについて

それと、Count、If、ともに処理としては重たい処理なので、可能なケースは避けた方が良いです。

今回のCountは、Distinct処理があるので無理ですが、単純なカウントの場合なら、該当テーブルに列を増やして'1'を用意し、SUMで計算する方が断然速いです。

Highlighted
hmapgo03032006
New Contributor II

Re: QlikView ストレートテーブルの行数のカウントについて

ご回答ありがとうございます。

ある一定の行数を超えた場合にチャートが表示されないように制御したのです。

sumの結果を変数等に入れることはできないでしょうか?

 

何卒、宜しくお願い致します。

Highlighted
kentaroWakamatsu
Contributor

Re: QlikView ストレートテーブルの行数のカウントについて

という事は、軸の数(distinct)で判断すると言う事でしょうか?

添付ファイルは、先程の「サンプル2」に演算実行条件を追加しています。(サンプル2.1)

演算実行条件の指定先は、「基本設定」タブにあります。

Count(distinct  項目名)よりもGetPossibleCountの方が早いと思うので、こちらを利用しています。

軸でも項目でも良いので、リストボックスで値を絞り込んでいただき、チャートの行(軸の数)が2以下になると実行されるようにしています。

この計算式を変数に入れても大丈夫です。

(計算式)

Pick(軸CD,GetPossibleCount(軸1)
,GetPossibleCount(軸2)
,GetPossibleCount(軸3)
,GetPossibleCount(軸4)
,GetPossibleCount(軸5))<=2

GetPossibleCount関数は、絞込値の数がかえりますので、distinctしたCountと結果は同じです。

Highlighted
kentaroWakamatsu
Contributor

Re: QlikView ストレートテーブルの行数のカウントについて

変数1~5の各変数が 0 or 1 の管理であれば、下記のような計算式の変更だけでも多少速くなると思います。

 

Count(DISTINCT Pick(v_変数1,項目1)&'_'&Pick(v_変数2,項目2)&'_'&Pick(v_変数3,項目3)&'_'&Pick(v_変数4,項目4)&'_'&Pick(v_変数5,項目5))

上記では、念のため各項目値の間は、アンダーバーを入れていますが、何かしら区切り文字を入れている方が良いとは思います。

 

サンプルつけておきます。

入力ボックスの変数を0または1で切り替えると、軸の数も変動します。

チャートの下のテキストボックスに、計算式を入れています。

Highlighted
hmapgo03032006
New Contributor II

Re: QlikView ストレートテーブルの行数のカウントについて

ありがとうございます!

参考にさせて頂きます。