Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Ma formule avec condition pour le contrôle fonctionne correctement, mais j'aimerais qu'elle affiche également 'pas planifié' si aucune donnée n'est présente dans la colonne 'surface planifiée'."
Voici mon tableau et ma formule actuelle
If( ([PLANIF_UNITE] = 'KG' AND ( ((Sum(LIVD_FACTURATION_POIDS_NET) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 > 0.3
OR ((Sum(LIVD_FACTURATION_POIDS_NET) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 < -0.3 )), 'Justificatif',
If( ([PLANIF_UNITE] = 'PI' AND ( ((Sum(LIVD_PIECE_QUANTITE) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 > 0.3
OR ((Sum(LIVD_PIECE_QUANTITE) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 < -0.3)), 'Justificatif', ' OK' ) )
Que dois-je ajouter à cette formule pour que le mot "pas planifié" apparaisse ?
Merci de votre aide 😉
Bonjour,
Ce n'est pas évident d'imaginer la solution à utiliser sans voir les données sources.
Cependant, essayons cela :
IF( IsNull(PLANIF_SURFACE) OR PLANIF_SURFACE=0, 'pas planifié',
If( ([PLANIF_UNITE] = 'KG' AND ( ((Sum(LIVD_FACTURATION_POIDS_NET) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 > 0.3
OR ((Sum(LIVD_FACTURATION_POIDS_NET) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 < -0.3 )), 'Justificatif',
If( ([PLANIF_UNITE] = 'PI' AND ( ((Sum(LIVD_PIECE_QUANTITE) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 > 0.3
OR ((Sum(LIVD_PIECE_QUANTITE) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 < -0.3)), 'Justificatif', ' OK' ) ) )
Bonjour,
Vous pouvez probablement utiliser cela : Coalesce( votre formule, 'Pas planifié')
Coalesce retourne la première expression non nulle trouvée. Si votre formule retourne Null, alors la seconde expression 'Pas planifié' sera retournée.
Pour plus de détail sur la fonction Coalesce : https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFun...
Remarque: une bonne pratique est de ne pas utiliser de IF dans une expression de graphique (ou dimension/mesure). Pour optimiser votre application il vaudrait mieux essayer de réaliser ce calcul au niveau du script de chargement.
Bien cordialement
SRA
Bonjour,
Je suis désolée mais je n'ai pas très bien compris.
J'ai mis devant Coalesce mais cela ne fonctionne pas
Coalesce (If( ([PLANIF_UNITE] = 'KG' AND ( ((Sum(LIVD_FACTURATION_POIDS_NET) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 > 0.3
OR ((Sum(LIVD_FACTURATION_POIDS_NET) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 < -0.3 )), 'Justificatif',
If( ([PLANIF_UNITE] = 'PI' AND ( ((Sum(LIVD_PIECE_QUANTITE) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 > 0.3
OR ((Sum(LIVD_PIECE_QUANTITE) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 < -0.3)), 'Justificatif', ' OK' 'pas planifié' ) ) )
Coalesce prend 2 à n arguments. Il les évaluera dans l'ordre et s'arrêtera au premier qui ne retourne pas Null. Dans votre cas le premier argument doit être votre formule, et le deuxième la valeur 'pas planifié'.
Il faudrait donc écrire la formule de cette façon:
Coalesce( If( ([PLANIF_UNITE] = 'KG' AND ( ((Sum(LIVD_FACTURATION_POIDS_NET) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 > 0.3
OR ((Sum(LIVD_FACTURATION_POIDS_NET) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 < -0.3 )), 'Justificatif',
If( ([PLANIF_UNITE] = 'PI' AND ( ((Sum(LIVD_PIECE_QUANTITE) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 > 0.3
OR ((Sum(LIVD_PIECE_QUANTITE) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 < -0.3)), 'Justificatif', ' OK' ) ) , 'pas planifié' )
Je viens de mettre cette formule mais malheureusement le mot 'pas planifie' n'apparait pas. Il me met le mot 'OK'
Bonjour,
Ce n'est pas évident d'imaginer la solution à utiliser sans voir les données sources.
Cependant, essayons cela :
IF( IsNull(PLANIF_SURFACE) OR PLANIF_SURFACE=0, 'pas planifié',
If( ([PLANIF_UNITE] = 'KG' AND ( ((Sum(LIVD_FACTURATION_POIDS_NET) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 > 0.3
OR ((Sum(LIVD_FACTURATION_POIDS_NET) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 < -0.3 )), 'Justificatif',
If( ([PLANIF_UNITE] = 'PI' AND ( ((Sum(LIVD_PIECE_QUANTITE) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 > 0.3
OR ((Sum(LIVD_PIECE_QUANTITE) / PLANIF_SURFACE) / [Rendement moyen OP / Ha]) - 1 < -0.3)), 'Justificatif', ' OK' ) ) )
Bonjour,
Je viens de faire un essai avec cette formule et elle fonctionne.
Merci de votre aide.