Compréhension de la déclaration IF

Je comprends bien les bases de ce qu'il fait, mais cela devient déroutant. Si quelqu'un pouvait ré-écrire dans un simple pseudo code, il serait grandement apprécié!

J'écris une application PHP et j'ai besoin du même algorithm en PHP, mais ça ne fonctionne pas.

=IF(CC_stolpar=2; IF(Antal_slanor<4; 6*Antal_dubbelgrind; Antal_dubbelgrind*Antal_slanor*2) + IF(Antal_slanor<4; 3*Antal_enkelgrind; Antal_enkelgrind*Antal_slanor); 0) 

Je ne sais pas pourquoi il teste deux fois antal_slanor<4 , il devrait être équivalent à

 =IF(CC_stolpar=2; IF(Antal_slanor<4; 6*Antal_dubbelgrind + 3*Antal_enkelgrind; Antal_dubbelgrind*Antal_slanor*2 + Antal_enkelgrind*Antal_slanor); 0) 

Cela a nested les instructions IF, qui suivent le model IF-THEN-ELSE

 IF (condition); what to do if condition is true; what to do if condition is false 

Donc, votre IF externe est IF(CC_stolpar=2 THEN (do all this complicated stuff) ELSE 0 .

C'est assez simple. Soit CC_stolpar est 2 ou il n'est pas, et s'il a une autre valeur que 2, alors le résultat est nul.

Ce «truc compliqué» résume les résultats de deux énoncés IF différents.

Le premier est

 IF(Antal_slanor<4; 6*Antal_dubbelgrind; Antal_dubbelgrind*Antal_slanor*2) 

Si Antal_slanor less de 4 ans, multipliez Antal_dubbelgrind fois 6.

Si Antal_slanor est supérieur ou égal à 4, multipliez Antal_dubbelgrind fois Antal_slanor fois 2.

Vous n'en recevrez qu'un résultat, selon que Antal_slanor less de 4 ans ou non.

Vous répétez essentiellement le même process pour l'autre IF et résume les résultats.

 IF(Antal_slanor<4; 3*Antal_enkelgrind; Antal_enkelgrind*Antal_slanor); 

Ces deux déclarations IF nestedes évaluent si Antal_slanor est inférieur à 4. Donc, vous pouvez les merge dans une seule IF si cela vous Antal_slanor .

À la fin, je suggérerais pour votre propre santé mentale et la santé mentale des autres personnes qui devront lire ceci après vous, conservez la formule aussi simple que possible dans votre code.

Il suffit de regarder les morceaux plutôt que dans une ligne.

Comme indice, il est CC_stolar = 2, alors le résultat est la sum de deux déclarations FI nestedes.

Peut-être que certains supports aideraient:

 =IF(CC_stolpar=2; { IF(Antal_slanor<4; { 6*Antal_dubbelgrind; } else { Antal_dubbelgrind*Antal_slanor*2) } +IF(Antal_slanor<4; { 3*Antal_enkelgrind; } else { Antal_enkelgrind*Antal_slanor) } } else { ;0) } 
 IF CC_poles == 2 then IF NUMBER_OF_POLES < 4 THEN RESULT = 6*NUMBER_OF_DOUBLE_GATES + 3* NUMBER_OF_SINGLE_GATES; ELSE RESULT= NUMBER_OF_DOUBLE_GATES*NUMBER_OF_POLES*2 + NUMBER_OF_SINGLE_GATES * NUMBER_OF_POLES ENDIF ELSE RESULT = 0 ENDIF