Forum Discussion

AlexGallet01's avatar
AlexGallet01
Helper IV
9 years ago

IF

Bonjour,

 

Je ne comprends pas pourquoi ma fonction retourne tout le temps la même valeur (la première si), tandis que ma colonne PFCCTTAXE retourne parfois 0 ou 1.

 

Je ne includes Pourquoi pas ma fonction retourne tout le temps la same Valeur (le premier cas) Alors Que ma colonne PFCCTTAXE retourne Parfois 0 ou 1.

 

Colonne = SI (VALUE (Factures [PFCTCTAXE]) <> 0 || 1; Factures [PFCNMT] -Factures [PFCNMTVA]; SI (VALUE (Factures [PFCTCTAXE]) = 0 || 1; 0))

11 Replies

  • Hello,

     

    I don't understand why my function returns all the time the same value (the first if) while my column PFCCTTAXE sometimes returns 0 or 1.

     

    Je ne comprend pas pourquoi ma fonction retourne tout le temps la même valeur (le premier if) alors que ma colonne PFCCTTAXE retourne parfois 0 ou 1.

     

    Colonne = IF(VALUE(Factures[PFCTCTAXE])<> 0||1;Factures[PFCNMT]-Factures[PFCNMTVA];IF(VALUE(Factures[PFCTCTAXE])= 0||1;0))

    • Baskar's avatar
      Baskar
      Resident Rockstar

      Cool dude cool,

       

      Do u want create calculated column or Measure  ?

       

       

      For column try this :

       

      Column = Switch (  True() ,

                                     Factures[PFCTCTAXE] <> 0 || Factures[PFCTCTAXE] <> 1,Factures[PFCNMT]-Factures[PFCNMTVA],

                                     Factures[PFCTCTAXE]= 0 && Factures[PFCTCTAXE] =1 , 0

                                    )

       

      Measure : 

       

      Measure = 

      Var Contion= SUM(Factures[PFCTCTAXE])

      Switch (  True() ,

                                    Contion <> 0 || Contion <> 1; SUM(Factures[PFCNMT])-SUM(Factures[PFCNMTVA])

                                    Contion = 0 && Contion = 1 , 0

                                    )

       

      Let me know if any help 

    • v-sihou-msft's avatar
      v-sihou-msft
      Microsoft Employee

      AlexGallet01

       

      In this scenario, I think you need to adjust your condtion in your IF statement for correct coverage. Your logic should be:

       

      1. IF "Factures[PFCTCTAXE]) = 0" OR "Factures[PFCTCTAXE]) = 1", THEN 0

      2. IF "Factures[PFCTCTAXE]) <> 0" AND "Factures[PFCTCTAXE]) <> 1" THEN "Factures[PFCNMT]-Factures[PFCNMTVA]"

       

      So your formula should be like:

       

      COLUMN = Switch ( True() , 
      Factures[PFCTCTAXE] = 0 || Factures[PFCTCTAXE] = 1,
      0,
      Factures[PFCTCTAXE] <> 0 && Factures[PFCTCTAXE] <> 1,
      Factures[PFCNMT]-Factures[PFCNMTVA]
      )
      

      Regards,

       

  • Salut,

    Il est très difficile pour moi d'aider si j'espère qu'un locuteur français natif peut intervenir.

    Juste une pensée, est-il à faire avec vos conditions Si.

    Facteurs [PFCTCTAXE]) <> 0 || 1 devrait peut-être être Factures [PFCTCTAXE] <> 0 || Facteurs [PFCTCTAXE] = 1

    Bien que donné 1 <> 0 alors la deuxième clause n'est pas beaucoup d'utilisation. En ayant "|| 1" n'est-ce pas toujours retourner vrai sur votre IF?

    Hope this helps.

    Thomas

     

    Hi,

    It is very hard for me to help so hopefully a native French speaker can step in.

    Just a thought, is it to do with your If conditions.

    Factures [PFCTCTAXE]) <> 0 || 1 should maybe be Factures [PFCTCTAXE] <> 0 || Factures [PFCTCTAXE] = 1

    Though given 1 <>0 then the second clause is not much use. By having "|| 1" isn't this going to always return true on your IF statement?

    Hope this helps.

    Thomas

    • AlexGallet01's avatar
      AlexGallet01
      Helper IV

      Thank you for your answer but not its does not always return true because a share 0 and 1 I have my field empty

       

      merci de ta reponse mais non sa ne retourne pas toujours vrai car a part 0 et 1 j'ai mon champ vide

      • Framet's avatar
        Framet
        Resolver II

        Je pense que mon point est si vous avez une formule comme:

        Colonne =
        IF (1, 5, 0)
        Alors le résultat sera 5.

        Si vous avez quelque chose comme:

        Colonne =
        IF ([MyField] = 55 || 1, 5, 0)
          Alors le résultat sera toujours 5.

        Dans votre formule, vous avez "|| 1" qui est fonctionnellement équivalent à dire 1 = 1 qui sera toujours vrai.

        Merci

        Thomas



        I think my point is if you have a formula like:

        Column =
        IF ( 1, 5, 0 )

        then the result will be 5.

        If you have something like:

        Column =
        IF ( [MyField] = 55 || 1, 5, 0 )

         then the result will always be 5.

         

        In your formula you have "|| 1" which is functionally equivilent to saying "OR 1=1" which will always be true.

         

        Thanks

         

        Thomas