Forum Discussion
Optimising Measure for Speed
Try using variables and a SWITCH statement instead:
Growth Label = VAR CashMarginDiffPositive = [Cash Margin DIFF]>0
VAR NetSalesDiffPositive = [Net Sales DIFF]>0
VAR MarginRateDiffPositive = [Margin Rate DIFF]>0
RETURN
SWITCH( TRUE(),AND(AND(CashMarginDiffPositive,NetSalesDiffPositive),MarginRateDiffPositive)=TRUE(),"Growing Everything",
AND(AND(CashMarginDiffPositive,NOT NetSalesDiffPositive),MarginRateDiffPositive)=TRUE(),"Growing Margin",
AND(AND(CashMarginDiffPositive,NetSalesDiffPositive),NOT MarginRateDiffPositive)=TRUE(),"Growing Sales",
AND(AND(NOT CashMarginDiffPositive,NetSalesDiffPositive),MarginRateDiffPositive)=TRUE(),"Logical Error",
AND(AND(NOT CashMarginDiffPositive,NetSalesDiffPositive),NOT MarginRateDiffPositive)=TRUE(),"Growing Sales, Declining Rate",
AND(AND(CashMarginDiffPositive,NOT NetSalesDiffPositive),NOT MarginRateDiffPositive)=TRUE(),"Logical Error",
AND(AND(NOT CashMarginDiffPositive,NOT NetSalesDiffPositive),MarginRateDiffPositive)=TRUE(),"Growing Rate, Declining Sales",
AND(AND(NOT CashMarginDiffPositive,NOT NetSalesDiffPositive),NOT MarginRateDiffPositive)=TRUE(),"Declining Sales","GAP")