4 Replies Latest reply: Jan 5, 2015 8:48 AM by Marcus Sommer RSS

    Formel mit 2 Variablen

    Hans Müller

      Hallo,

       

      folgende Formel:

      if(vFixAusgabe = 1,sum({$<Kunde = {'A', 'B'}>} RangeMin(Betrag, 0)))

       

       

      Dimension Kunde: A,B,C,D,E,F

       

      Wenn vFixAusgabe = 1 -> A,B

      Wenn vFixAusgabe = 0 -> Null

       

      Das funktioniert!

       

      Allerdings gibt es eine weitere Variable vVariableAusgabe.

      Diese soll mit in die Formel eingebaut werden.

       

      Wenn vVariableAusgabe = 1 -> C,D,E,F (alles außer A,B sollte in der Formel angeben werden)

      Wenn vVariableAusgabe = 0 -> Null

       

      Wie kann ich die Variable vVariableAusgabe in die Formel einbauen sodass die Logik abgebildet wird?

       

      Viele Grüße und Danke!!!

        • Re: Formel mit 2 Variablen
          François Cavé

          Hallo Thomas :

          Vesucht diese Formel mit die minus für alles außer A,B:

           

          if(vFixAusgabe = 1,sum({$<Kunde -= {'A', 'B'}>} RangeMin(Betrag, 0)))


          Viel spaß mit QV,

          François

          • Re: Formel mit 2 Variablen
            Marcus Sommer

            Generell kann man viele if-Schleifen oder Bedingungen miteinander kombinieren und/oder ineinander verschachteln, z.B.

             

            if(Bedingung1 and (Bedingung2 or Bedingung3), then, else)

             

            if(Bedingung1, then, if(Bedingung2, then, else))

             

            Du musst hierbei nur aufpassen, dass sich die Bedingungen eventuell gegenseitig ausschließen und dass alle möglichen/erforderlichen Kombinationen abgebildet werden. Das kann schnell sehr komplex und performance-intensiv werden, daher versuche immer es so einfach wie möglich zu halten und in diesem Fall vielleicht zwei Formeln einzusetzen, deren Sichtbarkeit wiederum jeweils über die Formeldbedingungen gesteuert wird.

             

            Allerdings sollten Sichtbarkeiten und Berechnungen nur dort über Buttons oder Variablen gesteuert werden, wo es wirklich anders nicht geht (also eher selten), um nicht die native QlikView usability zu ersetzen, denn es soll mit QlikView ja einfacher werden. Siehe in diesem Sinne auch http://community.qlik.com/blogs/qlikviewdesignblog/2014/04/28/macros-are-bad.

             

            - Marcus

            http://community.qlik.com/groups/german-user-group 

              • Re: Formel mit 2 Variablen
                Hans Müller

                Vielen Dank Marcus. Sehr interessant was da zu lesen ist.

                 

                Ich bin aktuell auf das von dir angesprochene Problem mit dem Ausschluss gestoßen.

                Wie würde eine korrekt Anwendung bei folgender Formel aussehen?

                 

                if(vFixAusgabe = 1,sum({$<Kunde= {'A', 'B'} >}RangeMin(Betrag, 0))

                ,
                if(vVariableAusgabe = 1,sum({$-<Kunde= {'A', 'B'} >}RangeMin(Betrag, 0))
                ))

                 

                Das Problem ist hier eindeutig das Komma zwischen den beiden Ausdrücken, allerdings habe ich auch schon AND oder OR versucht. Mit dem OR anstatt des Kommas erhalte ich zwar das gewünschte Ergebnis das beide Berechnungen angezeigt werden. Aber natürlich wird mir mit '-1' ein falsches Ergebnis ausgegeben...

                 

                Wie muss ich hier umstellen?

                  • Re: Formel mit 2 Variablen
                    Marcus Sommer

                    Genau das meinte ich - eine funktionierende Logik zu finden, kann recht aufwändig werden und oft ist es besser, es einfacher zu halten und nicht zu versuchen alle Funktionalitäten in eine Formel/Objekt zu packen. Ansonsten probiere mal eher so:

                     

                    if(vFixAusgabe = 1 and vVariableAusgabe = 0,

                         sum({$<Kunde= {'A', 'B'} >}RangeMin(Betrag, 0)),
                         sum({$-<Kunde= {'A', 'B'} >}RangeMin(Betrag, 0)))

                     

                    - Marcus