Monsieur Excel
Pour tout savoir faire sur Excel !

18 avril 2011

Une utilisation de indirect()

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 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 avez bien compris les articles précédents sur les fonctions de recherche, vous n’aurez aucune difficulté à comprendre cette formule :)

Remarque – Vous pouvez noter en particulier que cette formule utilise 7 fois la fonction indirect() que nous avons étudiée il y a quatre jours…

1 Commentaire(s):

  • Le problème (comme souvent) n'est pas un problème technique Excel mais un problème méthodologique de structuration des données.
    Le fait de saisir les ventes sur "un onglet par client" montre que le "lecteur du blog" est déjà en train de faire un traitement, c'est-à-dire qu'il mélange tout. Et quand arrive un nouveau client, on fait quoi ? un autre onglet puis une autre colonne dans la feuille RECAP avec, de nouveau, des formules d'1 km de long ?

    Non merci... ma solution ? une "base de données" unique regroupant toutes les activités clients (2 ou plus par client, pas de limite...) et derrière, des tableaux croisés dynamiques par client, par jour, par semaine, par activité, par toutce qu'on veut.

    By Anonymous cduigou, sur 7:45 PM  

Enregistrer un commentaire

<< Accueil