As mentioned by jpe(color by expression - QlikSense)
The color 'by expression' doesn't refer to each expression individually.
What i would recommend as a workaround is to 'pivot' your data so that the expressions become a dimension and the values of the expression become a single expression
And pivot it in the script to:
then use 2 dimensions (like josh's example) and in the expression use if( Expression='Expr1', <color codes, if(Expression='Expr2', <colorcodes>)