Formule à plusieurs conditions par ligne pour une série de lignes

Bonjour,

J'ai une formule à plusieurs conditions par ligne, qui renvoie une valeur si elles sont toutes remplies, et une autre si ce n'est pas le cas (formule SI(ET)).

Je voudrais maintenant que cette formule ne prenne pas en compte une seule ligne mais toutes les lignes : il s'agit de faire apparaitre l'état d'avancement d'un projet en fonction de la réalisation ou non de chaque activité à la deadline attendue (projet "en retard significatif" si au moins une des activités est en retard de plus de 3 mois).

Je joins le fichier pour plus de détails.

La formule d'état d'avancement du projet est en D4. Pour l'instant elle ne s'applique qu'à la ligne 8 et fonctionne correctement. Je voudrais qu'elle s'applique à toutes les lignes correspondant à des activités, sachant que pour l'instant cela va jusqu'à la ligne 18 mais il se peut que d'autres activités soient ajoutées par la suite donc le nombre de lignes n'est pas fixe. Etant donné les conditions, je pense qu'on peut prendre une centaine de lignes vers le bas, les conditions ne seront de toute façon pas remplies pour les lignes contenant un autre type d'information et cela n'affectera pas l'état d'avancement du projet (risque de renvoyer une erreur par contre peut-être ?)

Merci pour votre aide !

Bonjour à tous !

Une proposition en D4 :

=LET(
     t;C8:F100;
     e; PRENDRE(t;;-1);
     f; FILTRE(t;(PRENDRE(t;;1)="Oui")*(OU(e="Non démarré";e="En cours")));
     SI(SOMME(BYROW(CHOISIRCOLS(f;2);LAMBDA(d;SI(AUJOURDHUI()>d+90;1;0))));"Avec retard significatif";"En cours sans retard")
)

Remarque : La plage, conformément à votre demande a été étendue (ligne 8 à 100). Cependant sur la plage de sécurité (ie au-delà de la ligne 18 du classeur exemple), il ne doit pas y avoir la valeur "Oui" en colonne C.

Merci beaucoup pour la proposition, malheureusement la formule ne fonctionne pas car avec les données actuelles, la valeur devrait être "avec retard significatif" en raison de la ligne 10, où la deadline est au 30/09/2023 et l'activité toujours pas réalisée ni annulée (alors qu'aujourd'hui > deadline + 90 jours), mais je n'arrive pas à voir où peut être l'erreur ?

Bonjour à tous !

J'ai supposé, faute d'indication, que la plage C8:C100 devait contenir la valeur "Oui". C'est un élément utilisé par le filtre.

A priori, si C10= "Oui", la formule retourne bien la valeur attendue.

Alors en effet cela fonctionne en ligne quand on ajoute Oui dans le fichier tel quel, mais quand on change l'état d'avancement de cette ligne 10 en Réalisé, l'état général du projet reste "Avec retard significatif" alors qu'il devrait passer en "En cours".

Je ne vois pas où est le problème?

Alors en effet cela fonctionne en ligne quand on ajoute Oui dans le fichier tel quel, mais quand on change l'état d'avancement de cette ligne 10 en Réalisé, l'état général du projet reste "Avec retard significatif" alors qu'il devrait passer en "En cours".

Je ne vois pas où est le problème?

Bonjour à tous de nouveau !

Formule amendée :

=LET(
     t;C8:F105;
     e; PRENDRE(t;;-1);
     f; FILTRE(t;(PRENDRE(t;;1)="Oui")*((e="Non démarré")+(e="En cours")));
     SI(SOMME(BYROW(CHOISIRCOLS(f;2);LAMBDA(d;SI(AUJOURDHUI()>d+90;1;0))));"Avec retard significatif";"En cours sans retard")
)

Bonjour JFL,

Merci beaucoup pour la formule qui fonctionne presque. Il reste que quand le fichier est vierge, ou quand les premières données entrées ne remplissent pas les conditions du retard, la formule renvoie l'erreur "#CALC".
Est-ce que l'état d'avancement peut être "en cours sans retard" par défaut, et ne passer en "retard significatif" seulement si la condition est remplie ?

Merci !

Bonsoir à tous !

Proposition amendée (à tester !) :

=LET(
     t; C8:F105;
     e; PRENDRE(t;;-1);
     f; FILTRE(t;(PRENDRE(t;;1)="Oui")*((e="Non démarré")+(e="En cours"));0);
     z; SI(PRENDRE(f;1;1)<>0;SOMME(BYROW(CHOISIRCOLS(f;2);LAMBDA(d;SI(AUJOURDHUI()>d+90;1;0))));0);
     SI(z;"Avec retard significatif";"En cours sans retard")
)

Merci JFL, j'ai juste modifié dans la formule la plage "t" pour qu'elle s'arrête à la colonne E et non F, car c'est cette colonne qui conditionne le reste, et cela fonctionne très bien, normalement cette fois c'est bon !
Merci vous avez fait ma semaine :)

Bonjour à tous !

..... j'ai juste modifié dans la formule la plage "t" pour qu'elle s'arrête à la colonne E et non F, car c'est cette colonne qui conditionne le reste......

Pourtant votre formule initiale (qui "fonctionne correctement") faisait très précisément référence à cette colonne F !

Je vous remercie de ce retour.

En effet, c'est ce qui me semblait aussi mais ici avec la dernière formule que vous avez donnée, les qq tests réalisés montrent c'est la colonne F qui était prise comme référence pour l'état d'avancement actuel par livrable, et non la colonne E qui est pourtant celle qui contient cette info... on va voir si les futures utilisations montrent d'autres pb mais j'ai quand même l'impression que ça devrait être bon.. sinon je rouvrirai le sujet :)

Rechercher des sujets similaires à "formule conditions ligne serie lignes"