Incrémenter chiffre par condition

Lucie61

XLDnaute Nouveau
Bonjour à toutes et à tous

Je me présente Lucie et je suis nouvelle dans ce forum.
Je suis ravie de faire votre connaissance ^^.
Je pense comme tout le monde, j'ai cherché dans différent forum mais je n'ai pas trouvé la solution à mon problème ou pu adapter les réponses de certains/es au mien.
Je suis actuellement confrontée à un problème Excel.

Je voulais savoir s'il existait une formule excel ou même une solution vba (pourquoi pas mais je ne m'y connais pas vraiment, je sais juste aller sur le développeur et ajouter un module, sinon rien hihi mais ce n'est pas faute d'avoir essayée)

Voilà, mon problème :

Je souhaite regrouper des données via une numérotation. C'est-à-dire identifier un ensemble de données via une numérotation.

Sur le fichier en question, il y a 5 colonnes de données qui doivent se corréler.

Sur la colonne B j'ai les dimensions, colonne C les zones, colonne D les produits, colonne E le poids maximum à ne pas dépasser et colonne F le poids de chaque produits

Je souhaiterai sur la colonne G sur chaque ligne avoir une numérotation qui permettrait d'identifier un groupe de produit en fonction de critères.

Il faut que la valeur en C et en D soient pareils et que la valeur en B ne soit pas égale à 9 et que la somme des valeurs F ne dépasse pas la valeur en E. Si cela est vraie alors il va mettre un numéro (on démarre du chiffre 1). Il va traiter tout ce qui est identique, différents de 9 et n'excédent pas le poids maximum autorisé en E.

Si c'est différent alors il va mettre un autre numéro (il incrémente de +1) à chaque fois.
Pour ce qui est C et D identique, égale à 9 et n'excédent pas le poids autorisé en E, il va les regrouper ensemble.


Voici un exemple :

DIMENSIONZONEPRODUITPOIDSPOIDS AUTORISÉNumérotation
234X654AA13000032201
2.134X654AA13000024201
2.734X654BB13000076802
1.534X654BB13000033502
1.334X654BB13000019902
1.534X654BB13000013102
934X654BB70000595103
934X654BB70000595104
934X654BB70000595105
934X654BB70000595106
2.734X654DD130000137407
1.334X654DD13000011607
234X654DD1300001240008
234X654DD13000021608
1.334X654DD13000015608

Pour la première et la deuxième ligne, elles sont numérotées identiquement car leur dimension ne sont pas égale à 9, leur zone sont identiques, leur produit sont identiques, la somme de leur poids autorisées ne dépasse pas le poids maximum qui est de 130000.

Idem pour les lignes 3 à 6, elles sont numérotées du chiffre 2 car ici on change de produit (ou de zone pour d'autres lignes qui sont dans mon fichier). Elles sont regroupées ensemble car leur dimension différent de 9, zone et produit identique et somme des poids autorisé inférieur à poids maxi.

Pour les lignes 7 à 10, elles ne sont pas regroupées avec les autres bien que le produit et zone sont identiques, parce que leur dimension égale à 9. Et possède tous un numéro différent car leur somme est supérieure au poids autorisé.

Pour les lignes 11 à 15, il n'y a que les lignes 11 et 12 qui sont numérotées identiquement et pas la lignes 13, 14 et 15 malgré le fait les dimensions différents de 9, produits et zones sont identiques aux lignes 11 et 12. Car si j'ajoutais le poids de la ligne 13 aux lignes 11 et 13 cela excéderait les 130000 poids autorisés.

J'espère avoir pu vous expliquer clairement mon problème avec cet exemple.

Je vous mets en pj un fichier avec les données et le résultats en colonne G que j'ai fait manuellement car je n'arrive pas à le faire via une formule.

Je vous remercie par avance de votre aide et espère pouvoir aider les gens en retour sur d'autres sujets.

Lucie61
 

Pièces jointes

  • Package.xlsx
    12.1 KB · Affichages: 7

job75

XLDnaute Barbatruc
Bonjour Lucie61, bienvenue sur XLD,

J'ai commencé par trier le tableau sur la colonne ZONE puis sur PRODUIT puis sur POIDS.

Ensuite formule en G2 à tirer vers le bas :
Code:
=SI(ET(B2<>9;C2=C1;D2=D1;E2=E1;SOMME(INDEX(F:F;EQUIV(G1;G:G;0)):F2)<=E2);G1;MAX(G$1:G1)+1)
A+
 

Pièces jointes

  • Package(1).xlsx
    16.8 KB · Affichages: 5

Lucie61

XLDnaute Nouveau
Bonjour Job75,

Merci pour ton accueil

Je te remercie pour ta formule ^^. Elle fonctionne mais pas totalement.

Enfaite, quand je change manuellement la valeur où :
La dimension = 9, Zone et Produit identique et poids autorisé inférieur à poids et bien la formule ne fonctionne pas.

ARTICLEDIMENSIONZONEPRODUITPOIDSPOIDS AUTORISÉNUMEROTATION PACK
FAILLARD234X654AA13000032201
BILDARD2.134X654AA13000024201
VALET934X654BB70000400002
VALET934X654BB70000200003
PION934X654BB70000150004
PION-J934X654BB70000100005
BEERA2.734X654BB13000076806
OCTOGONE1.534X654BB13000033506
LINGOR1.334X654BB13000019906
BRISESOR1.534X654BB13000013106

En effet, la ligne 3 et 4 devraient être numérotées 2 et non numérotées 2 et 3.
car 40000 + 20000 = 60000 et cela est inférieur à 70000.
La condition où lorsqu'il y a dimension = 9, Zone et produit identiques est respecté car il ne se mélange pas aux lignes dimensions <>9, Zone et produit identique mais elle ne respecte pas la dernière condition où somme des poids autorisé est inférieur au poids.

Mais c'est déjà un très bon début avec ta formule.

Lucie61
 

job75

XLDnaute Barbatruc
Pas de problème pour les 9 en colonne B, nouvelle formule en G2 dans ce fichier (2) :
Code:
=SI(ET((B2<>9)+(B1=9);C2=C1;D2=D1;E2=E1;SOMME(INDEX(F:F;EQUIV(G1;G:G;0)):F2)<=E2);G1;MAX(G$1:G1)+1)
 

Pièces jointes

  • Package(2).xlsx
    17.2 KB · Affichages: 9

Discussions similaires

Haut Bas