Monsieur Excel
Pour tout savoir faire sur Excel !

05 mai 2016

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.


La formule de B5, reproduite vers le bas, est :
=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 Blogger Sébastien, sur 10:07 PM  

Enregistrer un commentaire

<< Accueil