Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Faire une boucle dans un formule ?

  • Initiateur de la discussion Initiateur de la discussion Etoto
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Etoto

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Depuis quelques temps, j'ai une interrogation... Peut-on faire des boucles dans une formule ? J'explique, dans mon fichier joint, j'aimerais en colonne C qui renvoie tous les "En cours" sans faire des résultats avec trous. Bien sûr, si je parle de formule, c'est que c'est pour éviter le VBA mais si on doit passer par lui, qu'il en soit ainsi, quoi !

Merci d'avance !
 

Pièces jointes

Solution
Re,

En E2 par validation matricielle :
=SIERREUR(PETITE.VALEUR(SI($C$2:$C$6="En cours"; LIGNE($C$2:$C$6)-1;"");LIGNE(1:1));"")
Donnera l'index ordinal de la ligne correspondant.
En F2 donner la date
=SI(E2<>""; INDEX($A$2:$A$6;E2);0)

En G2 et sans validation matricielle :
=SIERREUR(INDEX(A2:A6;AGREGAT(15;6;LIGNE($C$2:$C$6)-1/($C$2:$C$6="En cours");LIGNE(1:1)));0)
Donnera directement la date.

Pas si compliqué que cela en avait l'air 🙂

Cordialement
Bonjour,

Sans doute suis-je bouché, comme parfois certains on l'air de le penser, mais je n'ai rien compris 🙂 ou tellement vaguement que je n'ose pas répondre.

Cordialement
Alors désolé 🤣 🤣 🤣 . J'explique, j'aimerais une formule matricielle qui renvoie toutes les lignes qui ont dans la colonne 3 "En cours". Dans ce fichier, se sera les lignes 2 et 4 qui seront copiées. Merci et désolé.
 
Re,

En E2 par validation matricielle :
=SIERREUR(PETITE.VALEUR(SI($C$2:$C$6="En cours"; LIGNE($C$2:$C$6)-1;"");LIGNE(1:1));"")
Donnera l'index ordinal de la ligne correspondant.
En F2 donner la date
=SI(E2<>""; INDEX($A$2:$A$6;E2);0)

En G2 et sans validation matricielle :
=SIERREUR(INDEX(A2:A6;AGREGAT(15;6;LIGNE($C$2:$C$6)-1/($C$2:$C$6="En cours");LIGNE(1:1)));0)
Donnera directement la date.

Pas si compliqué que cela en avait l'air 🙂

Cordialement
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
391
Réponses
3
Affichages
103
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…