Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Ochanoko
Creator
Creator

クリックセンスでテーブルの軸に数式を指定する時のルールについて。

お世話になります。

=Date(AddMonths(Date#('201911','YYYYMM'),ValueLoop(0,8,1)),'YYYYMM')

という数式を軸にしたテーブルを作ろうとしたのですが、うまく表示できませんでした。(テーブルA)

メジャーで指定するとうまく表示されます。(テーブルB)

何か軸に使用してはいけない関数があるのかと、関数を個別で軸に指定してみましたが特に問題はありませんでした。

関数の使い方がおかしいのでしょうか?

もし、わかる方がいらっしゃればお教えいただけませんでしょうか?

あと、クリックセンスのテーブルチャートで、軸として指定するが表示はしないということは可能でしょうか?

こちらもご存じならご教示ください。

使用データ:

LOAD * inline [
aaa,年月
123,'2019/01/11'
345,'2019/02/22'

];

Cyan.png

 

 

1 Solution

Accepted Solutions
hka
Employee
Employee

下記数式で表示できます。

valuelist($(=concat(Date(AddMonths(Date#('201911','YYYYMM'),ValueLoop(0,8,1)),'YYYYMM'),',')))

Date(AddMonths(Date#('201911','YYYYMM'),ValueLoop(0,8,1)),'YYYYMM')では結果が一意にならないため

軸として使用できません。テーブルBの結果もvalueloopの軸を外すと表示されないはずです。

concatで括って、最後にValueListで括ることで結果を特定できるので表示されます。

 

列の非表示は「次の場合列を表示」を使用して条件式を記述すればできますが、軸の結果(状態?)を

残したままにはできません。

軸自体を表示するかどうかというものになります。

View solution in original post

4 Replies
hka
Employee
Employee

下記数式で表示できます。

valuelist($(=concat(Date(AddMonths(Date#('201911','YYYYMM'),ValueLoop(0,8,1)),'YYYYMM'),',')))

Date(AddMonths(Date#('201911','YYYYMM'),ValueLoop(0,8,1)),'YYYYMM')では結果が一意にならないため

軸として使用できません。テーブルBの結果もvalueloopの軸を外すと表示されないはずです。

concatで括って、最後にValueListで括ることで結果を特定できるので表示されます。

 

列の非表示は「次の場合列を表示」を使用して条件式を記述すればできますが、軸の結果(状態?)を

残したままにはできません。

軸自体を表示するかどうかというものになります。

Ochanoko
Creator
Creator
Author

 

ありがとうございます。

いつもお世話になっております。

頂いた数式でうまく表示できました。

Concatが必要だということは、

=ValueLoop(0,8,1)

=Date(AddMonths(Date#('201911','YYYYMM'),ValueLoop(0,8,1)),'YYYYMM')

この二つの数式が返す値は形式が異なるのでしょうか?

配列のままでは表示されないということでしょうか?

この数式によって、帰ってくる値はわかるのですが、どういった形で帰ってくるのか、

どういう形ならテーブルで表示できるのか、私にはうまく想像できませんでした。

それともう一つ、$()は変数を使うときに必要なことは知っていたのですが、それ以外の用途は知りませんでした。

今回の数式においてこの$()はどのような役割を果たしているのでしょうか?

図々しい質問で大変恐縮ですが、ご教授いただけますでしょうか?

hka
Employee
Employee

ValueLoop、ValueListは設定によって配列を生成します。結果は1レコードに一意の値を割り当てます。

これに対し、他の関数は1レコードに結果を割り当てます。そのため、結果は一意でなければいけません。

date(valueloop())となるとdateが最後の出力結果となるので、結果が一意でないので表示されません。

concatは結果を文字連結させるので一意の結果として出力できます。

この結果をValuelistで配列に割り当てて表示させるようにしています。

テーブルで、concatの部分を抜き出して表示させると理解できるかと思います。

 

$に関しては下記ヘルプに例も含めて記載されているので参照してみてください。

https://help.qlik.com/ja-JP/qlikview/April2019/Subsystems/Client/Content/QV_QlikView/Scripting/dolla...

Ochanoko
Creator
Creator
Author

ありがとうございます。

$()は

この数式の場合 valuelist($(=concat(Date(AddMonths(Date#('201911','YYYYMM'),ValueLoop(0,8,1)),'YYYYMM'),',')))

こうなっている valuelist( $()の中身が返す値 )

ということなんですね。

大変分かりやすかったです。

ありがとうございました。👍👍👍