Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
oehmemat
Contributor III
Contributor III

Pivot Table subtotals background color with colormix

Hi all,

I think I read all related post in the forum but I couldn't find a solution:

I'm trying to use the colormix2 function for coloring the background of the subtotals of a pivot table. I checked all the formulas, and tried a lot.

This works with the formulas (Value / Threshold) I use in the colormix function:

if(rowno()=0,

if(Value>Threshold,red(),green())

)

 

But this isn't working:

if(rowno()=0,

<colormix2Statement>

)

Im using the wizard to generate the colormix statement.

Is it even supposed to work?

 

 

Labels (1)
4 Replies
Anil_Babu_Samineni

Please post full Wizard formula which is not working?

Best Anil, When applicable please mark the correct/appropriate replies as "solution" (you can mark up to 3 "solutions". Please LIKE threads if the provided solution is helpful
oehmemat
Contributor III
Contributor III
Author

Hi Anil,

thank you for your response.

Here is the formula:

ColorMix2 (
if(aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID)<median(total aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID)),
	//then
	-Sqrt(-(aggr(sum( RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID)
	-median(total aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID)))
	/(median(total aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID))
	-RangeMin (top(total aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID),1,NoOfRows(total)))))
	
	//else
	,Sqrt((aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID)
	-median(total aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID)))
	/(RangeMax (top(total aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID),1,NoOfRows(total)))
	-median(total aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID))))),
//Colormix High,Low,In Between
 ARGB(255, 255, 0, 0), ARGB(64, 255, 0, 0), ARGB(128, 255, 0, 0))

I think the problem lies in the RangeMax () function, it uses NoOfRows(total), but it returns no value as the subtotal rows doesn't count as a regular row.

I fiddled around with the rank() function, but had no luck as the ranks aren't displayed in the subtotals either

 

 

 

Brett_Bleess
Former Employee
Former Employee

The expression is pretty large, the best I can offer at the moment are the Help links, so you can check your syntax to be sure that is correct.  I would likely do something much more basic for starters to be sure that it works as you expect that way, then try to increase the complexity, that way you should be able to see where it stops working...

Color Functions:

https://help.qlik.com/en-US/qlikview/April2019/Subsystems/Client/Content/QV_QlikView/ChartFunctions/...

ColorMix Wizard:

https://help.qlik.com/en-US/qlikview/April2019/Subsystems/Client/Content/QV_QlikView/Colormix_Wizard...

Sorry I do not have anything better for you, but hopefully this will help you work back through things to check all your syntax etc.

Regards,
Brett

To help users find verified answers, please do not forget to use the "Accept as Solution" button on any post(s) that helped you resolve your problem or question.
I now work a compressed schedule, Tuesday, Wednesday and Thursday, so those will be the days I will reply to any follow-up posts.
Anil_Babu_Samineni

As Mentioned by @Brett_Bleess  It is quite long. Only I can think here is

if(aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID)<median(total aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID)),

ARGB(255, 255, 0, 0), ARGB(64, 255, 0, 0))

Or

ColorMix2(Sum(aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID)<median(total aggr(sum(RecipesInput.AskPrice*RecipesInput.Amount),Colonies.Planet,Buildings.ID,RecipesOutput.CommodityID,RecipesOutput.Amount,Recipes.ID,Recipes.Duration,RecipesInput.ID,RecipesInput.CommodityID, RecipesInput.CommodityID))), ARGB(255, 255, 0, 0), ARGB(64, 255, 0, 0), ARGB(128, 255, 0, 0))

Best Anil, When applicable please mark the correct/appropriate replies as "solution" (you can mark up to 3 "solutions". Please LIKE threads if the provided solution is helpful