Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
guillaume_gorli
Creator II
Creator II

Exclure variables selon conditions - SET Analysis

Bonjour à tous,

Je rencontre un certain nombre de difficultés dans la construction d'une application :

Je travaille sur une base de données assez simple remontant les informations suivantes :

part_no : référence tenue en stock.

bin.qty : quantité en stock de la référence dans une localisation spécifique

bin : localisation de stock

y2 : consommation de l'année Y-2

y1 : consommation de l'année Y-1

future_usage : besoin à venir

cost : coût unitaire

tot_cost : valeur de stock

Capture.JPG

L'idée est catégoriser chaque référence en fonction des consommation passé mais également de valoriser chaque catégorie en tenant compte des besoins futurs.

Pour faciliter cela j'ai pu créer plusieurs variables dans le script (avec déjà l'aide de la communauté)

[Variation Conso] qui correspond à la variation entre y2 et y1

Stockqty qui correspond à la quantité totale en stock (sans tenir compte des localisations donc)

stockleft qui correspond à la quantité totale en stock à laquelle je retire les besoins futurs (sachant que si cette quantité est négative, alors la variable est égale à zéro).

Au final tout ceci se retrouve dans mon application sous cette forme :

Capture.JPG

Première difficulté : je cherche dans un premier temps à isoler et valoriser les références pour lesquelles y1 = 0 AND future_usage = 0. il s'agit de ma première catégorie (en l’occurrence dans mon exemple la référence C. Jusque là tout va bien. A noter que je valorise la somme des quantités en stock dans chaque localisation à laquelle je retire les futurs besoins pour multiplier le tout par le coût unitaire.

Capture.JPG

Ensuite pour déterminer ma second catégorie, je dois isoler les références remplissant deux critères :

La consommation à chuté de plus de 50 % soit [Variation Conso] < - 0.5

La référence ne doit pas être déjà défini à travers la première catégorie

Là cela se corse, :

En théorie seul les références A, C et E ont une chute de conso de plus de 50 %

C étant déjà référencé dans la première catégorie, seul A et E sont éligibles.

Il y a 14 unités de E en stock au total contre des besoins futurs de 17. la quantité dispo est donc de - 3 ramené ainsi à zéro.

In fine seul la référence A doit être catégorisée dans cette catégorie pour une valeur de stock de 4€ mais impossible de remonter tout ça correctement dans un tableau qui ressemblerait donc à cela :

Capture.JPG

Si quelqu'un à une idée, j'attache le qvw et la base de données excel.

Merci de votre aide

Guillaume

1 Solution

Accepted Solutions
t_moutault
Contributor III
Contributor III

Bonjour Guillaume,

j'ai testé avec une condition sur la dimension part_no :

= IF( [Variation Conso] < - 0.5 AND (y1 + [future_usage] ) <>  0 ,

     IF( Num (stockleft) * Num (cost) > 0 , part_no ) )

Appliques cette dimension dans le tableau Database et cela semble fonctionne.

Bon courage.

View solution in original post

5 Replies
Not applicable

Bonjour Guillaume,

Au final c'est A ou E qui doit rester dans la catégorie ?

"Il n'y a pas de besoin à venir soit "future_usage = 0"  et  pour A on a 4, non ?

Cordialement,

Xavier.

guillaume_gorli
Creator II
Creator II
Author

Désolé coquille dans le texte, pour être catégorisé dans la seconde catégorie, la référence doit simplement avoir une chute de conso de plus de 50 % ET ne pas être inclus dans la première catégorie.

La variable future_usage n'intervient qu'au niveau du calcul du stock dispo. je modifie le premier post.

Donc au final, c'est bien A qui doit être dans cette catégorie 2

Not applicable

Ce que tu peux faire c'est imbriquer les if() :

if(condition1, catégorie1,

if(condition2, catégorie2,

if(condition3, catégorie3,

catégorieParDéfaut)))

Comme ça tu es sûr que les catégories seront attribuées dans l'ordre.

t_moutault
Contributor III
Contributor III

Bonjour Guillaume,

j'ai testé avec une condition sur la dimension part_no :

= IF( [Variation Conso] < - 0.5 AND (y1 + [future_usage] ) <>  0 ,

     IF( Num (stockleft) * Num (cost) > 0 , part_no ) )

Appliques cette dimension dans le tableau Database et cela semble fonctionne.

Bon courage.

guillaume_gorli
Creator II
Creator II
Author

Merci messieurs