Comment obtenir la somme col d'une ligne dans une instruction conditionnelle ?Salut tout le monde,
J'ai une colonne dans laquelle je dois filtrer certaines valeurs pour obtenir la somme des colonnes (en utilisant Col Sum). Est-il possible d'obtenir la somme en fonction de la condition ? Par exemple, tout code 0 sera exclu du calcul :
| Code | Quantité | Le compte total | % total (Col Somme (quantité)/nombre total) |
| 0 | 50 | 250 | - |
| 0 | 25 | 250 | - |
| 1 | 60 | 250 | 205/250x100 = 82% |
| 6 | 67 | 250 | 205/250x100 = 82% |
| 3 | 78 | 250 | 205/250x100 = 82% |
J'ai essayé d'utiliser une instruction If, mais le code avec des valeurs 0 est toujours inclus lors de l'utilisation de la formule Col Sum
Automatisation et scriptsRe : Comment obtenir la somme col d'une ligne dans une instruction conditionnelle ?Vous avez besoin de deux instructions if, une pour éviter d'écrire des valeurs dans les lignes Code = 0 et une pour effectuer le calcul.
If(Code != 0,
Col Sum(If(:Code == 0, ., :Qty))
,
.
);

Re : Comment obtenir la somme col d'une ligne dans une instruction conditionnelle ?Salut @UserID16644
La formule conditionnelle est un peu délicate dans JMP.
Comme @jthi l'a mentionné, vous avez besoin de 2 IF.
Vous pouvez également ajouter une colonne de formule comme ci-dessous ;
-Ajouter le 1er IF = somme de colonne si le code n'est pas 0

-Ajouter le 2ème IF = afficher le résultat uniquement si le code n'est pas 0

Résultat:

Script JSL (voir le générateur de flux de travail/le journal)
Names Default To Here( 1 );
//Change column info: Total % (Col Sum Qty/Total Count)
Data Table( "dt1" ):Column 4 << Set Name( "Total % (Col Sum Qty/Total Count)" )
<< Set Formula(
If( !:Code == 0,
Col Sum( If( !:Code == 0, :Qty, . ) ) / :Total Count
)
);
//Change column format: Total % (Col Sum Qty/Total Count)
Data Table( "dt1" ):"Total % (Col Sum Qty/Total Count)"n <<
Format( "Percent", 12, 2 );
Re : Comment obtenir la somme col d'une ligne dans une instruction conditionnelle ?Peut-être que ce que vous demandez me manque, mais cela pourrait faire ce que vous voulez avec un simple Col Sum() :
Col Sum( (:Code > 0) * :Qty, :Code > 0 )
":Code > 0" devient 0 ou 1 selon qu'il est nul ou non, multiplié par Qté vous donne le nombre que vous recherchez, puis regrouper les cas où :Code >0 se sépare des cas Code == 0.