La fonction indirect (b)
Le problème suivant a été fourni par un lecteur du blog. Une
entreprise doit suivre les activités de ses clients, avec un onglet par client.
Chacun de ces clients peut passer au maximum deux commandes par jour.
L’objectif est de regrouper dans un onglet de récapitulation la liste des
commandes des clients.
Nous voyons dans l’écran ci-dessous la présentation de la récapitulation avec – en insert – une photo de l’onglet Lerouge.
=B4+SI(ET(B4<>B3;NBCAR(C4&D4&E4)>3);0;1)
Grâce à cette formule, on ne reproduit le jour que si, pour
celui-ci, au moins une des trois solonnes a été renseignée.
La formule miracle, saisie en C4 et reproduite dans les
colonnes C à E, est la suivante :
=SI($A4<>$A3;index(indirect(C$2&"!B:B");equiv($A4;indirect(C$2&"!A:A");0));
index(indirect(C$2&"!B:B");equiv($A4;indirect(C$2&"!A:A");0)
+equiv($A4;decaler(indirect(C$2&"!A1");
equiv($A4;indirect(C$2&"!A:A");0);0):indirect(C$2&"!A2000");0)))
Si vous maîtrisez bien le fonctionnement des fonctions de recherche, vous n’aurez aucune difficulté à comprendre cette
formule :)
Remarque 1 –
Vous pouvez noter en particulier que cette formule utilise 7 fois la fonction indirect() que nous avons étudiée dans l'article précédent…
Remarque 2 –
Pour éviter l’affichage de la ligne n quand aucune
commande n’apparaît, on pourrait écrire une macro qui masque toutes les lignes
pour lesquelles NBCAR(Cn&Dn&En)=0…
Remarque 3 – Cet
article et l’article précédent sont une actualisation (et amélioration) des
articles déjà publiés dans ce blog les 14 et 18 avril 2011.
1 Commentaire(s):
Bonjour
Pourquoi la formule en B5
=B4+SI(ET(B4<>B3;NBCAR(C4&D4&E4)>3);0;1)
Indique NBCAR(C4&D4&E4)>3 et non pas >0 ?
Merci
By Sébastien, sur 10:07 PM
Enregistrer un commentaire
<< Accueil