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

Announcements
Now accepting applications for the Qlik Luminary and Partner Ambassador Programs: Apply by July 6!
cancel
Showing results for 
Search instead for 
Did you mean: 
Charlie5
Contributor III
Contributor III

ピボットグラフでのカラーグラデーション

下記のようなピボットグラフを作成しています。

当月売上の背景カラーを、「前月差異_売上」がマイナスになればなるほど赤に、プラスになればなるほど青にグラデーションで設定する方法はありますか?

 

==========

<行>

カテゴリ1、カテゴリ2、カテゴリ3、値

<列>

年度、半期、四半期、年月

<値>

当月売上

 

使用する計算フィールド

当月売上:Sum({<データソース=[当月データ]::データソース>}[売上])

前月売上:Sum({<データソース=[前月データ]::データソース>}[売上])

前月差異_売上:当月売上ー前月売上

 

1 Solution

Accepted Solutions
hka
Employee
Employee

原因がわかりました。Max、Minの数式にTotalを加える必要がありました。
年月、カテゴリ1 ~3をaggrで括るだけではダメでmaxとminにTotalを入れる形が正しかったです。
数字確認のところに以下の数式を適用してみてください。


([前月差異_売上] - min(total aggr([前月差異_売上],カテゴリ1,カテゴリ2,カテゴリ3,年月))) / (max(total aggr([前月差異_売上],カテゴリ1,カテゴリ2,カテゴリ3,年月))-min(total aggr( [前月差異_売上],カテゴリ1,カテゴリ2,カテゴリ3,年月)))
以下のようになります。

hka_0-1752546936251.png

 

View solution in original post

10 Replies
hka
Employee
Employee

Colormix1か2を使用すればできます。
範囲内を0~1かー1~1の範囲になるような数式にすれば良いです。
https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/ColorFunct...

Charlie5
Contributor III
Contributor III
Author

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

Colormix1まではたどり着けていたのですが、-1~1の範囲にする方法がわからず...

お手数ですが式を教えていただくこと可能でしょうか?

hka
Employee
Employee

0~1の場合は、数式内の最大値を1、最小値を0として計算する形にすれば良いです。

数値の算出は以下のようになります。Colormix1はこれで良いかと。

(sum(数値) - min(aggr(sum(数値),項目))/ (max(aggr(sum(数値),項目)-min(aggr(sum(数値),項目))

-1~1の場合は、平均値を0として計算すれば良いので、minをavgに変更すればいけると思います。

Charlie5
Contributor III
Contributor III
Author

色基準の数値部分が、チャート上で作成している項目「前月差異_売上」のためSumを外して下記のようにして確認してみました。

[前月差異_売上] - min(aggr([前月差異_売上],カテゴリ1,カテゴリ2,カテゴリ3,年月)) / (max(aggr([前月差異_売上],カテゴリ1,カテゴリ2,カテゴリ3,年月))-min(aggr([前月差異_売上],カテゴリ1,カテゴリ2,カテゴリ3,年月)))

出る数値を確認したところ数字が合計と一部の年月にしか表示されず、数字の範囲も11.54などの範囲外の数字が出てしまいます。

 

恐らくチャート上でマスターアイテムとして作成しているメジャーを使用していることか、aggrの項目の選択が間違っていることが原因だとは思うのですがどうしたらよいかわからず...

何度も申し訳ございませんが対処法はありますでしょうか?

 

 

 

hka
Employee
Employee

テーブルを使用して数値を確認しながら検証するのが一番確実です。
現状、細かいところがわかりにくいのでサンプルアプリは提供可能でしょうか。

Charlie5
Contributor III
Contributor III
Author

ご返信ありがとうございます。

サンプルアプリを作成してみました。ご確認いただけますと幸いです。

 

hka
Employee
Employee

原因がわかりました。Max、Minの数式にTotalを加える必要がありました。
年月、カテゴリ1 ~3をaggrで括るだけではダメでmaxとminにTotalを入れる形が正しかったです。
数字確認のところに以下の数式を適用してみてください。


([前月差異_売上] - min(total aggr([前月差異_売上],カテゴリ1,カテゴリ2,カテゴリ3,年月))) / (max(total aggr([前月差異_売上],カテゴリ1,カテゴリ2,カテゴリ3,年月))-min(total aggr( [前月差異_売上],カテゴリ1,カテゴリ2,カテゴリ3,年月)))
以下のようになります。

hka_0-1752546936251.png

 

Charlie5
Contributor III
Contributor III
Author

ありがとうございます!グラデーションになっていること確認できました。

しかし、合計の値に関しては画像でも一部反映されていないように見えます。

こちらは合計にも全部色付けできるでしょうか・・・?

hka
Employee
Employee

合計の部分は、カテゴリ1と年度の集計で色付けする必要があります。
カテゴリ1と年度の集計をする、「数字確認1」というマスターアイテムを以下のように作成します。
([前月差異_売上] - min(total aggr([前月差異_売上],カテゴリ1,[年度])))
/ (max(total aggr([前月差異_売上],カテゴリ1,[年度]))-min(total aggr( [前月差異_売上],カテゴリ1,[年度])))

背景色の設定で以下の数式を記述します。
if(Dimensionality()>0 and SecondaryDimensionality()>0,
ColorMix1(数字確認,  RGB(215,235,235),  RGB(235,215,235)),
ColorMix1([数字確認 1],  RGB(215,235,235),
  RGB(235,215,235)))

Dimensionality()、SecondaryDimensionality()はヘルプで調べてみてください。