Formule SOMME SI avec condition tant que

Bonjour à tous,

Je viens vous solliciter car je suis devant un mur et je n'arrive pas à m'en sortir.

Tant qu'à faire j'aimerais une formule sans macro mais à voir.

J'ai un fichier avec un calcul de coût de revient, la somme de mon niveau 0 est la somme de mes niveaux 1 +mes coûts directs de mon niveau 0. La somme de mon niveau 1 est la somme de mes niveaux 2 +les couts directs de mon niveau 1 etc etc...

J'avais donc fait une formule de type RechercheV + Somme Si mais le problème est que selon mes articles les niveaux de nomenclatures sont variables et de plus mes niveaux sont imbriqués.

Ex : Sous mon niveau 0 j ai plusieurs niveau 1 et je veux que mon somme si pour mon niveau somme tous les niveaux 2 mais uniquement jusqu'au prochain niveau 1.

Il me faudrait une sorte de boucle.

Si niveau = 0 alors somme de niveau 1 jusqu'au prochain 0 sinon si niveau = 1 alors somme de niveau 2 jusqu'au prochain 1 etc....

Je vous joins l'exemple.

En attente de vous lire.

Camille

35exemple.xlsx (11.35 Ko)

Bonjour Camille21,

là comme ça je trouve pas de solution en formule.

En macro ça pourrais donner ceci à tester voir si ça te vas.

76camille21.xlsm (22.93 Ko)

Je viens de regarder et effectivement ça marche super bien.

Je vais regarder la macro en détail et je reviens vers toi.

Là je suis pris sur un autre sujet.

Dans un 1er temps déjà merci.

Camille

Par contre l'idée est de pouvoir ensuite changer les données et que le prix final s'actualise automatiquement.

C'est pour ça que je préférais des formules.

Eventuellement je peux les changer et relancer la macro ça revient au même.

Thanks

Bonjour,

... j'ai eu du mal à retrouver le topic que j'avais laissé de côté ...

je vais ressortir mes archives, car j'ai travaillé sur une nomenclature de ce type (il s'agissait plutôt de la description de l'organigramme et du calcul du nombre de collaborateurs directs et totaux)

au pire je vais me pencher sur ce type de sujet fort intéressant pour les neurones !

=SIERREUR(SOMME(DECALER(I2;1;;MIN(SIERREUR(SI(A2-{0;1;2;3;4}>=0;EQUIV(A2-{0;1;2;3;4};A3:A$100;0)-1;"");""))));0)+K2+J2

en matriciel

30exemple.xlsx (14.01 Ko)

attention, A$100 est à adapter en fonction du nombre de lignes

Merci Steelson mais cela ne fonctionne pas .

La colonne M doit être égale à la colonne I.

Exemple M6 différent de I6

ok un petit réglage à faire ...

j ai un peu de mal avec les formules DECALER et EQUIV.

En tout cas merci à vous 2, ça avance bien.

correction, j'avais en fait pris la somme de tous les niveaux inférieurs

maintenant il subsiste des écarts, pourrais-tu regarder de près les valeurs que tu avais proposées

8exemple.xlsx (17.53 Ko)

je reviens sur le sujet ... voici une valeur que je trouve incohérente, est-ce que tu confirmes ?

en I10 tu proposes 1238,9 alors qu'en faisant manuellement la somme je trouve 1115,421

capture d ecran 137

comme d'autre part on s'appuie sur le résultat même du calcul, cela ne peut pas fonctionner,

j'ai changé de stratégie et je ne m'appuie que sur les données de base

=SIERREUR(SOMME(DECALER(L2;1;;MIN(SIERREUR(SI(A2-{0;1;2;3;4}>=0;EQUIV(A2-{0;1;2;3;4};A3:A$100;0)-1;"");""))));0)+L2

en matriciel ... ET avec la correction vue ci-dessus

2exemple.xlsx (19.67 Ko)

et c'est ma 6000è contribution sur un sujet qui est assez intéressant à formuler

capture d ecran 138

Merci Steelson.

Je suis sur un autre sujet mais je reviens vers toi dès que j'ai 5 minutes.

Effectivement je ne l avais pas mentionné il y a une notion de coef dans l intégration du coût des pièces.Merci pour l'intérêt du sujet.

Camille

à ta disposition

Bonjour Camille,

des nouvelles

il y a une notion de coef dans l intégration du coût des pièces.Merci pour l'intérêt du sujet.

en effet, il faudra retravailler la solution, peux-tu juste nous dire comment en tenir compte ? s'agit-il seulement d'une multiplication du total du composant pour l'ensemble supérieur ?

Désolé pour le délai de réponse j'étais sur un autre sujet, reporting etc....

Le temps passe trop vite.

La formule est :

Niveau supérieur =somme de tous les niveaux inférieurs (Prix unitaire * coef) + matière + MOE du niveau supérieur

Camille

Voici la formule

=SIERREUR(SOMMEPROD(DECALER(J2;1;;MIN(SIERREUR(SI(A2-{0;1;2;3;4}>=0;EQUIV(A2-{0;1;2;3;4};A3:A$100;0)-1;"");""));2)*DECALER(H2;1;;MIN(SIERREUR(SI(A2-{0;1;2;3;4}>=0;EQUIV(A2-{0;1;2;3;4};A3:A$100;0)-1;"");""))));0)+K2+J2

à valider par Ctrl+Maj+Entrée (matriciel)

9exemple.xlsx (14.24 Ko)

Super ça marche.

J ai ajouté le 0 pour finir la boucle et j ai modifié la formule car j ai 14 niveaux et plus de 1000 lignes.

Je vais maintenant essayer de comprendre la formule.

Camille

J ai ajouté le 0 pour finir la boucle et j ai modifié la formule car j ai 14 niveaux et plus de 1000 lignes.

Parfait !!

Je vais maintenant essayer de comprendre la formule.

Prend une bonne dose d'aspirine (moi-même je ne me comprends plus !! heureusement que j'avais conservé cette formule -pour le décompte des collaborateurs directs parmi l'organigramme à 8 niveaux de 11.000 collaborateurs-)

Prend une bonne dose d'aspirine (moi-même je ne me comprends plus !! heureusement que j'avais conservé cette formule -pour le décompte des collaborateurs directs parmi l'organigramme à 8 niveaux de 11.000 collaborateurs-)

-->

Pouaille j ai mal à la tronche, l aspirine ne suffira pas !!!

Rechercher des sujets similaires à "formule somme condition tant que"