Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik and ServiceNow Partner to Bring Trusted Enterprise Context into AI-Powered Workflows. Learn More!
cancel
Showing results for 
Search instead for 
Did you mean: 
Cram
Contributor III
Contributor III

円グラフで一番割合が大きいものをデフォルトで選択するようにしたいです

円グラフを作成したのですが、シートを開いたときに、この円グラフの中で一番割合が大きいものを始めから選択している状態にしたいです。円グラフのメジャーがsumやaggr、ifをつかった複雑なものなのですが対応可能でしょうか?

1 Solution

Accepted Solutions
hka
Employee
Employee

解決済みとしてお願いします。

View solution in original post

12 Replies
hka
Employee
Employee

ブックマークを使用すれば対応可能です。
例えば、円チャートで軸を支店名、メジャーをaggr(Sum([販売価格]),支店名)とした場合
この円チャートで使用している軸のフィルターパネルを作成して、テキスト入力で以下のような
数式を記述します。

「=aggr(Sum([販売価格]),支店名) = max(total aggr(Sum([販売価格]),支店名))」

これでフィルターパネルに狙った支店名が表示されていたらEnterキーを押して選択を確定します。
この状態でブックマークを新規作成します。
作成したブックマークを既定のブックマークとして指定すれば毎回開いたときに売り上げのメジャーの数値の一番高い軸が選択された状態になります。
ブックマークの定義には以下のSet数式が記述されます。

{<支店名={"=aggr(Sum([販売価格]),支店名) = max(total aggr(Sum([販売価格]),支店名))"}>}

これを応用すれば実現できると思います。

Cram
Contributor III
Contributor III
Author

教えていただきありがとうございます。軸が工程なのですが、厳密にいえば一部の工程を排除しているため、フィルタパネルに以下のメジャーを入れております。

=IF(WildMatch(工程名,'*リーク*')OR WildMatch(工程名,'*インターバル*'),NULL(),[工程名])

そして該当の工程を出すための式を作り、KPIでもきちんと出せていることが確認できました。

FirstSortedValue(
IF(WildMatch(工程名, '*リーク*') OR WildMatch(工程名, '*インターバル*'),NULL(),[工程]),
-Aggr(
sum(
if(
Aggr(
(
([1台当たりの実績(分)] / [標準時間]) - 1
) * 100,
[日付生産順],
[工程名]
) <= exceed_week_minus * -1
and not (
WildMatch([工程名], '*リーク*')
or WildMatch([工程名], '*インターバル*')
),
([1台当たりの実績(分)] - [標準時間]) * -1
)
),
[工程名]
)
)

Cram_0-1732688034617.png



しかしながらフィルタパネル内に
=IF(WildMatch(工程名,'*リーク*')OR WildMatch(工程名,'*インターバル*'),NULL(),[工程名])=FirstSortedValue(IF(WildMatch(工程名, '*リーク*') OR WildMatch(工程名, '*インターバル*'),NULL(),[工程]),-Aggr(sum(if(Aggr((([1台当たりの実績(分)] / [標準時間]) - 1) * 100,[日付生産順],[工程名]) <= exceed_week_minus * -1 and not (WildMatch([工程名], '*リーク*') or WildMatch([工程名], '*インターバル*')),([1台当たりの実績(分)] - [標準時間]) * -1)),[工程名]))
といれても該当するものがでてきません。
すみませんがやり方が正しいかご教示いただけますでしょうか。



hka
Employee
Employee

実際のアプリがないので確実ではないですが、
IF(WildMatch(工程名,'*リーク*')OR WildMatch(工程名,'*インターバル*'),NULL(),[工程名])
のフィルターパネルがあるのであれば、入力は


=FirstSortedValue(IF(WildMatch(工程名, '*リーク*') OR WildMatch(工程名, '*インターバル*'),NULL(),[工程]),-Aggr(sum(if(Aggr((([1台当たりの実績(分)] / [標準時間]) - 1) * 100,[日付生産順],[工程名]) <= exceed_week_minus * -1 and not (WildMatch([工程名], '*リーク*') or WildMatch([工程名], '*インターバル*')),([1台当たりの実績(分)] - [標準時間]) * -1)),[工程名]))

になると思います。あとは普通に工程名のフィルターパネルでKPIで使用している数式を記述して特定できるのであればそちらで代用可能と思います。

Cram
Contributor III
Contributor III
Author

教えていただいたところ申し訳ないのですが教えていただいた方法で入力してもでてきません。

Cram_0-1732689606293.png

 

工程名(フィルタパネル)のメジャーは以下の通りです。

Cram_1-1732689642967.png

KPIに入れているメジャーは

FirstSortedValue(IF(WildMatch(工程名,'*リーク*')OR WildMatch(工程名,'*インターバル*'),NULL(),[工程]),-Aggr(sum(if(Aggr((([1台当たりの実績(分)]/[標準時間])-1)*100,[日付生産順],[工程名])<=exceed_week_minus*-1 and not (WildMatch([工程名],'*リーク*')or WildMatch([工程名],'*インターバル*')),([1台当たりの実績(分)]-[標準時間])* -1)),[工程名]))

以下の通りですがこれをいれても一致するものが出てきません

Cram_2-1732689886058.png

 


 

hka
Employee
Employee

FirstSortvalueの前に「=」を入れても駄目でしょうか

Cram
Contributor III
Contributor III
Author

言い忘れていましたが=をいれても同様に出てきません。。

Cram_0-1732749692864.png

 

hka
Employee
Employee

数式が複雑なのでサンプルアプリがないとこれ以上回答できないです。
アプリ提供は可能でしょうか。

Cram
Contributor III
Contributor III
Author

ここまでサポートいただきありがとうございます。

すみませんが社内で使用するアプリのため公の場でロードスクリプトなど見える形で出すことは避けたいです。公には隠すかたちで送れるのでしょうか?それとも別のサポート窓口に連絡したほうがいいですか?

hka
Employee
Employee

別途アプリを複製して、サンプルデータをロード後にデータロードエディタのスクリプトを
全て削除すればスクリプトの内容を確認する術はなくなります。その後にデータを含んで
エクスポートすればUIの方はそのまま使用可能です。
ただ、セキュリティ上アプリをここに上げるのが難しいこともあるかと思いますので、
判断はお任せします。

サポート窓口に投げても仕様や不具合ではなく、利用方法については問い合わせは対象外なので、
ここの掲示板に質問してくれという回答になります。