2017-05-15 7 views
0

Ich wollte Zelle basierend auf Wert zu füllen. Der erste Ausdruck funktioniert nur für LimeGreen, aber IIF für alle Fälle. Warum?Schalter Ausdruck in SSRS

=Switch(
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) > 0, "LimeGreen", 
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) <= 0 & 
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) >= -0.05, "Yellow", 
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) < -0.05, "Red") 

=IIF(
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) > 0, "LimeGreen", 
    IIF(Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) < 0.05, "Red", "Yellow") 
) 
+3

Sind Sie sicher, Symbol '&' = 'And'? Ich denke, es ist für String-Verkettung verwendet –

+0

Sie haben Recht. Ich löschte die zweite Bedingung und setzte Gelb als andere. – Testtest11

+1

Was gibt Code.Trend() zurück? – BishNaboB

Antwort

1
=Switch(
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) > 0, "LimeGreen", 
Code.Trend(Variables!Sold1.Value, Variables!Sold2.Value) >= -0.05, "Yellow", 
True, "Red") 

Alles, was über 0 wird limegreen werden. Danach wird alles über -.05 gelb sein. Alles andere wird Rot sein.

Da der erste Test nach> 0 sucht, sind die verbleibenden Optionen alle < = 0. Dies bedeutet effektiv, dass der zweite Test alle Werte zwischen -.05 und 0 ist. Der letzte Test ist der Fang aller, wird aber nur gewählt für Werte < -.05.