Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
chakiw5
Contributor III
Contributor III

Match関数の第二引数にConcat関数

お世話になります。

いつも皆様の知見を拝見し、驚きと共に自分ももっと頑張らねばと思っています。

今回お聞きしたいのはあるグラフがあり複数の数式がセットされています。多くの数式があり

見難いのでリストボックスで選択されている項目だけをグラフに表示させようと思っています。

そこで数式の条件付き表示にMatch('h1',Concat(F1,','))>0と記載したのですがうまく判断されず

返値はいつも0のままです。

添付したファイルのテキストボックスにはいろいろ思考錯誤した後が残っていますが

私の知識ではここまでかなと思いご相談させていただくことにしまいした。

理想はF1で複数選択した時、F2で選択した内容がF1の選択内容に含まれているかどうかの判断を

させることです。

(真ん中のテキストボックスの3段目に数値が返るようにしたいです)

お知恵を貸してください、よろしくお願いします。

Labels (1)
1 Solution

Accepted Solutions
hka
Employee
Employee

数値を出すのでしたね。。。

count(if(match(F2,F1),F1))

でいけないですか。

View solution in original post

8 Replies
hka
Employee
Employee

下記数式でできます。

 concat({<F1={$(=chr(39)&concat(distinct F2,chr(39)&','&chr(39))&chr(39))}>}distinct F1)

kentaroWakamatsu
Creator II
Creator II

F2の選択が一つだけで、有無を'1' or '0' で表示するということであれば、下記の式で計算できます。

 SubStringCount(chr(44)&concat(distinct F1,chr(44))&chr(44),chr(44)&GetFieldSelections(F2)&chr(44))

F2の選択が複数の場合は、返信で記載下さい。

kentaroWakamatsu
Creator II
Creator II

目的がリストボックスで選択した計算式だけ有効にしたいということでしたら、添付ファイルのようにした方が良いかもしれません。

数式タブの条件付表示に組み込んでいる計算式のh1、h2........部分だけ変更するだけです。

添付ファイルは、F1のリストボックスで選択して初めて有効になるようにしていますが、選択が無い場合は全て表示するのであれば、GetFieldSelectionsをConcat関数に変更して下さい。

hka
Employee
Employee

数値を出すのでしたね。。。

count(if(match(F2,F1),F1))

でいけないですか。

chakiw5
Contributor III
Contributor III
Author

KAWAHATA様、若松様

お世話になります、お二方の回答はよく拝見させていただき勉強させていただいています。

今回はお二人の回答で同じ結果を求めることができました、ありがとうございました。

KAWAHATAさんもう少し教えてください、KAWAHATAさんご回答の数式でmatch(F2,F1)は

その返値として何が返るのでしょうか、サンプルを見てお分かりのように、当初Match('h1',Concat(F1,','))で

その文字がある場所を探り、0でなかったら現在選択中として処理しようとしてましができませんでした。

これで何故できないのかも知りたいのですが、それよりmatch(F2,F1)が条件分岐としてどうして成立するのか

が知りたいです。


解決後に失礼ですがもう少しお付き合いください。


よろしくお願いします。


hka
Employee
Employee

Match('h1',Concat(F1,','))ではConcat(F1,',')が1つ文字列の塊(例:「h1,h2」の文字列)になっているので

h1と一致してないので0になります。

match(F2,F1)は1文字対1文字で比較しているのでmatchしているものは1になります。

ストレートテーブルでF1,F2を軸にして、それぞれの数式を加えて比較にしてみてください。

kentaroWakamatsu
Creator II
Creator II

「h1」 を 「h1,h2」 のかたまりから検索すると、h15,h16などの塊でもひっかかってしまうので、両方とも値の前後にカンマをつけて「,h1,」を「,h1,h2,」の塊から検索するようにしたほうがいいですよ。

chakiw5
Contributor III
Contributor III
Author

KAWAHATA様、若松様


返信が遅くなり申し訳ありません、昨日は所用で休暇をいただいておりました。


いろいろご助言ありがとうございました、また一つ自分の中に情報が増え今後の活動に活かせそうです。


また何かありましたらお助けください。


それでは失礼します。